diff options
author | Guido van Rossum <guido@python.org> | 2007-05-04 20:30:19 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2007-05-04 20:30:19 (GMT) |
commit | 1255ed62bfc2f9f8f5c50935c21cbe0a34e12cc7 (patch) | |
tree | 28cdc575b84d939e3c14e76566f742e0cdd008eb /Lib/pickle.py | |
parent | 2e6a4b37baf560adeee13e9a5702b23f275cc7bd (diff) | |
download | cpython-1255ed62bfc2f9f8f5c50935c21cbe0a34e12cc7.zip cpython-1255ed62bfc2f9f8f5c50935c21cbe0a34e12cc7.tar.gz cpython-1255ed62bfc2f9f8f5c50935c21cbe0a34e12cc7.tar.bz2 |
Much more pickling now works.
Diffstat (limited to 'Lib/pickle.py')
-rw-r--r-- | Lib/pickle.py | 11 |
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): |