summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/lib/libpickle.tex12
-rw-r--r--Lib/pickle.py4
2 files changed, 12 insertions, 4 deletions
diff --git a/Doc/lib/libpickle.tex b/Doc/lib/libpickle.tex
index d4a54cd..194a717 100644
--- a/Doc/lib/libpickle.tex
+++ b/Doc/lib/libpickle.tex
@@ -444,6 +444,7 @@ or three, with the following semantics:
by name.
\item A tuple of arguments for the callable object, or \code{None}.
+\deprecated{2.3}{Use the tuple of arguments instead}
\item Optionally, the object's state, which will be passed to
the object's \method{__setstate__()} method as described in
@@ -456,10 +457,13 @@ or three, with the following semantics:
Upon unpickling, the callable will be called (provided that it meets
the above criteria), passing in the tuple of arguments; it should
-return the unpickled object. If the second item was \code{None}, then
-instead of calling the callable directly, its \method{__basicnew__()}
-method is called without arguments. It should also return the
-unpickled object.
+return the unpickled object.
+
+If the second item was \code{None}, then instead of calling the
+callable directly, its \method{__basicnew__()} method is called
+without arguments. It should also return the unpickled object.
+
+\deprecated{2.3}{Use the tuple of arguments instead}
An alternative to implementing a \method{__reduce__()} method on the
object to be pickled, is to register the callable with the
diff --git a/Lib/pickle.py b/Lib/pickle.py
index 5837884..d24786a 100644
--- a/Lib/pickle.py
+++ b/Lib/pickle.py
@@ -862,6 +862,10 @@ class Unpickler:
"unpickling" % callable
if arg_tup is None:
+ import warnings
+ warnings.warn("The None return argument form of __reduce__ is "
+ "deprecated. Return a tuple of arguments instead.",
+ DeprecationWarning)
value = callable.__basicnew__()
else:
value = apply(callable, arg_tup)