fuzzyparsers 0.7.2
A collection of free-form input parsers (with special focus on dates)
Latest Version: 0.7.3
Introduction and Examples
The fuzzyparsers library provides a small collection of functions to sanitize free form user input. For the moment its chief value is the flexible date parser.
The library has two main parsers. The first is a prefix parser which compares a string to a list of strings and returns the unique element of the list which matches the prefix. An exception is thrown if the match is not unique.
>>> from fuzzyparsers import fuzzy_match >>> fuzzy_match(['aab','bba','abc'],'aa') 'aab' >>> fuzzy_match(['aab','bba','abc'],'a') # two strings starting with 'a'. Traceback (most recent call last): ... ValueError: ambiguous match for 'a'
The second parser parses dates in various formats and returns a datetime.date object. Accepted formats include:
jan 12, 2003 jan 5 2004-3-5 +34 -- 34 days in the future (relative to todays date) -4 -- 4 days in the past (relative to todays date)
For instance:
>>> from fuzzyparsers import parse_date
>>> parse_date('jun 17 2010') # my youngest son's birthday
datetime.date(2010, 6, 17)
The library allows setting a default date to fill in specified components of a date (e.g. the year). By default, a date with-out a year to will give the current year.
>>> from fuzzyparsers import DateParser
>>> import datetime
>>> DateParser(today=datetime.date(2013, 3, 1)).parse_date('feb 3')
datetime.date(2013, 2, 3)
TODO
We'd like to support the following features:
- Parsing time strings like "10 am" and "2 3 pm"
- A "[0-9]*.[0-9]*" with the first hunk a month and the second hunk a day should return the month/day combination which is nearest. For example, "12-3" would return december 3 of this year or last year.
Changelog
- 0.7.2 - added doc-tests and "march 2012" date format; doc-test scripts
- 0.7.1 - install fixes
- 0.7 - overhaul of date parsing api to support relative dates (not necessarily relative to the current date)
- 0.6.x - initial public release and series of doc/install corrections
Installation
Fuzzyparsers is written by Joel B. Mohler and distributed under the terms of the GPL v2 (or later).
Use the following commands to run the extensive doc-tests:
python -m doctest fuzzyparsers/*.py python -m doctest README.txt
To install fuzzyparsers, do the normal python thing (probably as root):
python setup.py install
or:
eazy_install fuzzyparsers
| File | Type | Py Version | Uploaded on | Size | # downloads |
|---|---|---|---|---|---|
| fuzzyparsers-0.7.2-py2.6.egg (md5) | Python Egg | 2.6 | 2011-04-09 | 9KB | 367 |
| fuzzyparsers-0.7.2-py2.7.egg (md5) | Python Egg | 2.7 | 2012-04-28 | 10KB | 103 |
| fuzzyparsers-0.7.2.tar.gz (md5) | Source | 2011-04-09 | 14KB | 474 | |
- Author: Joel B. Mohler
- Home Page: https://bitbucket.org/jbmohler/fuzzyparsers
- License: GPLv2 or later
- Package Index Owner: jbmohler
- DOAP record: fuzzyparsers-0.7.2.xml
