summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1997-04-25 19:52:29 (GMT)
committerGuido van Rossum <guido@python.org>1997-04-25 19:52:29 (GMT)
commit8be9a116175fbc5cea9d93e5e998af0df4cee23b (patch)
treebfed7254e2ac58377700e7c39690e934ac6aadaa
parentfaeae5cd784b4832aa93d4da535326f87c67b4a5 (diff)
downloadcpython-8be9a116175fbc5cea9d93e5e998af0df4cee23b.zip
cpython-8be9a116175fbc5cea9d93e5e998af0df4cee23b.tar.gz
cpython-8be9a116175fbc5cea9d93e5e998af0df4cee23b.tar.bz2
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.
-rw-r--r--Lib/pickle.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/Lib/pickle.py b/Lib/pickle.py
index 29557e3..bc01c90 100644
--- a/Lib/pickle.py
+++ b/Lib/pickle.py
@@ -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)