Update of /cvsroot/python/python/dist/src/Lib In directory slayer.i.sourceforge.net:/tmp/cvs-serv15338 Modified Files: copy_reg.py Log Message: In the module docstring, clarify that this is used to register pickle support for extension types, not classes. pickle(): If the type is a class or if the reduction function is not callable, raise a TypeError. constructor(): If the constructor is not callable, raise TypeError. This (partially) closes SourceForge patch #101859. Index: copy_reg.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/copy_reg.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** copy_reg.py 2000/02/02 15:10:13 1.3 --- copy_reg.py 2000/10/11 22:16:45 1.4 *************** *** 1,8 **** ! """Helper to provide extensibility for pickle/cPickle.""" dispatch_table = {} safe_constructors = {} ! def pickle(ob_type, pickle_function, constructor_ob = None): dispatch_table[ob_type] = pickle_function --- 1,19 ---- ! """Helper to provide extensibility for pickle/cPickle. + This is only useful to add pickle support for extension types defined in + C, not for instances of user-defined classes. + """ + + from types import ClassType as _ClassType + dispatch_table = {} safe_constructors = {} ! def pickle(ob_type, pickle_function, constructor_ob=None): ! if type(ob_type) is _ClassType: ! raise TypeError("copy_reg is not intended for use with classes") ! ! if not callable(pickle_function): ! raise TypeError("reduction functions must be callable") dispatch_table[ob_type] = pickle_function *************** *** 11,14 **** --- 22,27 ---- def constructor(object): + if not callable(object): + raise TypeError("constructors must be callable") safe_constructors[object] = 1 *************** *** 19,21 **** pickle(type(1j), pickle_complex, complex) - --- 32,33 ----
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4