From dc6b2b438236ed89c624e9c0bb035cc8321149cc Mon Sep 17 00:00:00 2001 From: Sebastian Spaeth Date: Tue, 9 Aug 2011 17:48:27 +0200 Subject: [PATCH] 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 --- bindings/python/notmuch/tag.py | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/bindings/python/notmuch/tag.py b/bindings/python/notmuch/tag.py index f79a1786..d6abf286 100644 --- a/bindings/python/notmuch/tag.py +++ b/bindings/python/notmuch/tag.py @@ -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