# HG changeset patch # User Paul Boddie # Date 1512260180 -3600 # Node ID aa8c4539376aca2a4d1fa9f60bd38ed0e3449a50 # Parent ffc8d17267a1c4180106cef33b0620b162994d61 Use a proper mapping to "parent" resolutions for introduced frequency selectors. diff -r ffc8d17267a1 -r aa8c4539376a 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):