[PEAK] QueryDM's with no query params

Phillip J. Eby pje at telecommunity.com
Fri May 20 23:05:14 EDT 2005

At 10:52 PM 5/20/2005 -0400, Erik Rose wrote:
>I still wonder why it was iterating forever. Maybe that belies a deeper 
>bug someplace; I may take a look when schedule permits.

That's because the way Python iterates over objects with a __getitem__ is 
that it starts at 0 and increases the index by 1 until the object raises an 
IndexError.  So, if your DM ignores the oid, then it'll never get an error, 
but just keep returning objects, and Python will never stop iterating.

In any event, I've fixed this now by making all DM's have an __iter__ that 
raises NotImplementedError unless you override it.  See my other post on 
this topic.  Also, I've just checked in an update to the "bulletins" 
example that refactors some common code in the DM's to make a super-trivial 
"SQL DM" base class.  It's likely not a competitor for your and Ulrich's 
SQL DM work, but it should give you some idea of how to implement some of 
the new features like __iter__, get, _check, etc.

More information about the PEAK mailing list