Esempio 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
Esempio 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
Esempio n. 3
0
    def __nonzero__(self):
        """Implement bool(Tags) check that can be repeatedly used

        If __nonzero__ is not implemented, "if Tags()"
        will implicitly call __len__, using up our iterator, so it is
        important that this function is defined.

        :returns: True if the Tags() iterator has at least one more Tag
            left."""
        return nmlib.notmuch_tags_valid(self._tags) > 0
Esempio n. 4
0
    def __nonzero__(self):
        """Implement bool(Tags) check that can be repeatedly used

        If __nonzero__ is not implemented, "if Tags()"
        will implicitly call __len__, using up our iterator, so it is
        important that this function is defined.

        :returns: True if the Tags() iterator has at least one more Tag
            left."""
        return nmlib.notmuch_tags_valid(self._tags) > 0
Esempio n. 5
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