mirror of
https://github.com/python/cpython.git
synced 2025-08-02 16:13:13 +00:00
Fix compatibility for earlier versions of Python (than 2.3), which
doesn't have UserDict.DictMixin.
This commit is contained in:
parent
07534a607b
commit
9914227caa
2 changed files with 15 additions and 5 deletions
|
@ -16,7 +16,12 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
import db
|
import db
|
||||||
from UserDict import DictMixin
|
|
||||||
|
try:
|
||||||
|
from UserDict import DictMixin
|
||||||
|
except ImportError:
|
||||||
|
# DictMixin is new in Python 2.3
|
||||||
|
class DictMixin: pass
|
||||||
|
|
||||||
class DBEnv:
|
class DBEnv:
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
|
|
|
@ -30,7 +30,11 @@ storage.
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
|
||||||
import cPickle
|
import cPickle
|
||||||
from UserDict import DictMixin
|
try:
|
||||||
|
from UserDict import DictMixin
|
||||||
|
except ImportError:
|
||||||
|
# DictMixin is new in Python 2.3
|
||||||
|
class DictMixin: pass
|
||||||
try:
|
try:
|
||||||
# For Python 2.3
|
# For Python 2.3
|
||||||
from bsddb import db
|
from bsddb import db
|
||||||
|
@ -77,8 +81,7 @@ def open(filename, flags=db.DB_CREATE, mode=0660, filetype=db.DB_HASH,
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
class DBShelf(DictMixin):
|
class DBShelf(DictMixin):
|
||||||
"""
|
"""A shelf to hold pickled objects, built upon a bsddb DB object. It
|
||||||
A shelf to hold pickled objects, built upon a bsddb DB object. It
|
|
||||||
automatically pickles/unpickles data objects going to/from the DB.
|
automatically pickles/unpickles data objects going to/from the DB.
|
||||||
"""
|
"""
|
||||||
def __init__(self, dbenv=None):
|
def __init__(self, dbenv=None):
|
||||||
|
@ -91,7 +94,9 @@ class DBShelf(DictMixin):
|
||||||
|
|
||||||
|
|
||||||
def __getattr__(self, name):
|
def __getattr__(self, name):
|
||||||
"""Many methods we can just pass through to the DB object. (See below)"""
|
"""Many methods we can just pass through to the DB object.
|
||||||
|
(See below)
|
||||||
|
"""
|
||||||
return getattr(self.db, name)
|
return getattr(self.db, name)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue