# HG changeset patch # User Paul Boddie # Date 1431878834 -7200 # Node ID 4ec1fc782a2847fc745b386c9cb7ca952cbdc05f # Parent 74d2f393ad9d6579c4094a2c1f4ec654bd64dc2d Moved RecurringPeriod into the period module. diff -r 74d2f393ad9d -r 4ec1fc782a28 imiptools/data.py --- a/imiptools/data.py Sun May 17 18:00:09 2015 +0200 +++ b/imiptools/data.py Sun May 17 18:07:14 2015 +0200 @@ -25,7 +25,7 @@ from imiptools.dates import format_datetime, get_datetime, get_duration, \ get_freebusy_period, get_period, to_datetime, \ to_timezone, to_utc_datetime -from imiptools.period import Period, period_overlaps +from imiptools.period import Period, RecurringPeriod, period_overlaps from pytz import timezone from vCalendar import iterwrite, parse, ParseError, to_dict, to_node from vRecurrence import get_parameters, get_rule @@ -407,30 +407,6 @@ def get_tzid(dtstart_attr, dtend_attr): return dtstart_attr.get("TZID") or dtend_attr.get("TZID") -class RecurringPeriod(Period): - - "A period with origin information from the object." - - def __init__(self, start, end, tzid=None, origin=None, start_attr=None, end_attr=None): - Period.__init__(self, start, end, tzid, origin) - self.start_attr = start_attr - self.end_attr = end_attr - - def get_start_item(self): - return self.start, self.start_attr - - def get_end_item(self): - return self.end, self.end_attr - - def get_tzid(self): - return get_tzid(self.start_attr, self.end_attr) or self.tzid - - def as_tuple(self): - return self.start, self.end, self.tzid, self.origin, self.start_attr, self.end_attr - - def __repr__(self): - return "RecurringPeriod(%r)" % (self.as_tuple(),) - def get_periods(obj, tzid, window_end, inclusive=False): """ diff -r 74d2f393ad9d -r 4ec1fc782a28 imiptools/period.py --- a/imiptools/period.py Sun May 17 18:00:09 2015 +0200 +++ b/imiptools/period.py Sun May 17 18:07:14 2015 +0200 @@ -126,6 +126,30 @@ def __repr__(self): return "FreeBusyPeriod(%r)" % (self.as_tuple(),) +class RecurringPeriod(Period): + + "A period with iCalendar attribute and origin information from the object." + + def __init__(self, start, end, tzid=None, origin=None, start_attr=None, end_attr=None): + Period.__init__(self, start, end, tzid, origin) + self.start_attr = start_attr + self.end_attr = end_attr + + def get_start_item(self): + return self.start, self.start_attr + + def get_end_item(self): + return self.end, self.end_attr + + def get_tzid(self): + return get_tzid(self.start_attr, self.end_attr) or self.tzid + + def as_tuple(self): + return self.start, self.end, self.tzid, self.origin, self.start_attr, self.end_attr + + def __repr__(self): + return "RecurringPeriod(%r)" % (self.as_tuple(),) + # Time and period management. def can_schedule(freebusy, periods, uid, recurrenceid): diff -r 74d2f393ad9d -r 4ec1fc782a28 imipweb/data.py --- a/imipweb/data.py Sun May 17 18:00:09 2015 +0200 +++ b/imipweb/data.py Sun May 17 18:07:14 2015 +0200 @@ -20,11 +20,10 @@ """ from datetime import datetime -from imiptools.data import RecurringPeriod from imiptools.dates import end_date_from_calendar, end_date_to_calendar, \ format_datetime, get_datetime, get_end_of_day, \ to_date -from imiptools.period import Period +from imiptools.period import Period, RecurringPeriod class PeriodError(Exception): pass