summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2007-05-04 20:30:19 (GMT)
committerGuido van Rossum <guido@python.org>2007-05-04 20:30:19 (GMT)
commit1255ed62bfc2f9f8f5c50935c21cbe0a34e12cc7 (patch)
tree28cdc575b84d939e3c14e76566f742e0cdd008eb
parent2e6a4b37baf560adeee13e9a5702b23f275cc7bd (diff)
downloadcpython-1255ed62bfc2f9f8f5c50935c21cbe0a34e12cc7.zip
cpython-1255ed62bfc2f9f8f5c50935c21cbe0a34e12cc7.tar.gz
cpython-1255ed62bfc2f9f8f5c50935c21cbe0a34e12cc7.tar.bz2
Much more pickling now works.
-rw-r--r--Lib/pickle.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/Lib/pickle.py b/Lib/pickle.py
index 89129a7..6b33514 100644
--- a/Lib/pickle.py
+++ b/Lib/pickle.py
@@ -308,7 +308,7 @@ class Pickler:
(t.__name__, obj))
# Check for string returned by reduce(), meaning "save as global"
- if inistance(rv, basestring):
+ if isinstance(rv, basestring):
self.save_global(obj, rv)
return
@@ -512,7 +512,8 @@ class Pickler:
else:
obj = obj.replace("\\", "\\u005c")
obj = obj.replace("\n", "\\u000a")
- self.write(UNICODE + obj.encode('raw-unicode-escape') + 'b\n')
+ self.write(UNICODE + bytes(obj.encode('raw-unicode-escape')) +
+ b'\n')
self.memoize(obj)
dispatch[str] = save_unicode
@@ -895,7 +896,7 @@ class Unpickler:
dispatch[BININT2[0]] = load_binint2
def load_long(self):
- self.append(int(self.readline()[:-1], 0))
+ self.append(int(str(self.readline()[:-1]), 0))
dispatch[LONG[0]] = load_long
def load_long1(self):
@@ -1081,6 +1082,8 @@ class Unpickler:
def find_class(self, module, name):
# Subclasses may override this
+ module = str(module)
+ name = str(name)
__import__(module)
mod = sys.modules[module]
klass = getattr(mod, name)
@@ -1122,7 +1125,7 @@ class Unpickler:
dispatch[LONG_BINGET[0]] = load_long_binget
def load_put(self):
- self.memo[self.readline()[:-1]] = self.stack[-1]
+ self.memo[str(self.readline()[:-1])] = self.stack[-1]
dispatch[PUT[0]] = load_put
def load_binput(self):