mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
gh-122559: Synchronize C and Python implementation of the io module about pickling (GH-122628)
In the C implementation, remove __reduce__ and __reduce_ex__ methods that always raise TypeError and restore __getstate__ methods that always raise TypeErrori. This restores fine details of the pre-3.12 behavior and unifies both implementations.
This commit is contained in:
parent
a247dd300e
commit
e9253ebf74
5 changed files with 55 additions and 10 deletions
|
@ -2555,8 +2555,7 @@ static PyMethodDef bufferedreader_methods[] = {
|
|||
_IO__BUFFERED_TRUNCATE_METHODDEF
|
||||
_IO__BUFFERED___SIZEOF___METHODDEF
|
||||
|
||||
{"__reduce__", _PyIOBase_cannot_pickle, METH_NOARGS},
|
||||
{"__reduce_ex__", _PyIOBase_cannot_pickle, METH_O},
|
||||
{"__getstate__", _PyIOBase_cannot_pickle, METH_NOARGS},
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
|
@ -2615,8 +2614,7 @@ static PyMethodDef bufferedwriter_methods[] = {
|
|||
_IO__BUFFERED_TELL_METHODDEF
|
||||
_IO__BUFFERED___SIZEOF___METHODDEF
|
||||
|
||||
{"__reduce__", _PyIOBase_cannot_pickle, METH_NOARGS},
|
||||
{"__reduce_ex__", _PyIOBase_cannot_pickle, METH_O},
|
||||
{"__getstate__", _PyIOBase_cannot_pickle, METH_NOARGS},
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
|
@ -2733,8 +2731,7 @@ static PyMethodDef bufferedrandom_methods[] = {
|
|||
_IO_BUFFEREDWRITER_WRITE_METHODDEF
|
||||
_IO__BUFFERED___SIZEOF___METHODDEF
|
||||
|
||||
{"__reduce__", _PyIOBase_cannot_pickle, METH_NOARGS},
|
||||
{"__reduce_ex__", _PyIOBase_cannot_pickle, METH_O},
|
||||
{"__getstate__", _PyIOBase_cannot_pickle, METH_NOARGS},
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
|
|
|
@ -1262,8 +1262,7 @@ static PyMethodDef fileio_methods[] = {
|
|||
_IO_FILEIO_ISATTY_METHODDEF
|
||||
{"_isatty_open_only", _io_FileIO_isatty_open_only, METH_NOARGS},
|
||||
{"_dealloc_warn", fileio_dealloc_warn, METH_O, NULL},
|
||||
{"__reduce__", _PyIOBase_cannot_pickle, METH_NOARGS},
|
||||
{"__reduce_ex__", _PyIOBase_cannot_pickle, METH_O},
|
||||
{"__getstate__", _PyIOBase_cannot_pickle, METH_NOARGS},
|
||||
{NULL, NULL} /* sentinel */
|
||||
};
|
||||
|
||||
|
|
|
@ -3366,8 +3366,7 @@ static PyMethodDef textiowrapper_methods[] = {
|
|||
_IO_TEXTIOWRAPPER_TELL_METHODDEF
|
||||
_IO_TEXTIOWRAPPER_TRUNCATE_METHODDEF
|
||||
|
||||
{"__reduce__", _PyIOBase_cannot_pickle, METH_NOARGS},
|
||||
{"__reduce_ex__", _PyIOBase_cannot_pickle, METH_O},
|
||||
{"__getstate__", _PyIOBase_cannot_pickle, METH_NOARGS},
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue