Bruce Christensen wrote: > In developing a cPickle module for IronPython that's as compatible as > possible with CPython, these questions have come up:
[I wish you were allowed to read the source code of Python] > - Where are object.__reduce__ and object.__reduce_ex__ defined, and how > does copy_reg._reduce_ex fit into the picture? See http://docs.python.org/lib/node69.html > PEP 307 states that the > default __reduce__ implementation for new-style classes implemented in > Python is copy_reg._reduce. However, in Python 2.4.3 dir(copy_reg) > indicates that it has no _reduce method. Yes, it calls copy_reg._reduce_ex now (which also expects the protocol version) > - When the optional constructor argument is passed to copy_reg.pickle, > where is it stored and how is it used by pickle? It's not used anymore. A comment says # The constructor_ob function is a vestige of safe for unpickling. # There is no reason for the caller to pass it anymore. > - What does copy_reg.constructor() do? It does this: def constructor(object): if not callable(object): raise TypeError("constructors must be callable") Regards, Martin _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com