Removed deprecated method arguments from the shelve module.

This commit is contained in:
Raymond Hettinger 2004-12-05 03:58:17 +00:00
parent 7cf9ce2440
commit 1bc82f891c
4 changed files with 25 additions and 34 deletions

View file

@ -13,7 +13,7 @@ instances, recursive data types, and objects containing lots of shared
sub-objects. The keys are ordinary strings. sub-objects. The keys are ordinary strings.
\refstmodindex{pickle} \refstmodindex{pickle}
\begin{funcdesc}{open}{filename\optional{,flag='c'\optional{,protocol=\code{None}\optional{,writeback=\code{False}\optional{,binary=\code{None}}}}}} \begin{funcdesc}{open}{filename\optional{,flag='c'\optional{,protocol=\code{None}\optional{,writeback=\code{False}}}}}
Open a persistent dictionary. The filename specified is the base filename Open a persistent dictionary. The filename specified is the base filename
for the underlying database. As a side-effect, an extension may be added to for the underlying database. As a side-effect, an extension may be added to
the filename and more than one file may be created. By default, the the filename and more than one file may be created. By default, the
@ -24,8 +24,7 @@ parameter of \function{anydbm.open}.
By default, version 0 pickles are used to serialize values. By default, version 0 pickles are used to serialize values.
The version of the pickle protocol can be specified with the The version of the pickle protocol can be specified with the
\var{protocol} parameter. \versionchanged[The \var{protocol} \var{protocol} parameter. \versionchanged[The \var{protocol}
parameter was added. The \var{binary} parameter is deprecated parameter was added]{2.3}
and provided for backwards compatibility only]{2.3}
By default, mutations to persistent-dictionary mutable entries are not By default, mutations to persistent-dictionary mutable entries are not
automatically written back. If the optional \var{writeback} parameter automatically written back. If the optional \var{writeback} parameter
@ -76,7 +75,7 @@ requires knowledge about the database implementation used.
\end{itemize} \end{itemize}
\begin{classdesc}{Shelf}{dict\optional{, protocol=None\optional{, writeback=False\optional{, binary=None}}}} \begin{classdesc}{Shelf}{dict\optional{, protocol=None\optional{, writeback=False}}}
A subclass of \class{UserDict.DictMixin} which stores pickled values in the A subclass of \class{UserDict.DictMixin} which stores pickled values in the
\var{dict} object. \var{dict} object.
@ -84,8 +83,7 @@ By default, version 0 pickles are used to serialize values. The
version of the pickle protocol can be specified with the version of the pickle protocol can be specified with the
\var{protocol} parameter. See the \module{pickle} documentation for a \var{protocol} parameter. See the \module{pickle} documentation for a
discussion of the pickle protocols. \versionchanged[The \var{protocol} discussion of the pickle protocols. \versionchanged[The \var{protocol}
parameter was added. The \var{binary} parameter is deprecated and parameter was added]{2.3}
provided for backwards compatibility only]{2.3}
If the \var{writeback} parameter is \code{True}, the object will hold a If the \var{writeback} parameter is \code{True}, the object will hold a
cache of all entries accessed and write them back to the \var{dict} at cache of all entries accessed and write them back to the \var{dict} at
@ -93,7 +91,7 @@ sync and close times. This allows natural operations on mutable entries,
but can consume much more memory and make sync and close take a long time. but can consume much more memory and make sync and close take a long time.
\end{classdesc} \end{classdesc}
\begin{classdesc}{BsdDbShelf}{dict\optional{, protocol=None\optional{, writeback=False\optional{, binary=None}}}} \begin{classdesc}{BsdDbShelf}{dict\optional{, protocol=None\optional{, writeback=False}}}
A subclass of \class{Shelf} which exposes \method{first}, A subclass of \class{Shelf} which exposes \method{first},
\method{next}, \method{previous}, \method{last} and \method{next}, \method{previous}, \method{last} and
@ -102,19 +100,19 @@ but not in other database modules. The \var{dict} object passed to
the constructor must support those methods. This is generally the constructor must support those methods. This is generally
accomplished by calling one of \function{bsddb.hashopen}, accomplished by calling one of \function{bsddb.hashopen},
\function{bsddb.btopen} or \function{bsddb.rnopen}. The optional \function{bsddb.btopen} or \function{bsddb.rnopen}. The optional
\var{protocol}, \var{writeback}, and \var{binary} parameters have the \var{protocol} and \var{writeback} parameters have the
same interpretation as for the \class{Shelf} class. same interpretation as for the \class{Shelf} class.
\end{classdesc} \end{classdesc}
\begin{classdesc}{DbfilenameShelf}{filename\optional{, flag='c'\optional{, protocol=None\optional{, writeback=False\optional{, binary=None}}}}} \begin{classdesc}{DbfilenameShelf}{filename\optional{, flag='c'\optional{, protocol=None\optional{, writeback=False}}}}
A subclass of \class{Shelf} which accepts a \var{filename} instead of A subclass of \class{Shelf} which accepts a \var{filename} instead of
a dict-like object. The underlying file will be opened using a dict-like object. The underlying file will be opened using
{}\function{anydbm.open}. By default, the file will be created and {}\function{anydbm.open}. By default, the file will be created and
opened for both read and write. The optional \var{flag} parameter has opened for both read and write. The optional \var{flag} parameter has
the same interpretation as for the \function{open} function. The the same interpretation as for the \function{open} function. The
optional \var{protocol}, \var{writeback}, and \var{binary} parameters optional \var{protocol} and \var{writeback} parameters
have the same interpretation as for the \class{Shelf} class. have the same interpretation as for the \class{Shelf} class.
\end{classdesc} \end{classdesc}

