1.1 --- a/imiptools/data.py Mon Sep 28 17:04:03 2015 +0200
1.2 +++ b/imiptools/data.py Mon Sep 28 22:16:16 2015 +0200
1.3 @@ -409,6 +409,25 @@
1.4
1.5 return old_values != set(self.get_date_values("RDATE") or [])
1.6
1.7 + def update_exceptions(self, excluded):
1.8 +
1.9 + """
1.10 + Update the exceptions to any rule by applying the list of 'excluded'
1.11 + periods.
1.12 + """
1.13 +
1.14 + to_exclude = set(excluded).difference(self.get_date_values("EXDATE") or [])
1.15 + if not to_exclude:
1.16 + return False
1.17 +
1.18 + if not self.has_key("EXDATE"):
1.19 + self["EXDATE"] = []
1.20 +
1.21 + for p in to_exclude:
1.22 + self["EXDATE"].append(get_period_item(p.get_start(), p.get_end()))
1.23 +
1.24 + return True
1.25 +
1.26 def correct_object(self, tzid, permitted_values):
1.27
1.28 "Correct the object's period details."