# HG changeset patch # User Paul Boddie # Date 1427058290 -3600 # Node ID 65be38056560b4c1123304741be671551bb1ea7a # Parent f658ca7505b221ac83a6cb0cdab8c243af65bf9e Added a convenience method for getting the assumed time regime for objects. diff -r f658ca7505b2 -r 65be38056560 imiptools/data.py --- a/imiptools/data.py Sun Mar 22 21:38:04 2015 +0100 +++ b/imiptools/data.py Sun Mar 22 22:04:50 2015 +0100 @@ -110,6 +110,11 @@ periods = self.get_periods(tzid, end) return get_periods_for_freebusy(self, periods, tzid) + def get_tzid(self): + dtstart, dtstart_attr = self.get_datetime_item("DTSTART") + dtend, dtend_attr = self.get_datetime_item("DTEND") + return get_tzid(dtstart_attr, dtend_attr) + # Construction and serialisation. def make_calendar(nodes, method=None): @@ -359,6 +364,9 @@ def get_window_end(tzid, window_size=100): return to_timezone(datetime.now(), tzid) + timedelta(window_size) +def get_tzid(dtstart_attr, dtend_attr): + return dtstart_attr.get("TZID") or dtend_attr.get("TZID") + def get_periods(obj, tzid, window_end, inclusive=False): """ @@ -383,7 +391,7 @@ else: dtend, dtend_attr = dtstart, dtstart_attr - tzid = dtstart_attr.get("TZID") or dtend_attr.get("TZID") or tzid + tzid = get_tzid(dtstart_attr, dtend_attr) or tzid if not rrule: periods = [(dtstart, dtend)] @@ -449,7 +457,7 @@ else: end, end_attr = start, start_attr - tzid = start_attr.get("TZID") or end_attr.get("TZID") or tzid + tzid = get_tzid(start_attr, end_attr) or tzid l = []