[Python-checkins] cpython (3.3): Issue #19189: Improved cross-references in the pickle module documentation.
serhiy.storchaka
python-checkins at python.org
Mon Oct 14 09:44:59 CEST 2013
http://hg.python.org/cpython/rev/f2c725fb4b2f
changeset: 86360:f2c725fb4b2f
branch: 3.3
parent: 86354:3bb34d370871
user: Serhiy Storchaka <storchaka at gmail.com>
date: Mon Oct 14 10:43:46 2013 +0300
summary:
Issue #19189: Improved cross-references in the pickle module documentation.
files:
Doc/library/pickle.rst | 41 ++++++++++++++++-------------
1 files changed, 23 insertions(+), 18 deletions(-)
diff --git a/Doc/library/pickle.rst b/Doc/library/pickle.rst
--- a/Doc/library/pickle.rst
+++ b/Doc/library/pickle.rst
@@ -294,7 +294,7 @@
:func:`copyreg.pickle`. It is a mapping whose keys are classes
and whose values are reduction functions. A reduction function
takes a single argument of the associated class and should
- conform to the same interface as a :meth:`~object.__reduce__`
+ conform to the same interface as a :meth:`__reduce__`
method.
By default, a pickler object will not have a
@@ -390,8 +390,8 @@
* classes that are defined at the top level of a module
-* instances of such classes whose :attr:`__dict__` or the result of calling
- :meth:`__getstate__` is picklable (see section :ref:`pickle-inst` for
+* instances of such classes whose :attr:`~object.__dict__` or the result of
+ calling :meth:`__getstate__` is picklable (see section :ref:`pickle-inst` for
details).
Attempts to pickle unpicklable objects will raise the :exc:`PicklingError`
@@ -435,6 +435,8 @@
Pickling Class Instances
------------------------
+.. currentmodule:: None
+
In this section, we describe the general mechanisms available to you to define,
customize, and control how class instances are pickled and unpickled.
@@ -470,7 +472,7 @@
defines the method :meth:`__getstate__`, it is called and the returned object
is pickled as the contents for the instance, instead of the contents of the
instance's dictionary. If the :meth:`__getstate__` method is absent, the
- instance's :attr:`__dict__` is pickled as usual.
+ instance's :attr:`~object.__dict__` is pickled as usual.
.. method:: object.__setstate__(state)
@@ -539,7 +541,7 @@
* Optionally, the object's state, which will be passed to the object's
:meth:`__setstate__` method as previously described. If the object has no
such method then, the value must be a dictionary and it will be added to
- the object's :attr:`__dict__` attribute.
+ the object's :attr:`~object.__dict__` attribute.
* Optionally, an iterator (and not a sequence) yielding successive items.
These items will be appended to the object either using
@@ -565,6 +567,8 @@
the extended version. The main use for this method is to provide
backwards-compatible reduce values for older Python releases.
+.. currentmodule:: pickle
+
.. _pickle-persistent:
Persistence of External Objects
@@ -582,19 +586,19 @@
The resolution of such persistent IDs is not defined by the :mod:`pickle`
module; it will delegate this resolution to the user defined methods on the
-pickler and unpickler, :meth:`persistent_id` and :meth:`persistent_load`
-respectively.
+pickler and unpickler, :meth:`~Pickler.persistent_id` and
+:meth:`~Unpickler.persistent_load` respectively.
To pickle objects that have an external persistent id, the pickler must have a
-custom :meth:`persistent_id` method that takes an object as an argument and
-returns either ``None`` or the persistent id for that object. When ``None`` is
-returned, the pickler simply pickles the object as normal. When a persistent ID
-string is returned, the pickler will pickle that object, along with a marker so
-that the unpickler will recognize it as a persistent ID.
+custom :meth:`~Pickler.persistent_id` method that takes an object as an
+argument and returns either ``None`` or the persistent id for that object.
+When ``None`` is returned, the pickler simply pickles the object as normal.
+When a persistent ID string is returned, the pickler will pickle that object,
+along with a marker so that the unpickler will recognize it as a persistent ID.
To unpickle external objects, the unpickler must have a custom
-:meth:`persistent_load` method that takes a persistent ID object and returns the
-referenced object.
+:meth:`~Unpickler.persistent_load` method that takes a persistent ID object and
+returns the referenced object.
Here is a comprehensive example presenting how persistent ID can be used to
pickle external objects by reference.
@@ -651,7 +655,7 @@
Here's an example that shows how to modify pickling behavior for a class.
The :class:`TextReader` class opens a text file, and returns the line number and
-line contents each time its :meth:`readline` method is called. If a
+line contents each time its :meth:`!readline` method is called. If a
:class:`TextReader` instance is pickled, all attributes *except* the file object
member are saved. When the instance is unpickled, the file is reopened, and
reading resumes from the last location. The :meth:`__setstate__` and
@@ -730,9 +734,10 @@
inoffensive, it is not difficult to imagine one that could damage your system.
For this reason, you may want to control what gets unpickled by customizing
-:meth:`Unpickler.find_class`. Unlike its name suggests, :meth:`find_class` is
-called whenever a global (i.e., a class or a function) is requested. Thus it is
-possible to either completely forbid globals or restrict them to a safe subset.
+:meth:`Unpickler.find_class`. Unlike its name suggests,
+:meth:`Unpickler.find_class` is called whenever a global (i.e., a class or
+a function) is requested. Thus it is possible to either completely forbid
+globals or restrict them to a safe subset.
Here is an example of an unpickler allowing only few safe classes from the
:mod:`builtins` module to be loaded::
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list