mirror of
https://github.com/python/cpython.git
synced 2025-08-27 20:25:18 +00:00
The C pickle now knows how to deal with a proto= argument. Assorted
code cleanups, and purged more references to text-vs-binary modes.
This commit is contained in:
parent
a212c5c37f
commit
5bd2a79b22
2 changed files with 95 additions and 56 deletions
|
@ -174,13 +174,17 @@ class Pickler:
|
|||
protocol; supported protocols are 0, 1, 2. The default
|
||||
protocol is 0, to be backwards compatible. (Protocol 0 is the
|
||||
only protocol that can be written to a file opened in text
|
||||
mode and read back successfully.)
|
||||
mode and read back successfully. When using a protocol higher
|
||||
than 0, make sure the file is opened in binary mode, both when
|
||||
pickling and unpickling.)
|
||||
|
||||
Protocol 1 is more efficient than protocol 0; protocol 2 is
|
||||
more efficient than protocol 1.
|
||||
|
||||
Specifying a negative protocol version selects the highest
|
||||
protocol version supported.
|
||||
protocol version supported. The higher the protocol used, the
|
||||
more recent the version of Python needed to read the pickle
|
||||
produced.
|
||||
|
||||
The file parameter must have a write() method that accepts a single
|
||||
string argument. It can thus be an open file object, a StringIO
|
||||
|
@ -209,12 +213,7 @@ class Pickler:
|
|||
self.memo.clear()
|
||||
|
||||
def dump(self, obj):
|
||||
"""Write a pickled representation of obj to the open file.
|
||||
|
||||
Either the binary or ASCII format will be used, depending on the
|
||||
value of the bin flag passed to the constructor.
|
||||
|
||||
"""
|
||||
"""Write a pickled representation of obj to the open file."""
|
||||
if self.proto >= 2:
|
||||
self.write(PROTO + chr(self.proto))
|
||||
self.save(obj)
|
||||
|
@ -931,9 +930,8 @@ class Unpickler:
|
|||
def __init__(self, file):
|
||||
"""This takes a file-like object for reading a pickle data stream.
|
||||
|
||||
This class automatically determines whether the data stream was
|
||||
written in binary mode or not, so it does not need a flag as in
|
||||
the Pickler class factory.
|
||||
The protocol version of the pickle is detected automatically, so no
|
||||
proto argument is needed.
|
||||
|
||||
The file-like object must have two methods, a read() method that
|
||||
takes an integer argument, and a readline() method that requires no
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue