summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2013-12-07 00:05:57 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2013-12-07 00:05:57 (GMT)
commit9bcb1127f1d1305cc8071f8b4460af3b34f3ec74 (patch)
treed53c9eaa705cc16d0651aa5af6517982f374f753 /Doc
parent9858e8b98db6c8997abccb8b7878f59547f31d08 (diff)
downloadcpython-9bcb1127f1d1305cc8071f8b4460af3b34f3ec74.zip
cpython-9bcb1127f1d1305cc8071f8b4460af3b34f3ec74.tar.gz
cpython-9bcb1127f1d1305cc8071f8b4460af3b34f3ec74.tar.bz2
Mention pickle protocol 4, and some tweaks.
Diffstat (limited to 'Doc')
-rw-r--r--Doc/library/pickle.rst25
1 files changed, 18 insertions, 7 deletions
diff --git a/Doc/library/pickle.rst b/Doc/library/pickle.rst
index cfd5f79..1f35b60 100644
--- a/Doc/library/pickle.rst
+++ b/Doc/library/pickle.rst
@@ -94,6 +94,9 @@ There are fundamental differences between the pickle protocols and
The :mod:`json` module: a standard library module allowing JSON
serialization and deserialization.
+
+.. _pickle-protocols:
+
Data stream format
------------------
@@ -125,10 +128,15 @@ There are currently 4 different protocols which can be used for pickling.
efficient pickling of :term:`new-style class`\es. Refer to :pep:`307` for
information about improvements brought by protocol 2.
-* Protocol version 3 was added in Python 3. It has explicit support for
+* Protocol version 3 was added in Python 3.0. It has explicit support for
:class:`bytes` objects and cannot be unpickled by Python 2.x. This is
- the default as well as the current recommended protocol; use it whenever
- possible.
+ the default protocol, and the recommended protocol when compatibility with
+ other Python 3 versions is required.
+
+* Protocol version 4 was added in Python 3.4. It adds support for very large
+ objects, pickling more kinds of objects, and some data format
+ optimizations. Refer to :pep:`3154` for information about improvements
+ brought by protocol 4.
.. note::
Serialization is a more primitive notion than persistence; although
@@ -156,13 +164,16 @@ The :mod:`pickle` module provides the following constants:
.. data:: HIGHEST_PROTOCOL
- The highest protocol version available. This value can be passed as a
- *protocol* value.
+ An integer, the highest :ref:`protocol version <pickle-protocols>`
+ available. This value can be passed as a *protocol* value to functions
+ :func:`dump` and :func:`dumps` as well as the :class:`Pickler`
+ constructor.
.. data:: DEFAULT_PROTOCOL
- The default protocol used for pickling. May be less than HIGHEST_PROTOCOL.
- Currently the default protocol is 3, a new protocol designed for Python 3.0.
+ An integer, the default :ref:`protocol version <pickle-protocols>` used
+ for pickling. May be less than :data:`HIGHEST_PROTOCOL`. Currently the
+ default protocol is 3, a new protocol designed for Python 3.0.
The :mod:`pickle` module provides the following functions to make the pickling