On 2 June 2011 17:05, Sebastian Spaeth
<Sebastian@sspaeth.de> wrote:
What would be the best way to solve this (besides fixing the C api to
allow to reset the iterator ;-) ?)
I am not really familiar with the code. So am I correct in making the following assumptions?
* It is not easy to fix the C api to reset the iterator (what about repeating the search?)
* The only accurate way to get the number of messages is to iterate through every search result and count them?
If so, then len(...) I think might be very slow if there are a large number of elements.
Maybe it might be easier/better to implement object.__nonzero__(self) instead of the object.__len__(self) method?
object.__nonzero__(self)
Called to implement truth value testing and the built-in operation bool(); should return False or True, or their integer equivalents 0 or 1. When this method is not defined, __len__() is called, if it is defined, and the object is considered true if its result is nonzero. If a class defines neither __len__() nor __nonzero__(), all its instances are considered true.
object.__len__(self)
Called to implement the built-in function len(). Should return the length of the object, an integer >= 0. Also, an object that doesn’t define a __nonzero__() method and whose __len__() method returns zero is considered to be false in a Boolean context.
--