Tags
– Notmuch tags¶
-
class
Tags
(tags_p, parent=None)¶ Represents a list of notmuch tags
This object provides an iterator over a list of notmuch tags (which are unicode instances).
Do note that the underlying library only provides a one-time iterator (it cannot reset the iterator to the start). Thus iterating over the function will “exhaust” the list of tags, and a subsequent iteration attempt will raise a
NotInitializedError
. Also note, that any function that uses iteration (nearly all) will also exhaust the tags. So both:for tag in tags: print tag
as well as:
number_of_tags = len(tags)
and even a simple:
#str() iterates over all tags to construct a space separated list print(str(tags))
will “exhaust” the Tags. If you need to re-iterate over a list of tags you will need to retrieve a new
Tags
object.Parameters: - tags_p (
ctypes.c_void_p
) – A pointer to an underlying notmuch_tags_t structure. These are not publicly exposed, so a user will almost never instantiate aTags
object herself. They are usually handed back as a result, e.g. inDatabase.get_all_tags()
. tags_p must be valid, we will raise anNullPointerError
if it is None. - parent – The parent object (ie
Database
orMessage
these tags are derived from, and saves a reference to it, so we can automatically delete the db object once all derived objects are dead.
TODO: Make the iterator optionally work more than once by cache the tags in the Python object(?)
-
__len__
()¶ Warning
__len__()
was removed in version 0.6 as it exhausted the iterator and broke list(Tags()). Uselen(list(msgs))()
instead if you need to know the number of tags.
-
__str__
()¶ Return str(self).
- tags_p (