self._multi_attributes = {}
self._source = source
+ def __getitem__(self, key):
+ return self._safe_get(key)
+
def __unicode__(self):
return self.__repr__()
# public accessors -----------------
+ def add_url(self, url):
+ self._add('url', url)
+
+ def get_birthday_date(self):
+ return self._safe_get('bday')
+
def get_contact(self):
return self._safe_get('contact')
def get_photo_url(self):
return self._safe_get('photo-url')
- def add_url(self, url):
- self._add('url', url)
-
+ def has_birthday_date(self):
+ return self._has('bday')
+
def is_empty(self):
for a in self._attributes:
return False
return False
return True
- def has_birthday_date(self):
- return self._has('bday')
-
def set_name(self, name):
self._set('fn', name)
def set_photo_url(self, url):
self._set('photo-url', url)
- def update(self, other_friend):
+ def update(self, other_friend, overwrite=False):
"""
Overwrites any attributes in this friend, with attributes from other_friend
"""
# private helpers -----------------------
#
- def _if_defined(self, key, callback):
- if self._attributes.has_key(key):
- callback(self._attributes[key])
-
- def _set(self, key, value):
- if value is not None:
-# print "%s SET %s to %s" % (self, key, value)
- self._attributes[key] = value
-
def _add(self, key, value):
if value is not None:
if not self._multi_attributes.has_key(key):
# print "%s ADD %s to %s" % (self, key, value)
self._multi_attributes[key].append(value)
- def _has(self, key):
- return self._attributes.has_key(key) or self._multi_attributes.has_key(key)
-
def _contains(self, key, value):
if self._attributes.has_key(key):
return value == self._attributes[key]
return value in self._multi_attributes[key]
return False
- def __getitem__(self, key):
- return self._safe_get(key)
-
+ def _if_defined(self, key, callback):
+ if self._attributes.has_key(key):
+ callback(self._attributes[key])
+
+ def _has(self, key):
+ return self._attributes.has_key(key) or self._multi_attributes.has_key(key)
+
def _safe_get(self, key):
try: return self._attributes[key]
except: return None
+ def _set(self, key, value):
+ if value is not None:
+# print "%s SET %s to %s" % (self, key, value)
+ self._attributes[key] = value
+