[Zope3-dev] Iterating over InternalPrincipal results in an infinite loop.

Alec Munro alecmunro at gmail.com
Mon Aug 22 13:47:52 EDT 2005


Perhaps this is intended behaviour, but if you create an instance of
InternalPrincipal, and then attempt to iterate over it, it will
infinitely return None.

The following code does the trick:

from zope.app.authentication.principalfolder import InternalPrincipal
joe = InternalPrincipal("joe", "123", "Joe")
for key in joe:
    print key

It took me a while to track this down, and now that I know what it is,
I'm sure I can work around it, but I thought it would be worth
bringing up. Here is InternalPrincipal's __getitem__

    def __getitem__(self, attr):
        if attr in ('title', 'description'):
            return getattr(self, attr)



Alec Munro


More information about the Zope3-dev mailing list