summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorR. David Murray <rdmurray@bitdance.com>2010-02-24 02:31:27 +0000
committerR. David Murray <rdmurray@bitdance.com>2010-02-24 02:31:27 +0000
commit48605be12883a486942e65bad07214ee6efe407e (patch)
treebd7f0a0ed02129f18339b30f759af55ed24e45a7
parent300c5cc87463aac8330cf458aaaefdb43943af09 (diff)
downloadcpython-git-48605be12883a486942e65bad07214ee6efe407e.tar.gz
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.
-rw-r--r--Lib/bsddb/dbshelve.py21
-rw-r--r--Misc/NEWS2
2 files changed, 8 insertions, 15 deletions
diff --git a/Lib/bsddb/dbshelve.py b/Lib/bsddb/dbshelve.py
index 1706ca86f4..7c875b4738 100644
--- a/Lib/bsddb/dbshelve.py
+++ b/Lib/bsddb/dbshelve.py
@@ -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)
diff --git a/Misc/NEWS b/Misc/NEWS
index 5dc3a7b610..ee77d5dd13 100644
--- 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.