summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTodd Zullinger <tmz@pobox.com>2008-05-16 22:11:54 -0400
committerTodd Zullinger <tmz@pobox.com>2008-07-09 17:31:56 -0400
commitb74520105f3a5233c786b6d44bb0696822d373ca (patch)
treeac5c532a1eb2f642364e0ce4a903f491ebdd478e
parentd71c8a8e66d9d12eb901e948f53647652b50228d (diff)
downloadlibgpod-tmz-b74520105f3a5233c786b6d44bb0696822d373ca.tar.gz
libgpod-tmz-b74520105f3a5233c786b6d44bb0696822d373ca.tar.xz
libgpod-tmz-b74520105f3a5233c786b6d44bb0696822d373ca.zip
Be more consistent with other python container objects and classes
This enables testing whether a key exists in an object (e.g. "'title' in track") as well as iterating over a Photo, Track, or Thumbnail object's keys, values, or items. The items() and pairs() methods were renamed to values() and items(), respectively, in Photo, Track, and Thumbnail classes.
-rw-r--r--bindings/python/ipod.py87
1 files changed, 81 insertions, 6 deletions
diff --git a/bindings/python/ipod.py b/bindings/python/ipod.py
index 053eda6..41aa8a1 100644
--- a/bindings/python/ipod.py
+++ b/bindings/python/ipod.py
@@ -451,13 +451,38 @@ class Track:
repr(self['title']),
repr(self['album']))
+ def __iter__(self):
+ for k in self.keys():
+ yield k
+
+ def has_key(self, key):
+ try:
+ value = self[key]
+ except KeyError:
+ return False
+ return True
+
+ def __contains__(self, key):
+ return self.has_key(key)
+
+ def iteritems(self):
+ for k in self:
+ yield (k, self[k])
+
+ def iterkeys(self):
+ return self.__iter__()
+
+ def itervalues(self):
+ for _, v in self.iteritems():
+ yield v
+
def keys(self):
return list(self._proxied_attributes)
- def items(self):
+ def values(self):
return [self[k] for k in self._proxied_attributes]
- def pairs(self):
+ def items(self):
return [(k, self[k]) for k in self._proxied_attributes]
def __getitem__(self, item):
@@ -934,13 +959,38 @@ class Photo:
self['digitized_date'].strftime("%c"),
repr(self['artwork_size']))
+ def __iter__(self):
+ for k in self.keys():
+ yield k
+
+ def has_key(self, key):
+ try:
+ value = self[key]
+ except KeyError:
+ return False
+ return True
+
+ def __contains__(self, key):
+ return self.has_key(key)
+
+ def iteritems(self):
+ for k in self:
+ yield (k, self[k])
+
+ def iterkeys(self):
+ return self.__iter__()
+
+ def itervalues(self):
+ for _, v in self.iteritems():
+ yield v
+
def keys(self):
return list(self._proxied_attributes)
- def items(self):
+ def values(self):
return [self[k] for k in self._proxied_attributes]
- def pairs(self):
+ def items(self):
return [(k, self[k]) for k in self._proxied_attributes]
def __getitem__(self, item):
@@ -996,13 +1046,38 @@ class Thumbnail:
self['width'],
self['height'])
+ def __iter__(self):
+ for k in self.keys():
+ yield k
+
+ def has_key(self, key):
+ try:
+ value = self[key]
+ except KeyError:
+ return False
+ return True
+
+ def __contains__(self, key):
+ return self.has_key(key)
+
+ def iteritems(self):
+ for k in self:
+ yield (k, self[k])
+
+ def iterkeys(self):
+ return self.__iter__()
+
+ def itervalues(self):
+ for _, v in self.iteritems():
+ yield v
+
def keys(self):
return list(self._proxied_attributes)
- def items(self):
+ def values(self):
return [self[k] for k in self._proxied_attributes]
- def pairs(self):
+ def items(self):
return [(k, self[k]) for k in self._proxied_attributes]
def __getitem__(self, item):