bpo-39426: Fix outdated default and highest protocols in docs (GH-18154)

Some portions of the pickle documentation hadn't been updated for the pickle protocol changes in Python 3.8 (new protocol 5, default protocol 4). This PR fixes those docs.


https://bugs.python.org/issue39426
This commit is contained in:
Mark Dickinson 2020-01-24 10:03:22 +00:00 committed by Miss Islington (bot)
parent b9783d2e03
commit e9652e8d58
3 changed files with 21 additions and 19 deletions

View file

@ -409,9 +409,9 @@ class _Pickler:
"""This takes a binary file for writing a pickle data stream. """This takes a binary file for writing a pickle data stream.
The optional *protocol* argument tells the pickler to use the The optional *protocol* argument tells the pickler to use the
given protocol; supported protocols are 0, 1, 2, 3 and 4. The given protocol; supported protocols are 0, 1, 2, 3, 4 and 5.
default protocol is 4. It was introduced in Python 3.4, it is The default protocol is 4. It was introduced in Python 3.4, and
incompatible with previous versions. is incompatible with previous versions.
Specifying a negative protocol version selects the highest Specifying a negative protocol version selects the highest
protocol version supported. The higher the protocol used, the protocol version supported. The higher the protocol used, the

View file

@ -4645,8 +4645,9 @@ _pickle.Pickler.__init__
This takes a binary file for writing a pickle data stream. This takes a binary file for writing a pickle data stream.
The optional *protocol* argument tells the pickler to use the given The optional *protocol* argument tells the pickler to use the given
protocol; supported protocols are 0, 1, 2, 3 and 4. The default protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default
protocol is 3; a backward-incompatible protocol designed for Python 3. protocol is 4. It was introduced in Python 3.4, and is incompatible
with previous versions.
Specifying a negative protocol version selects the highest protocol Specifying a negative protocol version selects the highest protocol
version supported. The higher the protocol used, the more recent the version supported. The higher the protocol used, the more recent the
@ -4678,7 +4679,7 @@ static int
_pickle_Pickler___init___impl(PicklerObject *self, PyObject *file, _pickle_Pickler___init___impl(PicklerObject *self, PyObject *file,
PyObject *protocol, int fix_imports, PyObject *protocol, int fix_imports,
PyObject *buffer_callback) PyObject *buffer_callback)
/*[clinic end generated code: output=0abedc50590d259b input=bb886e00443a7811]*/ /*[clinic end generated code: output=0abedc50590d259b input=a7c969699bf5dad3]*/
{ {
_Py_IDENTIFIER(persistent_id); _Py_IDENTIFIER(persistent_id);
_Py_IDENTIFIER(dispatch_table); _Py_IDENTIFIER(dispatch_table);
@ -7635,8 +7636,8 @@ This is equivalent to ``Pickler(file, protocol).dump(obj)``, but may
be more efficient. be more efficient.
The optional *protocol* argument tells the pickler to use the given The optional *protocol* argument tells the pickler to use the given
protocol; supported protocols are 0, 1, 2, 3 and 4. The default protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default
protocol is 4. It was introduced in Python 3.4, it is incompatible protocol is 4. It was introduced in Python 3.4, and is incompatible
with previous versions. with previous versions.
Specifying a negative protocol version selects the highest protocol Specifying a negative protocol version selects the highest protocol
@ -7662,7 +7663,7 @@ static PyObject *
_pickle_dump_impl(PyObject *module, PyObject *obj, PyObject *file, _pickle_dump_impl(PyObject *module, PyObject *obj, PyObject *file,
PyObject *protocol, int fix_imports, PyObject *protocol, int fix_imports,
PyObject *buffer_callback) PyObject *buffer_callback)
/*[clinic end generated code: output=706186dba996490c input=cfdcaf573ed6e46c]*/ /*[clinic end generated code: output=706186dba996490c input=5ed6653da99cd97c]*/
{ {
PicklerObject *pickler = _Pickler_New(); PicklerObject *pickler = _Pickler_New();
@ -7705,8 +7706,8 @@ _pickle.dumps
Return the pickled representation of the object as a bytes object. Return the pickled representation of the object as a bytes object.
The optional *protocol* argument tells the pickler to use the given The optional *protocol* argument tells the pickler to use the given
protocol; supported protocols are 0, 1, 2, 3 and 4. The default protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default
protocol is 4. It was introduced in Python 3.4, it is incompatible protocol is 4. It was introduced in Python 3.4, and is incompatible
with previous versions. with previous versions.
Specifying a negative protocol version selects the highest protocol Specifying a negative protocol version selects the highest protocol
@ -7726,7 +7727,7 @@ into *file* as part of the pickle stream. It is an error if
static PyObject * static PyObject *
_pickle_dumps_impl(PyObject *module, PyObject *obj, PyObject *protocol, _pickle_dumps_impl(PyObject *module, PyObject *obj, PyObject *protocol,
int fix_imports, PyObject *buffer_callback) int fix_imports, PyObject *buffer_callback)
/*[clinic end generated code: output=fbab0093a5580fdf input=9f334d535ff7194f]*/ /*[clinic end generated code: output=fbab0093a5580fdf input=e543272436c6f987]*/
{ {
PyObject *result; PyObject *result;
PicklerObject *pickler = _Pickler_New(); PicklerObject *pickler = _Pickler_New();

View file

@ -69,8 +69,9 @@ PyDoc_STRVAR(_pickle_Pickler___init____doc__,
"This takes a binary file for writing a pickle data stream.\n" "This takes a binary file for writing a pickle data stream.\n"
"\n" "\n"
"The optional *protocol* argument tells the pickler to use the given\n" "The optional *protocol* argument tells the pickler to use the given\n"
"protocol; supported protocols are 0, 1, 2, 3 and 4. The default\n" "protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default\n"
"protocol is 3; a backward-incompatible protocol designed for Python 3.\n" "protocol is 4. It was introduced in Python 3.4, and is incompatible\n"
"with previous versions.\n"
"\n" "\n"
"Specifying a negative protocol version selects the highest protocol\n" "Specifying a negative protocol version selects the highest protocol\n"
"version supported. The higher the protocol used, the more recent the\n" "version supported. The higher the protocol used, the more recent the\n"
@ -463,8 +464,8 @@ PyDoc_STRVAR(_pickle_dump__doc__,
"be more efficient.\n" "be more efficient.\n"
"\n" "\n"
"The optional *protocol* argument tells the pickler to use the given\n" "The optional *protocol* argument tells the pickler to use the given\n"
"protocol; supported protocols are 0, 1, 2, 3 and 4. The default\n" "protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default\n"
"protocol is 4. It was introduced in Python 3.4, it is incompatible\n" "protocol is 4. It was introduced in Python 3.4, and is incompatible\n"
"with previous versions.\n" "with previous versions.\n"
"\n" "\n"
"Specifying a negative protocol version selects the highest protocol\n" "Specifying a negative protocol version selects the highest protocol\n"
@ -550,8 +551,8 @@ PyDoc_STRVAR(_pickle_dumps__doc__,
"Return the pickled representation of the object as a bytes object.\n" "Return the pickled representation of the object as a bytes object.\n"
"\n" "\n"
"The optional *protocol* argument tells the pickler to use the given\n" "The optional *protocol* argument tells the pickler to use the given\n"
"protocol; supported protocols are 0, 1, 2, 3 and 4. The default\n" "protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default\n"
"protocol is 4. It was introduced in Python 3.4, it is incompatible\n" "protocol is 4. It was introduced in Python 3.4, and is incompatible\n"
"with previous versions.\n" "with previous versions.\n"
"\n" "\n"
"Specifying a negative protocol version selects the highest protocol\n" "Specifying a negative protocol version selects the highest protocol\n"
@ -835,4 +836,4 @@ skip_optional_kwonly:
exit: exit:
return return_value; return return_value;
} }
/*[clinic end generated code: output=de075ec48d4ee0e1 input=a9049054013a1b77]*/ /*[clinic end generated code: output=e2506823be1960c5 input=a9049054013a1b77]*/