# HG changeset patch # User Paul Boddie # Date 1512260180 -3600 # Node ID 7a493bc08fd2271019203df05a50f28cd8938130 # Parent f2df7b2f977d9879c4b96a785ddddb2c4ba65e6d Use a proper mapping to "parent" resolutions for introduced frequency selectors. diff -r f2df7b2f977d -r 7a493bc08fd2 vRecurrence.py --- a/vRecurrence.py Sun Dec 03 00:23:51 2017 +0100 +++ b/vRecurrence.py Sun Dec 03 01:16:20 2017 +0100 @@ -89,6 +89,20 @@ "BYSECOND" ) +# Map levels to parent levels. + +enum_parent_levels = ( + None, # nothing beyond years + 0, # months -> years + 1, # weeks -> months + 0, # yeardays -> years + 1, # monthdays -> months + 2, # weekdays -> weeks + 5, # hours -> days + 6, # minutes -> hours + 7 # seconds -> minutes + ) + # Levels defining days. daylevels = [2, 3, 4, 5] @@ -552,7 +566,8 @@ """ if isinstance(from_sel, Enum) and level > 0: - repeat = Pattern(level - 1, {"interval" : 1}, freq_levels[level - 1]) + parent_level = enum_parent_levels[level] + repeat = Pattern(parent_level, {"interval" : 1}, freq_levels[parent_level]) l.append(repeat) def get_multiple(qualifier):