Ejemplo n.º 1
0
 def next(self):
     if self._tags is None:
         raise NotmuchError(STATUS.NOT_INITIALIZED)
     if not nmlib.notmuch_tags_valid(self._tags):
         self._tags = None
         raise StopIteration
     tag = Tags._get(self._tags).decode('UTF-8')
     nmlib.notmuch_tags_move_to_next(self._tags)
     return tag
Ejemplo n.º 2
0
 def next(self):
     if self._tags is None:
         raise NotmuchError(STATUS.NOT_INITIALIZED)
     if not nmlib.notmuch_tags_valid(self._tags):
         self._tags = None
         raise StopIteration
     tag = Tags._get(self._tags).decode('UTF-8')
     nmlib.notmuch_tags_move_to_next(self._tags)
     return tag
Ejemplo n.º 3
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._msgs):
            nmlib.notmuch_tags_move_to_next(self._msgs)
            i += 1
        self._tags = None
        return i