__version__ = "1.8" # Code version
from types import *
-from copy_reg import *
+from copy_reg import dispatch_table, safe_constructors
import string, marshal
format_version = "1.2" # File format version we write
"by %s must be a tuple" % reduce
self.save_reduce(callable, arg_tup, state)
+ memo_len = len(memo)
+ self.write(self.put(memo_len))
+ memo[d] = (memo_len, object)
return
f(self, object)
if (self.bin):
write(OBJ + self.put(memo_len))
else:
- module = whichmodule(cls, cls.__name__)
- name = cls.__name__
- write(INST + module + '\n' + name + '\n' +
+ write(INST + cls.__module__ + '\n' + cls.__name__ + '\n' +
self.put(memo_len))
memo[d] = (memo_len, object)
if (name is None):
name = object.__name__
- module = whichmodule(object, name)
+ try:
+ module = object.__module__
+ except AttributeError:
+ module = whichmodule(object, name)
memo_len = len(memo)
write(GLOBAL + module + '\n' + name + '\n' +
classmap = {}
+# This is no longer used to find classes, but still for functions
def whichmodule(cls, clsname):
"""Figure out the module in which a class occurs.