X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=bindings%2Fpython%2Fnotmuch%2Fthread.py;h=2bb30b70416e93b7723f0cbac01ae65d770da9f6;hp=eebd6cb54724af831ccb963116e4c0c0cf18cde7;hb=01cc4a31155dc71643fce1b619778493c1ff0dd7;hpb=4d406d9c252e707477a1cc744c4ee74bde4d1c3c diff --git a/bindings/python/notmuch/thread.py b/bindings/python/notmuch/thread.py index eebd6cb5..2bb30b70 100644 --- a/bindings/python/notmuch/thread.py +++ b/bindings/python/notmuch/thread.py @@ -141,7 +141,19 @@ class Threads(object): self._threads = None return i - + def __nonzero__(self): + """Check if :class:`Threads` contains at least one more valid thread + + The existence of this function makes 'if Threads: foo' work, as + that will implicitely call len() exhausting the iterator if + __nonzero__ does not exist. This function makes `bool(Threads())` + work repeatedly. + + :return: True if there is at least one more thread in the + Iterator, False if not. None on a "Out-of-memory" error. + """ + return self._threads is not None and \ + nmlib.notmuch_threads_valid(self._threads) > 0 def __del__(self): """Close and free the notmuch Threads"""