python: remove Tags().__len__() implementation

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>
This commit is contained in:
Sebastian Spaeth 2011-08-09 17:48:27 +02:00
parent 94c5edd064
commit dc6b2b4382

View 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