A collection of free-form input parsers (with special focus on dates)
Project description
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: ambigious match
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)
Changelog
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).
The doc-tests provide fair code coverage. Use the following command:
python -m doctest fuzzyparsers/*.py
To install fuzzyparsers, do the normal python thing (probably as root):
python setup.py install
or:
eazy_install fuzzyparsers
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.