Merged revisions 78412 via svnmerge from
authorR. David Murray <rdmurray@bitdance.com>
Wed, 24 Feb 2010 02:35:33 +0000 (02:35 +0000)
committerR. David Murray <rdmurray@bitdance.com>
Wed, 24 Feb 2010 02:35:33 +0000 (02:35 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78412 | r.david.murray | 2010-02-23 21:31:27 -0500 (Tue, 23 Feb 2010) | 6 lines

  Issue 7975: in python 2.6 bsddb.dbshelve switched from DictMixin to
  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 e2912597d588641bec7baac91eca0649b800d161..5990df3ddd4c22f8f27fc5a2aba7548f4070c9a8 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 75c8f5cc31c4da501af25e74bf89015982666074..6962b01ace38b41aaef45bac38c9bf8cbce04f2b 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -69,6 +69,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.