[Python-checkins] peps: Add a suggestion to make more callables picklable (as multiprocessing

antoine.pitrou python-checkins at python.org
Tue Aug 16 12:14:08 CEST 2011


http://hg.python.org/peps/rev/83606a50ac6a
changeset: 3928:83606a50ac6a
user: Antoine Pitrou <solipsis at pitrou.net>
date: Tue Aug 16 12:12:02 2011 +0200
summary:
 Add a suggestion to make more callables picklable (as multiprocessing
already does)
files:
 pep-3154.txt | 17 ++++++++++++++---
 1 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/pep-3154.txt b/pep-3154.txt
--- a/pep-3154.txt
+++ b/pep-3154.txt
@@ -67,12 +67,20 @@
 can not be pickled (or, rather, unpickled) [3]_. Both a new special method
 (``__getnewargs_ex__`` ?) and a new opcode (NEWOBJEX ?) are needed.
 
+Serializing more callable objects
+---------------------------------
+
+Currently, only module-global functions are serializable. Multiprocessing
+has custom support for pickling other callables such as bound methods [4]_.
+This support could be folded in the protocol, and made more efficient
+through a new GETATTR opcode.
+
 Serializing "pseudo-global" objects
 -----------------------------------
 
 Objects which are not module-global, but should be treated in a similar
-fashion -- such as methods [4]_ or nested classes -- cannot currently be
-pickled (or, rather, unpickled) because the pickle protocol does not
+fashion -- such as unbound methods [5]_ or nested classes -- cannot currently
+be pickled (or, rather, unpickled) because the pickle protocol does not
 correctly specify how to retrieve them. One solution would be through the
 adjunction of a ``__namespace__`` (or ``__qualname__``) to all class and
 function objects, specifying the full "path" by which they can be retrieved.
@@ -119,7 +127,10 @@
 .. [3] "pickle/copyreg doesn't support keyword only arguments in __new__":
 http://bugs.python.org/issue4727
 
-.. [4] "pickle should support methods":
+.. [4] Lib/multiprocessing/forking.py:
+ http://hg.python.org/cpython/file/baea9f5f973c/Lib/multiprocessing/forking.py#l54
+
+.. [5] "pickle should support methods":
 http://bugs.python.org/issue9276
 
 Copyright
-- 
Repository URL: http://hg.python.org/peps


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /