# HG changeset patch # User Paul Boddie # Date 1412605156 -7200 # Node ID 2328724eb6d3c5d195c987b263fdeb92b18d6ba3 # Parent 75f8971706a198ec7dc642303c556ee5d3553a5c Introduced explicit ordering of the different day selectors. diff -r 75f8971706a1 -r 2328724eb6d3 vRecurrence.py --- a/vRecurrence.py Mon Oct 06 16:11:56 2014 +0200 +++ b/vRecurrence.py Mon Oct 06 16:19:16 2014 +0200 @@ -61,6 +61,8 @@ "YEARLY", "MONTHLY", "WEEKLY", + None, + None, "DAILY", "HOURLY", "MINUTELY", @@ -71,17 +73,19 @@ enum_levels = ( None, - ("BYMONTH",), - ("BYWEEKNO",), - ("BYDAY", "BYMONTHDAY", "BYYEARDAY"), - ("BYHOUR",), - ("BYMINUTE",), - ("BYSECOND",) + "BYMONTH", + "BYWEEKNO", + "BYYEARDAY", + "BYMONTHDAY", + "BYDAY", + "BYHOUR", + "BYMINUTE", + "BYSECOND" ) # Map from levels to lengths of datetime tuples. -lengths = [1, 2, 3, 3, 4, 5, 6] +lengths = [1, 2, 3, 3, 3, 3, 4, 5, 6] positions = [l-1 for l in lengths] # Map from qualifiers to interval units. Here, weeks are defined as 7 days. @@ -90,8 +94,8 @@ # Make dictionaries mapping qualifiers to levels. -freq = dict([(level, i) for (i, level) in enumerate(freq_levels)]) -enum = dict([(level, i) for (i, levels) in enumerate(enum_levels) if levels for level in levels]) +freq = dict([(level, i) for (i, level) in enumerate(freq_levels) if level]) +enum = dict([(level, i) for (i, level) in enumerate(enum_levels) if level]) # Functions for structuring the recurrences. @@ -132,7 +136,7 @@ offset = 0 for level, value in enumerate(datetime): if level == 2: - offset = 1 + offset = 3 l.append(Enum(level + offset, {"values" : [value]}, "DT")) return l