[Grok-dev] Iterativly emptying a grok.container shows weird behavior

Tres Seaver tseaver at palladion.com
Tue Jun 12 11:10:30 EDT 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Brandon Craig Rhodes wrote:
> Tres Seaver <tseaver at palladion.com> writes:
> 
>> Dr. Volker Jaenisch wrote:
> 
>>> ME VOLKER ASK BUG OR FEATURE? VOLKER NO LIKE BUG! VOLKER NO LIKE FEATURE!
> 
> Hilarious!  What a fun mailing list I've joined.  Volker is my
> favorite so far.
> 
>> Volker might like it more if the container had 100,000 items in it,
>> where iterating over the keys rather than getting them all back as a
>> list would be much faster.
> 
> Nonsense.  If Volker is unhappy getting a huge list from .keys(), he
> can call .iterkeys() instead.  Please review the Python interface for
> mapping types; it says explicitly that .keys() returns:
> 
>    "a copy of a's list of keys"
> 
> They key word there is "copy" - the caller has a right to expect that
> the sequence of keys he has been returned is a "copy", that is, an
> object that now stands independent of the dictionary-like object that
> generated it.
> 
> Making the decision to turn .keys() into .iterkeys() unilaterally
> destroys the whole point of dictionary-like objects supporting both
> methods, and, as Volker rightly complains, it breaks many common
> Python idioms for working with dictionaries.

OOBTree *long* predates the introduction of 'iterkeys' into Python's
standard libraries[1], and is widely used in applications where the
scalability of 'keys' matters a *lot*:  creating the copy of the keys
can involve not only allocating memory for it, but also loading lots of
bucket objects from the ZODB which would otherwise remain dormant.

[1] http://www.python.org/download/releases/2.2.3/NEWS.txt



Tres.
- --
===================================================================
Tres Seaver          +1 540-429-0999          tseaver at palladion.com
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGbrdm+gerLs4ltQ4RAuLDAJ94ZAYBEzaTU/PEaIzgoSjp/aeEfACeKDkr
XqRc3VHjZrZ/t7DKidcWYbA=
=RUit
-----END PGP SIGNATURE-----


More information about the Grok-dev mailing list