diff options
author | Todd Zullinger <tmz@pobox.com> | 2008-05-16 22:11:54 -0400 |
---|---|---|
committer | Todd Zullinger <tmz@pobox.com> | 2008-07-09 17:31:56 -0400 |
commit | b74520105f3a5233c786b6d44bb0696822d373ca (patch) | |
tree | ac5c532a1eb2f642364e0ce4a903f491ebdd478e | |
parent | d71c8a8e66d9d12eb901e948f53647652b50228d (diff) | |
download | libgpod-b74520105f3a5233c786b6d44bb0696822d373ca.tar.gz libgpod-b74520105f3a5233c786b6d44bb0696822d373ca.tar.xz libgpod-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.py | 87 |
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): |