I just noticed two things about persistent.PersistentMapping:
- It inherits from UserDict.UserDict. Is there any reason not to inherit
from dict directly, given that this has been possible since Python 2.3
- Not all methods of the mapping interface are handled. In particular,
there's no reason not to handle pop() as popitems() is handled.
Unhandled methods that change the content of the dict lead to especially
nasty bugs as they seem to work OK during a transaction while their
effect is not permanent.
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org