View file

@ -80,14 +80,8 @@ class Shelf(UserDict.DictMixin):
See the module's __doc__ string for an overview of the interface. See the module's __doc__ string for an overview of the interface.
""" """
def __init__(self, dict, protocol=None, writeback=False, binary=None): def __init__(self, dict, protocol=None, writeback=False):
self.dict = dict self.dict = dict
if protocol is not None and binary is not None:
raise ValueError, "can't specify both 'protocol' and 'binary'"
if binary is not None:
warnings.warn("The 'binary' argument to Shelf() is deprecated",
PendingDeprecationWarning)
protocol = int(binary)
if protocol is None: if protocol is None:
protocol = 0 protocol = 0
self._protocol = protocol self._protocol = protocol
@ -171,8 +165,8 @@ class BsdDbShelf(Shelf):
See the module's __doc__ string for an overview of the interface. See the module's __doc__ string for an overview of the interface.
""" """
def __init__(self, dict, protocol=None, writeback=False, binary=None): def __init__(self, dict, protocol=None, writeback=False):
Shelf.__init__(self, dict, protocol, writeback, binary) Shelf.__init__(self, dict, protocol, writeback)
def set_location(self, key): def set_location(self, key):
(key, value) = self.dict.set_location(key) (key, value) = self.dict.set_location(key)
@ -207,12 +201,12 @@ class DbfilenameShelf(Shelf):
See the module's __doc__ string for an overview of the interface. See the module's __doc__ string for an overview of the interface.
""" """
def __init__(self, filename, flag='c', protocol=None, writeback=False, binary=None): def __init__(self, filename, flag='c', protocol=None, writeback=False):
import anydbm import anydbm
Shelf.__init__(self, anydbm.open(filename, flag), protocol, writeback, binary) Shelf.__init__(self, anydbm.open(filename, flag), protocol, writeback)
def open(filename, flag='c', protocol=None, writeback=False, binary=None): def open(filename, flag='c', protocol=None, writeback=False):
"""Open a persistent dictionary for reading and writing. """Open a persistent dictionary for reading and writing.
The filename parameter is the base filename for the underlying The filename parameter is the base filename for the underlying
@ -222,10 +216,7 @@ def open(filename, flag='c', protocol=None, writeback=False, binary=None):
anydbm.open(). The optional protocol parameter specifies the anydbm.open(). The optional protocol parameter specifies the
version of the pickle protocol (0, 1, or 2). version of the pickle protocol (0, 1, or 2).
The optional binary parameter is deprecated and may be set to True
to force the use of binary pickles for serializing data values.
See the module's __doc__ string for an overview of the interface. See the module's __doc__ string for an overview of the interface.
""" """
return DbfilenameShelf(filename, flag, protocol, writeback, binary) return DbfilenameShelf(filename, flag, protocol, writeback)

