1.1 --- a/imiptools/data.py Tue Oct 17 14:47:09 2017 +0200
1.2 +++ b/imiptools/data.py Tue Oct 17 17:43:42 2017 +0200
1.3 @@ -196,15 +196,21 @@
1.4 def copy(self):
1.5 return Object(self.to_dict(), self.tzid)
1.6
1.7 + # Access to (value, attributes) items.
1.8 +
1.9 def get_items(self, name, all=True):
1.10 return get_items(self.details, name, all)
1.11
1.12 def get_item(self, name):
1.13 return get_item(self.details, name)
1.14
1.15 + # Access to mappings.
1.16 +
1.17 def get_value_map(self, name):
1.18 return get_value_map(self.details, name)
1.19
1.20 + # Access to mapped values.
1.21 +
1.22 def get_values(self, name, all=True):
1.23 return get_values(self.details, name, all)
1.24
1.25 @@ -214,6 +220,27 @@
1.26 def set_value(self, name, value, attr=None):
1.27 self.details[name] = [(value, attr or {})]
1.28
1.29 + # Convenience methods asserting URI values.
1.30 +
1.31 + def get_uri_items(self, name, all=True):
1.32 + return uri_items(self.get_items(name, all))
1.33 +
1.34 + def get_uri_item(self, name):
1.35 + return uri_item(self.get_item(name))
1.36 +
1.37 + def get_uri_map(self, name):
1.38 + return uri_dict(self.get_value_map(name))
1.39 +
1.40 + def get_uri_values(self, name):
1.41 + return uri_values(self.get_values(name))
1.42 +
1.43 + def get_uri_value(self, name):
1.44 + return uri_value(self.get_value(name))
1.45 +
1.46 + get_uri = get_uri_value
1.47 +
1.48 + # Access to details as temporal objects.
1.49 +
1.50 def get_utc_datetime(self, name):
1.51 return get_utc_datetime(self.details, name, self.tzid)
1.52
1.53 @@ -463,7 +490,7 @@
1.54 only_organiser and "ORG" or self.get_value("TRANSP") or "OPAQUE",
1.55 self.get_recurrenceid(),
1.56 self.get_value("SUMMARY"),
1.57 - get_uri(self.get_value("ORGANIZER"))
1.58 + self.get_uri("ORGANIZER")
1.59 )
1.60
1.61 def get_participation_status(self, participant):
1.62 @@ -473,8 +500,8 @@
1.63 special value "ORG" indicating organiser-only participation.
1.64 """
1.65
1.66 - attendees = uri_dict(self.get_value_map("ATTENDEE"))
1.67 - organiser = get_uri(self.get_value("ORGANIZER"))
1.68 + attendees = self.get_uri_map("ATTENDEE")
1.69 + organiser = self.get_uri("ORGANIZER")
1.70
1.71 attendee_attr = attendees.get(participant)
1.72 if attendee_attr: