1.1 --- a/imiptools/data.py Fri May 15 14:56:21 2015 +0200
1.2 +++ b/imiptools/data.py Fri May 15 20:15:51 2015 +0200
1.3 @@ -43,6 +43,9 @@
1.4 def __init__(self, fragment):
1.5 self.objtype, (self.details, self.attr) = fragment.items()[0]
1.6
1.7 + def copy(self):
1.8 + return Object(to_dict(self.to_node()))
1.9 +
1.10 def get_items(self, name, all=True):
1.11 return get_items(self.details, name, all)
1.12
1.13 @@ -89,6 +92,9 @@
1.14 def has_key(self, name):
1.15 return self.details.has_key(name)
1.16
1.17 + def get(self, name):
1.18 + return self.details.get(name)
1.19 +
1.20 def __getitem__(self, name):
1.21 return self.details[name]
1.22
1.23 @@ -98,6 +104,16 @@
1.24 def __delitem__(self, name):
1.25 del self.details[name]
1.26
1.27 + def remove(self, name):
1.28 + try:
1.29 + del self[name]
1.30 + except KeyError:
1.31 + pass
1.32 +
1.33 + def remove_all(self, names):
1.34 + for name in names:
1.35 + self.remove(name)
1.36 +
1.37 # Computed results.
1.38
1.39 def has_recurrence(self, tzid, recurrence):
1.40 @@ -389,6 +405,9 @@
1.41 self.start_attr = start_attr
1.42 self.end_attr = end_attr
1.43
1.44 + def get_tzid(self):
1.45 + return get_tzid(self.start_attr, self.end_attr)
1.46 +
1.47 def as_tuple(self):
1.48 return self.start, self.end, self.origin, self.start_attr, self.end_attr
1.49