mirror of https://github.com/python/cpython
Add a few comments. Change the way the protocol is checked (it must
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.
This commit is contained in:
parent
3a41c61dd4
commit
1be3175992
|
@ -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):
|
||||
|
|
Loading…
Reference in New Issue