Python dateutil parser.parse("On") as today
Question: Under both Python 2.7 and 3.3.5, I am trying to parse a string to date.

    
    
    >>> from dateutil import parser
    >>> parser.parse("On")
    datetime.datetime(2014, 12, 25, 0, 0)
    

Today is 2014-12-25, so it appears the result is today when parsing "On" (case
insensitive). Is this behavior correct?

In fact, I would like this parse to raise an exception, as I don't think "On"
is a valid date. How should I "correct" the behavior to my expectation? I mean
not checking the input as "On", because I don't know if any other string like
'On' will surprise me again.

For some special case, even set 'fuzzy=False', the parse returns today without
an exception. For example:

    
    
    >>> parser.parse("' '", fuzzy=False)
    datetime.datetime(2014, 12, 25, 0, 0)
    

Based on the feedback, it seems a possible workaround can be given a rarely
used default date. Compare the result to see if parse is success or not.

    
    
    >>> parser.parse("' '", fuzzy=False, default=datetime(1900,1,1))
    


Answer: "on" is in
[dateutil.parser.parserinfo.JUMP](http://dateutil.readthedocs.org/en/latest/parser.html#dateutil.parser.parserinfo).
When parser of dateutil parses a timestr it will check whether the component
of the timestr is in the JUMP list, and the only component of "on" is "on" so
it's in the JUMP list and the default datetime is used.

When checking "on" is lowered, so it's case insensitive.

