python: remove Tags().__len__() implementation
authorSebastian Spaeth <Sebastian@SSpaeth.de>
Tue, 9 Aug 2011 15:48:27 +0000 (17:48 +0200)
committerSebastian Spaeth <Sebastian@SSpaeth.de>
Tue, 9 Aug 2011 15:48:27 +0000 (17:48 +0200)
len() exhausts the tag iterator and e.g. list() or "".join(tags)
implicitly call len() if existing and then failing. So, we remove
Tags.__len__().

If you need to know the number of tags a message has, do use
len(list(tags)). It would be nicer to be able to support len() directly...

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
bindings/python/notmuch/tag.py

index f79a17867640700529d930c9f0d59cd61c7a68fb..d6abf2865986600d20479b749d32ee127cd692bd 100644 (file)
@@ -101,25 +101,6 @@ class Tags(object):
             left."""
         return nmlib.notmuch_tags_valid(self._tags) > 0
 
-    def __len__(self):
-        """len(:class:`Tags`) returns the number of contained tags
-
-        .. note:: As this iterates over the tags, we will not be able
-               to iterate over them again (as in retrieve them)! If
-               the tags have been exhausted already, this will raise a
-               :exc:`NotmuchError` STATUS.NOT_INITIALIZED on
-               subsequent attempts.
-        """
-        if self._tags is None:
-            raise NotmuchError(STATUS.NOT_INITIALIZED)
-
-        i = 0
-        while nmlib.notmuch_tags_valid(self._tags):
-            nmlib.notmuch_tags_move_to_next(self._tags)
-            i += 1
-        self._tags = None
-        return i
-
     def __str__(self):
         """The str() representation of Tags() is a space separated list of tags