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
