On Wed, 21 Aug 2013, Prasad, Ramit wrote:
Fredrik Tolf wrote:
[...]
I considered trying to create subclasses of the pickler and unpickler that
pickle a reference to a module loader and data for the particular module
along with a class that comes from such a module, by overriding
Pickler.save_global and Unpickler.load_global. Unfortunately, however,
those functions aren't part of the public interface and can't be
overridden when the C-pickle module is used instead (which, obviously, is
what normally happens).
[...]

I believe rather than subclassing the pickler, you are expected to
change the behavior from within the class via __getstate__ and __setstate__.

Well, that clearly wouldn't work, since that still assumes the module can be found.

Maybe all you need to add is implementation for obj.__reduce__

That would certainly work, and I guess I could perhaps use it as a work-around, but that would mean I'd have to mark every single such class as such in some way or another. What I'm looking for is a solution that could make them picklable transparently, just like normal.

--

Fredrik Tolf
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to