annotate Lib/copy_reg.py @ 5817:48b94de85bf3 legacy-trunk

Extensive changes by AMK.
author Guido van Rossum <guido@python.org>
date Thu, 17 Jul 1997 16:29:42 +0000
parents ef3ba8b99da2
children e34991022571
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5558
ef3ba8b99da2 Added some minimal comments and tweaked lay-out a bit.
Guido van Rossum <guido@python.org>
parents: 5282
diff changeset
1 # Helper to provide extensibility for pickle/cPickle.
ef3ba8b99da2 Added some minimal comments and tweaked lay-out a bit.
Guido van Rossum <guido@python.org>
parents: 5282
diff changeset
2
5282
5250f409d558 support module for cPickle
Guido van Rossum <guido@python.org>
parents:
diff changeset
3 dispatch_table = {}
5250f409d558 support module for cPickle
Guido van Rossum <guido@python.org>
parents:
diff changeset
4 safe_constructors = {}
5250f409d558 support module for cPickle
Guido van Rossum <guido@python.org>
parents:
diff changeset
5
5250f409d558 support module for cPickle
Guido van Rossum <guido@python.org>
parents:
diff changeset
6 def pickle(ob_type, pickle_function, constructor_ob = None):
5250f409d558 support module for cPickle
Guido van Rossum <guido@python.org>
parents:
diff changeset
7 dispatch_table[ob_type] = pickle_function
5250f409d558 support module for cPickle
Guido van Rossum <guido@python.org>
parents:
diff changeset
8
5558
ef3ba8b99da2 Added some minimal comments and tweaked lay-out a bit.
Guido van Rossum <guido@python.org>
parents: 5282
diff changeset
9 if constructor_ob is not None:
5282
5250f409d558 support module for cPickle
Guido van Rossum <guido@python.org>
parents:
diff changeset
10 constructor(constructor_ob)
5250f409d558 support module for cPickle
Guido van Rossum <guido@python.org>
parents:
diff changeset
11
5250f409d558 support module for cPickle
Guido van Rossum <guido@python.org>
parents:
diff changeset
12 def constructor(object):
5250f409d558 support module for cPickle
Guido van Rossum <guido@python.org>
parents:
diff changeset
13 safe_constructors[object] = 1
5250f409d558 support module for cPickle
Guido van Rossum <guido@python.org>
parents:
diff changeset
14
5558
ef3ba8b99da2 Added some minimal comments and tweaked lay-out a bit.
Guido van Rossum <guido@python.org>
parents: 5282
diff changeset
15 # Example: provide pickling support for complex numbers.
5282
5250f409d558 support module for cPickle
Guido van Rossum <guido@python.org>
parents:
diff changeset
16
5558
ef3ba8b99da2 Added some minimal comments and tweaked lay-out a bit.
Guido van Rossum <guido@python.org>
parents: 5282
diff changeset
17 def pickle_complex(c):
ef3ba8b99da2 Added some minimal comments and tweaked lay-out a bit.
Guido van Rossum <guido@python.org>
parents: 5282
diff changeset
18 return complex, (c.real, c.imag)
5282
5250f409d558 support module for cPickle
Guido van Rossum <guido@python.org>
parents:
diff changeset
19
5558
ef3ba8b99da2 Added some minimal comments and tweaked lay-out a bit.
Guido van Rossum <guido@python.org>
parents: 5282
diff changeset
20 pickle(type(1j), pickle_complex, complex)
ef3ba8b99da2 Added some minimal comments and tweaked lay-out a bit.
Guido van Rossum <guido@python.org>
parents: 5282
diff changeset
21