From: Raymond Hettinger Date: Tue, 21 May 2002 17:22:02 +0000 (+0000) Subject: Patch 533291. Deprecate None return form of __reduce__. X-Git-Tag: v2.3c1~5629 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=97394bc7950d898843f7136c5af69279ea9bb080;p=python Patch 533291. Deprecate None return form of __reduce__. --- diff --git a/Doc/lib/libpickle.tex b/Doc/lib/libpickle.tex index d4a54cdbeb..194a717fc0 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 5837884e17..d24786aaf9 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)