The file storage iterator was implemented before Python had iterators.
(Actually, Python previously had an iterator based on a corner
of the sequence protocol, which FileStorage used.)
There's a test for storage iterators that verifies that they raise
a special exception that extends StopIteration and IndexError.
This makes storage iterators a bit harder to implement than
Does anyone know of a reason why we should have to raise
a special error that raises IndexErrors?
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org