# HG changeset patch # User Paul Boddie # Date 1443827015 -7200 # Node ID 3422d9d0aa45cc741f2c7487a834b9e9579f3667 # Parent d5dc0ff83bcc3de56cbabfdc7a12a9abca5a36b7 Added a method to obtain the main period of an object. diff -r d5dc0ff83bcc -r 3422d9d0aa45 imiptools/data.py --- a/imiptools/data.py Fri Oct 02 01:20:08 2015 +0200 +++ b/imiptools/data.py Sat Oct 03 01:03:35 2015 +0200 @@ -186,6 +186,16 @@ # Computed results. + def get_main_period(self, tzid): + + """ + Return a period object corresponding to the main start-end period for + the object. + """ + + (dtstart, dtstart_attr), (dtend, dtend_attr) = self.get_main_period_items(tzid) + return RecurringPeriod(dtstart, dtend, tzid, "DTSTART", dtstart_attr, dtend_attr) + def get_main_period_items(self, tzid): """ @@ -823,7 +833,13 @@ # Use localised datetimes. - (dtstart, dtstart_attr), (dtend, dtend_attr) = obj.get_main_period_items(tzid) + main_period = obj.get_main_period(tzid) + + dtstart = main_period.get_start() + dtstart_attr = main_period.get_start_attr() + dtend = main_period.get_end() + dtend_attr = main_period.get_end_attr() + duration = dtend - dtstart # Attempt to get time zone details from the object, using the supplied zone @@ -832,7 +848,7 @@ obj_tzid = obj.get_tzid() if not rrule: - periods = [RecurringPeriod(dtstart, dtend, tzid, "DTSTART", dtstart_attr, dtend_attr)] + periods = [main_period] elif end or parameters and parameters.has_key("UNTIL") or parameters.has_key("COUNT"):