View file

@ -10,7 +10,7 @@ class TestCase(unittest.TestCase):
def test_ascii_file_shelf(self): def test_ascii_file_shelf(self):
try: try:
s = shelve.open(self.fn, binary=False) s = shelve.open(self.fn, protocol=0)
s['key1'] = (1,2,3,4) s['key1'] = (1,2,3,4)
self.assertEqual(s['key1'], (1,2,3,4)) self.assertEqual(s['key1'], (1,2,3,4))
s.close() s.close()
@ -20,7 +20,7 @@ def test_ascii_file_shelf(self):
def test_binary_file_shelf(self): def test_binary_file_shelf(self):
try: try:
s = shelve.open(self.fn, binary=True) s = shelve.open(self.fn, protocol=1)
s['key1'] = (1,2,3,4) s['key1'] = (1,2,3,4)
self.assertEqual(s['key1'], (1,2,3,4)) self.assertEqual(s['key1'], (1,2,3,4))
s.close() s.close()
@ -40,12 +40,12 @@ def test_proto2_file_shelf(self):
def test_in_memory_shelf(self): def test_in_memory_shelf(self):
d1 = {} d1 = {}
s = shelve.Shelf(d1, binary=False) s = shelve.Shelf(d1, protocol=0)
s['key1'] = (1,2,3,4) s['key1'] = (1,2,3,4)
self.assertEqual(s['key1'], (1,2,3,4)) self.assertEqual(s['key1'], (1,2,3,4))
s.close() s.close()
d2 = {} d2 = {}
s = shelve.Shelf(d2, binary=True) s = shelve.Shelf(d2, protocol=1)
s['key1'] = (1,2,3,4) s['key1'] = (1,2,3,4)
self.assertEqual(s['key1'], (1,2,3,4)) self.assertEqual(s['key1'], (1,2,3,4))
s.close() s.close()
@ -102,19 +102,19 @@ def tearDown(self):
os.unlink(f) os.unlink(f)
class TestAsciiFileShelve(TestShelveBase): class TestAsciiFileShelve(TestShelveBase):
_args={'binary':False} _args={'protocol':0}
_in_mem = False _in_mem = False
class TestBinaryFileShelve(TestShelveBase): class TestBinaryFileShelve(TestShelveBase):
_args={'binary':True} _args={'protocol':1}
_in_mem = False _in_mem = False
class TestProto2FileShelve(TestShelveBase): class TestProto2FileShelve(TestShelveBase):
_args={'protocol':2} _args={'protocol':2}
_in_mem = False _in_mem = False
class TestAsciiMemShelve(TestShelveBase): class TestAsciiMemShelve(TestShelveBase):
_args={'binary':False} _args={'protocol':0}
_in_mem = True _in_mem = True
class TestBinaryMemShelve(TestShelveBase): class TestBinaryMemShelve(TestShelveBase):
_args={'binary':True} _args={'protocol':1}
_in_mem = True _in_mem = True
class TestProto2MemShelve(TestShelveBase): class TestProto2MemShelve(TestShelveBase):
_args={'protocol':2} _args={'protocol':2}

View file

@ -21,6 +21,8 @@ Extension Modules
Library Library
------- -------
- the shelve module no longer uses the deprecated binary parameter.
- the pstats module no longer uses the deprecated ignore() method. - the pstats module no longer uses the deprecated ignore() method.
- the filecmp module no longer uses the deprecated use_statcache argument. - the filecmp module no longer uses the deprecated use_statcache argument.