diff --git a/Doc/lib/libpickle.tex b/Doc/lib/libpickle.tex index d4a54cdbeb6..194a717fc0a 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 5837884e178..d24786aaf91 100644 --- a/Lib/pickle.py +++ b/Lib/pickle.py @@ -862,6 +862,10 @@ def load_reduce(self): "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)