Removed the deprecated bin parameter from the pickle module.

This commit is contained in:
Raymond Hettinger 2004-12-05 05:20:42 +00:00
parent 4ebe364277
commit 3489cad30a
3 changed files with 18 additions and 45 deletions

View File

@ -144,14 +144,10 @@ If \var{protocol} is specified as a negative value
or \constant{HIGHEST_PROTOCOL},
the highest protocol version available will be used.
\versionchanged[The \var{bin} parameter is deprecated and only provided
for backwards compatibility. You should use the \var{protocol}
parameter instead]{2.3}
\versionchanged[Introduced the \var{protocol} parameter]{2.3}
A binary format, which is slightly more efficient, can be chosen by
specifying a true value for the \var{bin} argument to the
\class{Pickler} constructor or the \function{dump()} and \function{dumps()}
functions. A \var{protocol} version >= 1 implies use of a binary format.
specifying a \var{protocol} version >= 1.
\subsection{Usage}
@ -170,24 +166,17 @@ as a \var{protocol} value.
The \module{pickle} module provides the
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
\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 \var{protocol} is specified as a negative value
or \constant{HIGHEST_PROTOCOL},
the highest protocol version will be used.
\versionchanged[The \var{protocol} parameter was added.
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).
\versionchanged[Introduced the \var{protocol} parameter]{2.3}
\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
@ -211,7 +200,7 @@ This function automatically determines whether the data stream was
written in binary mode or not.
\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
of writing it to a file.
@ -220,14 +209,8 @@ If \var{protocol} is specified as a negative value
or \constant{HIGHEST_PROTOCOL},
the highest protocol version will be used.
\versionchanged[The \var{protocol} parameter was added.
The \var{bin} parameter is deprecated and only provided
for backwards compatibility. You should use the \var{protocol}
parameter instead]{2.3}
\versionchanged[The \var{protocol} parameter was added]{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}
\begin{funcdesc}{loads}{string}
@ -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
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
stream.
@ -270,13 +253,7 @@ If the \var{protocol} parameter is omitted, protocol 0 is used.
If \var{protocol} is specified as a negative value,
the highest protocol version will be used.
\versionchanged[The \var{bin} parameter is deprecated and only provided
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).
\versionchanged[Introduced the \var{protocol} parameter]{2.3}
\var{file} must have a \method{write()} method that accepts a single
string argument. It can thus be an open file object, a
@ -289,7 +266,7 @@ object that meets this interface.
\begin{methoddesc}[Pickler]{dump}{obj}
Write a pickled representation of \var{obj} to the open file object
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.
\end{methoddesc}
@ -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
can define a method \method{__getinitargs__()}, which should return a
\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
pickle time; the tuple it returns is incorporated in the pickle for
the instance.

View File

@ -171,7 +171,7 @@ del x
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.
The optional protocol argument tells the pickler to use the
@ -195,12 +195,6 @@ class Pickler:
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:
protocol = 0
if protocol < 0:
@ -1378,12 +1372,12 @@ try:
except ImportError:
from StringIO import StringIO
def dump(obj, file, protocol=None, bin=None):
Pickler(file, protocol, bin).dump(obj)
def dump(obj, file, protocol=None):
Pickler(file, protocol).dump(obj)
def dumps(obj, protocol=None, bin=None):
def dumps(obj, protocol=None):
file = StringIO()
Pickler(file, protocol, bin).dump(obj)
Pickler(file, protocol).dump(obj)
return file.getvalue()
def load(file):

View File

@ -21,6 +21,8 @@ Extension Modules
Library
-------
- the pickle module no longer uses the deprecated bin parameter.
- the depecated statcache module was removed.
- the shelve module no longer uses the deprecated binary parameter.