_move_to_next.argtypes = [NotmuchTagsP]
_move_to_next.restype = None
- def next(self):
+ def __next__(self):
if self._tags is None:
raise NotmuchError(STATUS.NOT_INITIALIZED)
if not self._valid(self._tags):
tag = Tags._get(self._tags).decode('UTF-8')
self._move_to_next(self._tags)
return tag
+ next = __next__ # python2.x iterator protocol compatibility
def __nonzero__(self):
"""Implement bool(Tags) check that can be repeatedly used
return self._valid(self._tags) > 0
def __str__(self):
- """The str() representation of Tags() is a space separated list of tags
+ return unicode(self).encode('utf-8')
- .. 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.
+ def __unicode__(self):
+ """string representation of :class:`Tags`: a space separated list of 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.
"""
return " ".join(self)