]> granicus.if.org Git - python/commitdiff
Issue 7975: in python 2.6 bsddb.dbshelve switched from DictMixin to
authorR. David Murray <rdmurray@bitdance.com>
Wed, 24 Feb 2010 02:31:27 +0000 (02:31 +0000)
committerR. David Murray <rdmurray@bitdance.com>
Wed, 24 Feb 2010 02:31:27 +0000 (02:31 +0000)
MutableMapping, and thereby lost functionality because the replacement
functionality was implemented incorrectly or incompletely).  Since bsddb
isn't in py3k, this patch just goes back to using DictMixin in order to
correct the regression.

Lib/bsddb/dbshelve.py
Misc/NEWS

index 1706ca86f400dec8dccba4d9266e3a4a179bd6e8..7c875b47380da53b1cb3bc7f2e34d36527558baa 100644 (file)
@@ -59,16 +59,11 @@ else:
         return cPickle.dumps(object, bin=protocol)
 
 
-if sys.version_info[0:2] <= (2, 5) :
-    try:
-        from UserDict import DictMixin
-    except ImportError:
-        # DictMixin is new in Python 2.3
-        class DictMixin: pass
-    MutableMapping = DictMixin
-else :
-    import collections
-    MutableMapping = collections.MutableMapping
+try:
+    from UserDict import DictMixin
+except ImportError:
+    # DictMixin is new in Python 2.3
+    class DictMixin: pass
 
 #------------------------------------------------------------------------
 
@@ -111,7 +106,7 @@ def open(filename, flags=db.DB_CREATE, mode=0660, filetype=db.DB_HASH,
 class DBShelveError(db.DBError): pass
 
 
-class DBShelf(MutableMapping):
+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.
     """
@@ -162,10 +157,6 @@ class DBShelf(MutableMapping):
         else:
             return self.db.keys()
 
-    if sys.version_info[0:2] >= (2, 6) :
-        def __iter__(self) :
-            return self.db.__iter__()
-
 
     def open(self, *args, **kwargs):
         self.db.open(*args, **kwargs)
index 5dc3a7b610b42f9c2c96562ed89b00d2b174f3f5..ee77d5dd13d8bb2b50a9b82f5e7c57791710376c 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -30,6 +30,8 @@ Core and Builtins
 Library
 -------
 
+- Issue #7975: correct regression in dict methods supported by bsddb.dbshelve.
+
 - Issue #7959: ctypes callback functions are now registered correctly
   with the cylce garbage collector.