SF patch #674396: Apply UserDict.DictMixin to expand dbshelve and dbojb
to have a full dictionary interface.
diff --git a/Lib/bsddb/dbobj.py b/Lib/bsddb/dbobj.py
index 9268f55..f274d56 100644
--- a/Lib/bsddb/dbobj.py
+++ b/Lib/bsddb/dbobj.py
@@ -16,6 +16,7 @@
#
import db
+from UserDict import DictMixin
class DBEnv:
def __init__(self, *args, **kwargs):
@@ -85,7 +86,7 @@
return apply(self._cobj.set_encrypt, args, kwargs)
-class DB:
+class DB(DictMixin):
def __init__(self, dbenv, *args, **kwargs):
# give it the proper DBEnv C object that its expecting
self._cobj = apply(db.DB, (dbenv._cobj,) + args, kwargs)
diff --git a/Lib/bsddb/dbshelve.py b/Lib/bsddb/dbshelve.py
index d466361..34dc607 100644
--- a/Lib/bsddb/dbshelve.py
+++ b/Lib/bsddb/dbshelve.py
@@ -30,6 +30,7 @@
#------------------------------------------------------------------------
import cPickle
+from UserDict import DictMixin
try:
# For Python 2.3
from bsddb import db
@@ -75,7 +76,7 @@
#---------------------------------------------------------------------------
-class DBShelf:
+class DBShelf(DictMixin):
"""
A shelf to hold pickled objects, built upon a bsddb DB object. It
automatically pickles/unpickles data objects going to/from the DB.