A basic python wrapper for Natty natural language date parser
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.



A basic python wrapper for Natty, using Jpype.


$ pip install natty

You will also need to have a JVM installed and JAVA_HOME set properly for Jpype.


>>> from natty import DateParser
>>> dp = DateParser('tomorrow')
>>> dp.result()
[datetime.datetime(2015, 4, 12, 15, 53, 14, tzinfo=tzlocal())]
>>> dp = DateParser('monday and tuesday')
>>> dp.result()
[datetime.datetime(2015, 4, 13, 15, 53, 29, tzinfo=tzlocal()), datetime.datetime(2015, 4, 14, 15, 53, 29, tzinfo=tzlocal())]

If the string can be parsed for dates, the result returns a list of datetime objects with tzlocal timezone objects, as determined by the operating system. python-dateutil's parse method is used under the hood.

If the string cannot be parsed for any dates, it returns None.


This is very rough and ready - it assumes a single DateGroup will be returned, although in fact Natty returns a list of DateGroups (although it only ever seems to contain a single DateGroup). If you are unsure about the result, you can check it on the Natty project site.


Of course huge thanks to the creators of Natty, Jpype and dateutil, which are all awesome, but also thanks to python-boilerpipe which I copied for the project layout and use of Jpype.