[python] get all messages of a thread
Brian May
brian at microcomaustralia.com.au
Tue May 31 22:35:35 PDT 2011
On 28 May 2011 23:18, Patrick Totzke <patricktotzke at googlemail.com> wrote:
> if r: #because we cant iterate on NoneType
>
I don't understand why, but this line sets r._msgs to None. So it crashes,
because it has no message ids to look for.
If you change it to
if r is not None:
... then it works for me.
Oh, I see, for your code, there is a implied call to __len__, and the
__len__ function is completely broken for the reasons described in the
documentation:
.. note:: As this iterates over the messages, we will not be able to=
iterate over them again! So this will fail::
#THIS FAILS
msgs = Database().create_query('').search_message()
if len(msgs) > 0: #this 'exhausts' msgs
# next line raises
NotmuchError(STATUS.NOT_INITIALIZED)!!!
for msg in msgs: print msg
Most of the time, using the
:meth:`Query.count_messages` is therefore more
appropriate (and much faster). While not guaranteeing
that it will return the exact same number than len(),
in my tests it effectively always did so.
--
Brian May <brian at microcomaustralia.com.au>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://notmuchmail.org/pipermail/notmuch/attachments/20110601/226b4f92/attachment.html>
More information about the notmuch
mailing list