[issue1692335] Fix exception pickling: Move initial args assignment to BaseException.__new__
Richard Oudkerk
report at bugs.python.org
Fri Jul 27 01:16:39 CEST 2012
Richard Oudkerk <shibturn at gmail.com> added the comment:
I realize now that the idea of using object.__reduce__(..., 2) would not really work since many exception classes use non-slot descriptors (unless '__slots__' attributes were also added as hints of what to serialize).
I think there are two options simple enough to sneak in to 3.3:
(1) The trivial patch of initially setting self->args in __new__().
(2) Georg's idea of additionally setting a __newargs__ attribute in __new__() and using it in __reduce__(). However, I would store __newargs__ directly in the struct to avoid always triggering creation of a dict for the instance.
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue1692335>
_______________________________________
More information about the Python-bugs-list
mailing list