[Python-Dev] dateutil (original) (raw)

Robert Brewer fumanchu at amor.org
Thu Mar 11 16:31:28 EST 2004


Skip Montanaro wrote:

I'd like to try out your natural language parser, but can't find it. I naively thought this might work, but it doesn't:

>>> import recur >>> import datetime >>> for eachDate in recur.Recurrence(datetime.date(2004, 1, 7), "every 4 days", datetime.date(2004, 4, 15)): ... print eachDate ... Traceback (most recent call last): File "", line 1, in ? File "recur.py", line 599, in init raise ValueError, (u"The supplied description ('%s') " ValueError: The supplied description ('every 4 days') could not be parsed.

In this case, use:

import recur import datetime for eachDate in recur.Recurrence(datetime.date(2004, 1, 7), "4 days", datetime.date(2004, 4, 15)): ... print eachDate ... 2004-01-07 2004-01-11 2004-01-15 2004-01-19 2004-01-23 2004-01-27 2004-01-31 2004-02-04 2004-02-08 2004-02-12 2004-02-16 2004-02-20 2004-02-24 2004-02-28 2004-03-03 2004-03-07 2004-03-11 2004-03-15 2004-03-19 2004-03-23 2004-03-27 2004-03-31 2004-04-04 2004-04-08 2004-04-12

It would be a simple thing to fix by changing a regex in Locale.patterns[byunits] from r"([0-9]+) days?" to r"(?:every )?([0-9]+) days?" I'll probably add this to my default Locale class, but one of the reasons I made a separate Locale class in the first place was to facilitate such modification via subclassing.

I realize this is a usage question and python-dev isn't a usage list. Still, it suggests that perhaps the community as a whole needs a bit more exposure to these concepts before they are incorporated into the standard library. Perhaps a PEP about recurrence relations is warranted.

As Gustavo has pointed out, the internal, representational details have been pretty much nailed in the iCal RFC. But I agree with you that wrapping them for locale-specific, end-user ease-of-use is important. I wouldn't worry about a PEP unless DateUtil approaches Library inclusion status.

Robert Brewer MIS Amor Ministries fumanchu at amor.org



More information about the Python-Dev mailing list