# HG changeset patch # User Paul Boddie # Date 1508883009 -7200 # Node ID 1aa3e8f9e5f17ae945dee91548bc1008b85ecd4b # Parent b35e8d4f7742759113d25866ef3cc5eab62c7992# Parent f8b6e1ae40f429d568c2967b372942842971a5e9 Merged changes from the default branch. diff -r b35e8d4f7742 -r 1aa3e8f9e5f1 imiptools/data.py --- a/imiptools/data.py Tue Oct 24 23:28:35 2017 +0200 +++ b/imiptools/data.py Wed Oct 25 00:10:09 2017 +0200 @@ -1404,19 +1404,13 @@ # Return a sorted list of the periods. - periods = list(MergingIterator([rule_periods, iter(rdates or [])])) + periods = MergingIterator([rule_periods, iter(rdates or [])]) # Exclude exception dates. - exdates = obj.get_date_value_item_periods("EXDATE") + exdates = set(obj.get_date_value_item_periods("EXDATE", tzid) or []) - if exdates: - for period in exdates: - i = bisect_left(periods, period) - while i < len(periods) and periods[i] == period: - del periods[i] - - return periods + return filter(lambda p, excluded=exdates: p not in excluded, periods) def get_main_period(periods):