diff options
author | Georg Brandl <georg@python.org> | 2008-04-06 08:39:37 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2008-04-06 08:39:37 (GMT) |
commit | 42f2ae0f69cf9dbf59b49685413a5750d11f4438 (patch) | |
tree | 0bc2732714d056eb47c1802cda42174b3c5afa9b /Doc/library/pickle.rst | |
parent | 790465fd90e8a72590386465f518db9e67ab843f (diff) | |
download | cpython-42f2ae0f69cf9dbf59b49685413a5750d11f4438.zip cpython-42f2ae0f69cf9dbf59b49685413a5750d11f4438.tar.gz cpython-42f2ae0f69cf9dbf59b49685413a5750d11f4438.tar.bz2 |
#2558: document pickle protocol version 3. Thanks to Guilherme Polo.
Diffstat (limited to 'Doc/library/pickle.rst')
-rw-r--r-- | Doc/library/pickle.rst | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/Doc/library/pickle.rst b/Doc/library/pickle.rst index 520c24b..a9877ff 100644 --- a/Doc/library/pickle.rst +++ b/Doc/library/pickle.rst @@ -110,7 +110,7 @@ advantage of using printable ASCII (and of some other characteristics of :mod:`pickle`'s representation) is that for debugging or recovery purposes it is possible for a human to read the pickled file with a standard text editor. -There are currently 3 different protocols which can be used for pickling. +There are currently 4 different protocols which can be used for pickling. * Protocol version 0 is the original ASCII protocol and is backwards compatible with earlier versions of Python. @@ -121,11 +121,14 @@ There are currently 3 different protocols which can be used for pickling. * Protocol version 2 was introduced in Python 2.3. It provides much more efficient pickling of :term:`new-style class`\es. +* Protocol version 3 was added in Python 3.0. It has explicit support for + bytes and cannot be unpickled by Python 2.x pickle modules. + Refer to :pep:`307` for more information. -If a *protocol* is not specified, protocol 0 is used. If *protocol* is specified -as a negative value or :const:`HIGHEST_PROTOCOL`, the highest protocol version -available will be used. +If a *protocol* is not specified, protocol 3 is used. If *protocol* is +specified as a negative value or :const:`HIGHEST_PROTOCOL`, the highest +protocol version available will be used. A binary format, which is slightly more efficient, can be chosen by specifying a *protocol* version >= 1. @@ -164,9 +167,9 @@ process more convenient: Write a pickled representation of *obj* to the open file object *file*. This is equivalent to ``Pickler(file, protocol).dump(obj)``. - If the *protocol* parameter is omitted, protocol 0 is used. If *protocol* is - specified as a negative value or :const:`HIGHEST_PROTOCOL`, the highest protocol - version will be used. + If the *protocol* parameter is omitted, protocol 3 is used. If *protocol* is + specified as a negative value or :const:`HIGHEST_PROTOCOL`, the highest + protocol version will be used. *file* must have a :meth:`write` method that accepts a single string argument. It can thus be a file object opened for writing, a :mod:`StringIO` object, or @@ -194,9 +197,9 @@ process more convenient: Return the pickled representation of the object as a string, instead of writing it to a file. - If the *protocol* parameter is omitted, protocol 0 is used. If *protocol* is - specified as a negative value or :const:`HIGHEST_PROTOCOL`, the highest protocol - version will be used. + If the *protocol* parameter is omitted, protocol 3 is used. If *protocol* + is specified as a negative value or :const:`HIGHEST_PROTOCOL`, the highest + protocol version will be used. .. function:: loads(string) @@ -234,7 +237,7 @@ The :mod:`pickle` module also exports two callables [#]_, :class:`Pickler` and This takes a file-like object to which it will write a pickle data stream. - If the *protocol* parameter is omitted, protocol 0 is used. If *protocol* is + If the *protocol* parameter is omitted, protocol 3 is used. If *protocol* is specified as a negative value or :const:`HIGHEST_PROTOCOL`, the highest protocol version will be used. @@ -681,8 +684,8 @@ that a self-referencing list is pickled and restored correctly. :: output = open('data.pkl', 'wb') - # Pickle dictionary using protocol 0. - pickle.dump(data1, output) + # Pickle dictionary using protocol 2. + pickle.dump(data1, output, 2) # Pickle the list using the highest protocol available. pickle.dump(selfref_list, output, -1) |