diff options
author | R. David Murray <rdmurray@bitdance.com> | 2010-02-24 02:31:27 (GMT) |
---|---|---|
committer | R. David Murray <rdmurray@bitdance.com> | 2010-02-24 02:31:27 (GMT) |
commit | 48605be12883a486942e65bad07214ee6efe407e (patch) | |
tree | bd7f0a0ed02129f18339b30f759af55ed24e45a7 /Lib/bsddb | |
parent | 300c5cc87463aac8330cf458aaaefdb43943af09 (diff) | |
download | cpython-48605be12883a486942e65bad07214ee6efe407e.zip cpython-48605be12883a486942e65bad07214ee6efe407e.tar.gz cpython-48605be12883a486942e65bad07214ee6efe407e.tar.bz2 |
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.
Diffstat (limited to 'Lib/bsddb')
-rw-r--r-- | Lib/bsddb/dbshelve.py | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/Lib/bsddb/dbshelve.py b/Lib/bsddb/dbshelve.py index 1706ca8..7c875b4 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) |