summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/lib/libshelve.tex18
-rw-r--r--Lib/shelve.py23
-rw-r--r--Lib/test/test_shelve.py16
-rw-r--r--Misc/NEWS2
4 files changed, 25 insertions, 34 deletions
diff --git a/Doc/lib/libshelve.tex b/Doc/lib/libshelve.tex
index 17ef3e5..47f7ef6 100644
--- a/Doc/lib/libshelve.tex
+++ b/Doc/lib/libshelve.tex
@@ -13,7 +13,7 @@ instances, recursive data types, and objects containing lots of shared
sub-objects. The keys are ordinary strings.
\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
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
@@ -24,8 +24,7 @@ parameter of \function{anydbm.open}.
By default, version 0 pickles are used to serialize values.
The version of the pickle protocol can be specified with the
\var{protocol} parameter. \versionchanged[The \var{protocol}
-parameter was added. The \var{binary} parameter is deprecated
-and provided for backwards compatibility only]{2.3}
+parameter was added]{2.3}
By default, mutations to persistent-dictionary mutable entries are not
automatically written back. If the optional \var{writeback} parameter
@@ -76,7 +75,7 @@ requires knowledge about the database implementation used.
\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
\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
\var{protocol} parameter. See the \module{pickle} documentation for a
discussion of the pickle protocols. \versionchanged[The \var{protocol}
-parameter was added. The \var{binary} parameter is deprecated and
-provided for backwards compatibility only]{2.3}
+parameter was added]{2.3}
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
@@ -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.
\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},
\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
accomplished by calling one of \function{bsddb.hashopen},
\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.
\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 dict-like object. The underlying file will be opened using
{}\function{anydbm.open}. By default, the file will be created and
opened for both read and write. The optional \var{flag} parameter has
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.
\end{classdesc}
diff --git a/Lib/shelve.py b/Lib/shelve.py
index 5e680bc..4959c26 100644
--- a/Lib/shelve.py
+++ b/Lib/shelve.py
@@ -80,14 +80,8 @@ class Shelf(UserDict.DictMixin):
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
- 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:
protocol = 0
self._protocol = protocol
@@ -171,8 +165,8 @@ class BsdDbShelf(Shelf):
See the module's __doc__ string for an overview of the interface.
"""
- def __init__(self, dict, protocol=None, writeback=False, binary=None):
- Shelf.__init__(self, dict, protocol, writeback, binary)
+ def __init__(self, dict, protocol=None, writeback=False):
+ Shelf.__init__(self, dict, protocol, writeback)
def set_location(self, 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.
"""
- def __init__(self, filename, flag='c', protocol=None, writeback=False, binary=None):
+ def __init__(self, filename, flag='c', protocol=None, writeback=False):
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.
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
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.
"""
- return DbfilenameShelf(filename, flag, protocol, writeback, binary)
+ return DbfilenameShelf(filename, flag, protocol, writeback)
diff --git a/Lib/test/test_shelve.py b/Lib/test/test_shelve.py
index e3f237d..447d06d 100644
--- a/Lib/test/test_shelve.py
+++ b/Lib/test/test_shelve.py
@@ -10,7 +10,7 @@ class TestCase(unittest.TestCase):
def test_ascii_file_shelf(self):
try:
- s = shelve.open(self.fn, binary=False)
+ s = shelve.open(self.fn, protocol=0)
s['key1'] = (1,2,3,4)
self.assertEqual(s['key1'], (1,2,3,4))
s.close()
@@ -20,7 +20,7 @@ class TestCase(unittest.TestCase):
def test_binary_file_shelf(self):
try:
- s = shelve.open(self.fn, binary=True)
+ s = shelve.open(self.fn, protocol=1)
s['key1'] = (1,2,3,4)
self.assertEqual(s['key1'], (1,2,3,4))
s.close()
@@ -40,12 +40,12 @@ class TestCase(unittest.TestCase):
def test_in_memory_shelf(self):
d1 = {}
- s = shelve.Shelf(d1, binary=False)
+ s = shelve.Shelf(d1, protocol=0)
s['key1'] = (1,2,3,4)
self.assertEqual(s['key1'], (1,2,3,4))
s.close()
d2 = {}
- s = shelve.Shelf(d2, binary=True)
+ s = shelve.Shelf(d2, protocol=1)
s['key1'] = (1,2,3,4)
self.assertEqual(s['key1'], (1,2,3,4))
s.close()
@@ -102,19 +102,19 @@ class TestShelveBase(mapping_tests.BasicTestMappingProtocol):
os.unlink(f)
class TestAsciiFileShelve(TestShelveBase):
- _args={'binary':False}
+ _args={'protocol':0}
_in_mem = False
class TestBinaryFileShelve(TestShelveBase):
- _args={'binary':True}
+ _args={'protocol':1}
_in_mem = False
class TestProto2FileShelve(TestShelveBase):
_args={'protocol':2}
_in_mem = False
class TestAsciiMemShelve(TestShelveBase):
- _args={'binary':False}
+ _args={'protocol':0}
_in_mem = True
class TestBinaryMemShelve(TestShelveBase):
- _args={'binary':True}
+ _args={'protocol':1}
_in_mem = True
class TestProto2MemShelve(TestShelveBase):
_args={'protocol':2}
diff --git a/Misc/NEWS b/Misc/NEWS
index 707429b..ee0e03a 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -21,6 +21,8 @@ Extension Modules
Library
-------
+- the shelve module no longer uses the deprecated binary parameter.
+
- the pstats module no longer uses the deprecated ignore() method.
- the filecmp module no longer uses the deprecated use_statcache argument.