# HG changeset patch # User Paul Boddie # Date 1438537004 -7200 # Node ID d938f5c114d6af4c7ed36947f7ac0e2a555a9e86 # Parent 6c23b78ed1551322210d64ceb80a6a5da76eb85a Tidied time zone usage in period initialisation. diff -r 6c23b78ed155 -r d938f5c114d6 imiptools/data.py --- a/imiptools/data.py Sun Aug 02 19:36:33 2015 +0200 +++ b/imiptools/data.py Sun Aug 02 19:36:44 2015 +0200 @@ -614,7 +614,7 @@ # Attempt to get time zone details from the object, using the supplied zone # only as a fallback. - tzid = obj.get_tzid() or tzid + obj_tzid = obj.get_tzid() if not rrule: periods = [RecurringPeriod(dtstart, dtend, tzid, "DTSTART", dtstart_attr, dtend_attr)] @@ -631,14 +631,14 @@ until = parameters.get("UNTIL") if until: - end = min(to_timezone(get_datetime(until, dtstart_attr), tzid), end) + end = min(to_timezone(get_datetime(until, dtstart_attr), obj_tzid), end) inclusive = True for recurrence_start in selector.materialise(dtstart, end, parameters.get("COUNT"), parameters.get("BYSETPOS"), inclusive): create = len(recurrence_start) == 3 and date or datetime - recurrence_start = to_timezone(create(*recurrence_start), tzid) + recurrence_start = to_timezone(create(*recurrence_start), obj_tzid) recurrence_end = recurrence_start + duration - periods.append(RecurringPeriod(recurrence_start, recurrence_end, tzid, "RRULE")) + periods.append(RecurringPeriod(recurrence_start, recurrence_end, tzid, "RRULE", dtstart_attr)) else: periods = [] @@ -660,14 +660,14 @@ # Exclude exception dates. - exdates = obj.get_date_values("EXDATE", tzid) + exdates = obj.get_date_value_items("EXDATE", tzid) if exdates: - for exdate in exdates: + for exdate, exdate_attr in exdates: if isinstance(exdate, tuple): - period = Period(exdate[0], exdate[1], tzid) + period = RecurringPeriod(exdate[0], exdate[1], tzid, "EXDATE", exdate_attr) else: - period = Period(exdate, exdate + duration, tzid) + period = RecurringPeriod(exdate, exdate + duration, tzid, "EXDATE", exdate_attr) i = bisect_left(periods, period) while i < len(periods) and periods[i] == period: del periods[i]