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

Skip Montanaro skip at pobox.com
Thu Mar 11 16:16:17 EST 2004


Gustavo> Have you looked at the RRULE item on the iCalendar RFC? It
Gustavo> should tell you everything about date recurrences. If you're
Gustavo> interested, you might want to read it, and try out the rrule
Gustavo> implementation.

That's not what I was asking.

I realize that generating the recurrences themselves is important, but it's not the only important thing. Getting from the English (or Portuguese ;-) that a user would use as input is just as important to me as having the recurrence classes available to generate a stream of dates. For example, this does work using recur:

>>> import recur
>>> import datetime
>>> for eachDate in recur.Recurrence(datetime.date(2004, 1, 7), "Saturday",  datetime.date(2004, 4, 15)):
...   print eachDate
... 
2004-01-10
2004-01-17
2004-01-24
2004-01-31
2004-02-07
2004-02-14
2004-02-21
2004-02-28
2004-03-06
2004-03-13
2004-03-20
2004-03-27
2004-04-03
2004-04-10

The point is, the Recurrence class in the recur module seems to have some hooks builtin for this sort of stuff, but it's not been fleshed out very well. A PEP with some sample implementations might go a long way to making a more complete implementation available. The documentation seems to be missing that would help me add it. I think there is technology there which doesn't exist in dateutil. Correct me if I'm wrong.

Perhaps recur.Recurrence just needs a little more work so it can handle some common timekeeping phraseology:

* every Tuesday

* every hour on the half hour

* once an hour on the quarter hour

* every 4 days

* the first Monday of each month

* every four years starting in 2000

I'll restate my suggestion that maybe a PEP for this stuff would be a good idea. I think it would be a reasonable idea to check both recur and dateutil into the nondist/sandbox so other people can take a whack at them.

Skip



More information about the Python-Dev mailing list