]> granicus.if.org Git - python/commitdiff
Add a few comments. Change the way the protocol is checked (it must
authorGuido van Rossum <guido@python.org>
Tue, 28 Jan 2003 15:19:53 +0000 (15:19 +0000)
committerGuido van Rossum <guido@python.org>
Tue, 28 Jan 2003 15:19:53 +0000 (15:19 +0000)
be one of 0, 1 or 2).

I should note that the previous checkin also added NEWOBJ support to
the unpickler -- but there's nothing yet that generates this.

Lib/pickle.py

index dffdc2c4105dded7bfd5a82077ef4fee923627a0..6045c84044a7c4085ad3e95d310e7861c96f29b9 100644 (file)
@@ -158,6 +158,9 @@ del x
 
 _quotes = ["'", '"']
 
+
+# Pickling machinery
+
 class Pickler:
 
     def __init__(self, file, proto=1):
@@ -178,11 +181,11 @@ class Pickler:
         object, or any other custom object that meets this interface.
 
         """
-        if not 0 <= proto <= 2:
+        if proto not in (0, 1, 2):
             raise ValueError, "pickle protocol must be 0, 1 or 2"
         self.write = file.write
         self.memo = {}
-        self.proto = proto
+        self.proto = int(proto)
         self.bin = proto >= 1
 
     def clear_memo(self):
@@ -639,6 +642,7 @@ class Pickler:
     dispatch[BuiltinFunctionType] = save_global
     dispatch[TypeType] = save_global
 
+# Pickling helpers
 
 def _keep_alive(x, memo):
     """Keeps a reference to the object x in the memo.
@@ -683,6 +687,8 @@ def whichmodule(func, funcname):
     return name
 
 
+# Unpickling machinery
+
 class Unpickler:
 
     def __init__(self, file):