Commit 2290c8d1 authored by Raymond Hettinger's avatar Raymond Hettinger

Removed the deprecated bin parameter from the pickle module.

parent e9433af8
...@@ -144,14 +144,10 @@ If \var{protocol} is specified as a negative value ...@@ -144,14 +144,10 @@ If \var{protocol} is specified as a negative value
or \constant{HIGHEST_PROTOCOL}, or \constant{HIGHEST_PROTOCOL},
the highest protocol version available will be used. the highest protocol version available will be used.
\versionchanged[The \var{bin} parameter is deprecated and only provided \versionchanged[Introduced the \var{protocol} parameter]{2.3}
for backwards compatibility. You should use the \var{protocol}
parameter instead]{2.3}
A binary format, which is slightly more efficient, can be chosen by A binary format, which is slightly more efficient, can be chosen by
specifying a true value for the \var{bin} argument to the specifying a \var{protocol} version >= 1.
\class{Pickler} constructor or the \function{dump()} and \function{dumps()}
functions. A \var{protocol} version >= 1 implies use of a binary format.
\subsection{Usage} \subsection{Usage}
...@@ -170,24 +166,17 @@ as a \var{protocol} value. ...@@ -170,24 +166,17 @@ as a \var{protocol} value.
The \module{pickle} module provides the The \module{pickle} module provides the
following functions to make this process more convenient: following functions to make this process more convenient:
\begin{funcdesc}{dump}{obj, file\optional{, protocol\optional{, bin}}} \begin{funcdesc}{dump}{obj, file\optional{, protocol}}
Write a pickled representation of \var{obj} to the open file object Write a pickled representation of \var{obj} to the open file object
\var{file}. This is equivalent to \var{file}. This is equivalent to
\code{Pickler(\var{file}, \var{protocol}, \var{bin}).dump(\var{obj})}. \code{Pickler(\var{file}, \var{protocol}).dump(\var{obj})}.
If the \var{protocol} parameter is omitted, protocol 0 is used. If the \var{protocol} parameter is omitted, protocol 0 is used.
If \var{protocol} is specified as a negative value If \var{protocol} is specified as a negative value
or \constant{HIGHEST_PROTOCOL}, or \constant{HIGHEST_PROTOCOL},
the highest protocol version will be used. the highest protocol version will be used.
\versionchanged[The \var{protocol} parameter was added. \versionchanged[Introduced the \var{protocol} parameter]{2.3}
The \var{bin} parameter is deprecated and only provided
for backwards compatibility. You should use the \var{protocol}
parameter instead]{2.3}
If the optional \var{bin} argument is true, the binary pickle format
is used; otherwise the (less efficient) text pickle format is used
(for backwards compatibility, this is the default).
\var{file} must have a \method{write()} method that accepts a single \var{file} must have a \method{write()} method that accepts a single
string argument. It can thus be a file object opened for writing, a string argument. It can thus be a file object opened for writing, a
...@@ -211,7 +200,7 @@ This function automatically determines whether the data stream was ...@@ -211,7 +200,7 @@ This function automatically determines whether the data stream was
written in binary mode or not. written in binary mode or not.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{dumps}{obj\optional{, protocol\optional{, bin}}} \begin{funcdesc}{dumps}{obj\optional{, protocol}}
Return the pickled representation of the object as a string, instead Return the pickled representation of the object as a string, instead
of writing it to a file. of writing it to a file.
...@@ -220,14 +209,8 @@ If \var{protocol} is specified as a negative value ...@@ -220,14 +209,8 @@ If \var{protocol} is specified as a negative value
or \constant{HIGHEST_PROTOCOL}, or \constant{HIGHEST_PROTOCOL},
the highest protocol version will be used. the highest protocol version will be used.
\versionchanged[The \var{protocol} parameter was added. \versionchanged[The \var{protocol} parameter was added]{2.3}
The \var{bin} parameter is deprecated and only provided
for backwards compatibility. You should use the \var{protocol}
parameter instead]{2.3}
If the optional \var{bin} argument is
true, the binary pickle format is used; otherwise the (less efficient)
text pickle format is used (this is the default).
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{loads}{string} \begin{funcdesc}{loads}{string}
...@@ -262,7 +245,7 @@ subclassed. One common reason to subclass is to control what ...@@ -262,7 +245,7 @@ subclassed. One common reason to subclass is to control what
objects can actually be unpickled. See section~\ref{pickle-sub} for objects can actually be unpickled. See section~\ref{pickle-sub} for
more details.}, \class{Pickler} and \class{Unpickler}: more details.}, \class{Pickler} and \class{Unpickler}:
\begin{classdesc}{Pickler}{file\optional{, protocol\optional{, bin}}} \begin{classdesc}{Pickler}{file\optional{, protocol}}
This takes a file-like object to which it will write a pickle data This takes a file-like object to which it will write a pickle data
stream. stream.
...@@ -270,13 +253,7 @@ If the \var{protocol} parameter is omitted, protocol 0 is used. ...@@ -270,13 +253,7 @@ If the \var{protocol} parameter is omitted, protocol 0 is used.
If \var{protocol} is specified as a negative value, If \var{protocol} is specified as a negative value,
the highest protocol version will be used. the highest protocol version will be used.
\versionchanged[The \var{bin} parameter is deprecated and only provided \versionchanged[Introduced the \var{protocol} parameter]{2.3}
for backwards compatibility. You should use the \var{protocol}
parameter instead]{2.3}
Optional \var{bin} if true, tells the pickler to use the more
efficient binary pickle format, otherwise the \ASCII{} format is used
(this is the default).
\var{file} must have a \method{write()} method that accepts a single \var{file} must have a \method{write()} method that accepts a single
string argument. It can thus be an open file object, a string argument. It can thus be an open file object, a
...@@ -289,7 +266,7 @@ object that meets this interface. ...@@ -289,7 +266,7 @@ object that meets this interface.
\begin{methoddesc}[Pickler]{dump}{obj} \begin{methoddesc}[Pickler]{dump}{obj}
Write a pickled representation of \var{obj} to the open file object Write a pickled representation of \var{obj} to the open file object
given in the constructor. Either the binary or \ASCII{} format will given in the constructor. Either the binary or \ASCII{} format will
be used, depending on the value of the \var{bin} flag passed to the be used, depending on the value of the \var{protocol} argument passed to the
constructor. constructor.
\end{methoddesc} \end{methoddesc}
...@@ -451,7 +428,7 @@ method is normally \emph{not} invoked. If it is desirable that the ...@@ -451,7 +428,7 @@ method is normally \emph{not} invoked. If it is desirable that the
\method{__init__()} method be called on unpickling, an old-style class \method{__init__()} method be called on unpickling, an old-style class
can define a method \method{__getinitargs__()}, which should return a can define a method \method{__getinitargs__()}, which should return a
\emph{tuple} containing the arguments to be passed to the class \emph{tuple} containing the arguments to be passed to the class
constructor (i.e. \method{__init__()}). The constructor (\method{__init__()} for example). The
\method{__getinitargs__()} method is called at \method{__getinitargs__()} method is called at
pickle time; the tuple it returns is incorporated in the pickle for pickle time; the tuple it returns is incorporated in the pickle for
the instance. the instance.
......
...@@ -171,7 +171,7 @@ del x ...@@ -171,7 +171,7 @@ del x
class Pickler: class Pickler:
def __init__(self, file, protocol=None, bin=None): def __init__(self, file, protocol=None):
"""This takes a file-like object for writing a pickle data stream. """This takes a file-like object for writing a pickle data stream.
The optional protocol argument tells the pickler to use the The optional protocol argument tells the pickler to use the
...@@ -195,12 +195,6 @@ class Pickler: ...@@ -195,12 +195,6 @@ class Pickler:
object, or any other custom object that meets this interface. object, or any other custom object that meets this interface.
""" """
if protocol is not None and bin is not None:
raise ValueError, "can't specify both 'protocol' and 'bin'"
if bin is not None:
warnings.warn("The 'bin' argument to Pickler() is deprecated",
DeprecationWarning)
protocol = bin
if protocol is None: if protocol is None:
protocol = 0 protocol = 0
if protocol < 0: if protocol < 0:
...@@ -1378,12 +1372,12 @@ try: ...@@ -1378,12 +1372,12 @@ try:
except ImportError: except ImportError:
from StringIO import StringIO from StringIO import StringIO
def dump(obj, file, protocol=None, bin=None): def dump(obj, file, protocol=None):
Pickler(file, protocol, bin).dump(obj) Pickler(file, protocol).dump(obj)
def dumps(obj, protocol=None, bin=None): def dumps(obj, protocol=None):
file = StringIO() file = StringIO()
Pickler(file, protocol, bin).dump(obj) Pickler(file, protocol).dump(obj)
return file.getvalue() return file.getvalue()
def load(file): def load(file):
......
...@@ -21,6 +21,8 @@ Extension Modules ...@@ -21,6 +21,8 @@ Extension Modules
Library Library
------- -------
- the pickle module no longer uses the deprecated bin parameter.
- the depecated statcache module was removed. - the depecated statcache module was removed.
- the shelve module no longer uses the deprecated binary parameter. - the shelve module no longer uses the deprecated binary parameter.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment