Kaydet (Commit) 8be9a116 authored tarafından Guido van Rossum's avatar Guido van Rossum

Restore two features of the original 1.4 pickle:

- which_module() search __main__ last;

- load_inst() no longer checks that the classname really refers to a class.
üst faeae5cd
......@@ -128,7 +128,7 @@ the old value, not the modified one. (XXX There are two problems here:
I have no answers. Garbage Collection may also become a problem here.)
"""
__version__ = "1.7" # Code version
__version__ = "1.8" # Code version
from types import *
from copy_reg import *
......@@ -538,7 +538,8 @@ def whichmodule(cls, clsname):
import sys
for name, module in sys.modules.items():
if hasattr(module, clsname) and \
if name != '__main__' and \
hasattr(module, clsname) and \
getattr(module, clsname) is cls:
break
else:
......@@ -677,9 +678,9 @@ class Unpickler:
module = self.readline()[:-1]
name = self.readline()[:-1]
klass = self.find_class(module, name)
if (type(klass) is not ClassType):
raise SystemError, "Imported object %s from module %s is " \
"not a class" % (name, module)
## if (type(klass) is not ClassType):
## raise SystemError, "Imported object %s from module %s is " \
## "not a class" % (name, module)
value = apply(klass, args)
self.append(value)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment