summaryrefslogtreecommitdiffstats
path: root/Modules/_io/clinic
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2023-05-05 23:53:55 (GMT)
committerGitHub <noreply@github.com>2023-05-05 23:53:55 (GMT)
commitc84029179c3287f9c357ccac231fe78469c6f068 (patch)
tree4b30494f97bc9d71bb6381753e96441cbefc9dce /Modules/_io/clinic
parent8b7f37dd4c297138e9f4a256ff6750cf1402b421 (diff)
downloadcpython-c84029179c3287f9c357ccac231fe78469c6f068.zip
cpython-c84029179c3287f9c357ccac231fe78469c6f068.tar.gz
cpython-c84029179c3287f9c357ccac231fe78469c6f068.tar.bz2
gh-101819: Prepare to modernize the _io extension (#104178)
* Add references to static types to _PyIO_State: * PyBufferedIOBase_Type * PyBytesIOBuffer_Type * PyIncrementalNewlineDecoder_Type * PyRawIOBase_Type * PyTextIOBase_Type * Add the defining class to methods: * _io.BytesIO.getbuffer() * _io.FileIO.close() * Add get_io_state_by_cls() function. * Add state parameter to _textiowrapper_decode() * _io_TextIOWrapper___init__() now sets self->state before calling _textiowrapper_set_decoder(). Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
Diffstat (limited to 'Modules/_io/clinic')
-rw-r--r--Modules/_io/clinic/bytesio.c.h14
-rw-r--r--Modules/_io/clinic/fileio.c.h14
2 files changed, 18 insertions, 10 deletions
diff --git a/Modules/_io/clinic/bytesio.c.h b/Modules/_io/clinic/bytesio.c.h
index 84b58db..9550c87 100644
--- a/Modules/_io/clinic/bytesio.c.h
+++ b/Modules/_io/clinic/bytesio.c.h
@@ -87,15 +87,19 @@ PyDoc_STRVAR(_io_BytesIO_getbuffer__doc__,
"Get a read-write view over the contents of the BytesIO object.");
#define _IO_BYTESIO_GETBUFFER_METHODDEF \
- {"getbuffer", (PyCFunction)_io_BytesIO_getbuffer, METH_NOARGS, _io_BytesIO_getbuffer__doc__},
+ {"getbuffer", _PyCFunction_CAST(_io_BytesIO_getbuffer), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, _io_BytesIO_getbuffer__doc__},
static PyObject *
-_io_BytesIO_getbuffer_impl(bytesio *self);
+_io_BytesIO_getbuffer_impl(bytesio *self, PyTypeObject *cls);
static PyObject *
-_io_BytesIO_getbuffer(bytesio *self, PyObject *Py_UNUSED(ignored))
+_io_BytesIO_getbuffer(bytesio *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
- return _io_BytesIO_getbuffer_impl(self);
+ if (nargs) {
+ PyErr_SetString(PyExc_TypeError, "getbuffer() takes no arguments");
+ return NULL;
+ }
+ return _io_BytesIO_getbuffer_impl(self, cls);
}
PyDoc_STRVAR(_io_BytesIO_getvalue__doc__,
@@ -534,4 +538,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=a44770efbaeb80dd input=a9049054013a1b77]*/
+/*[clinic end generated code: output=098584d485420b65 input=a9049054013a1b77]*/
diff --git a/Modules/_io/clinic/fileio.c.h b/Modules/_io/clinic/fileio.c.h
index b6e9bd5..dfad8a5 100644
--- a/Modules/_io/clinic/fileio.c.h
+++ b/Modules/_io/clinic/fileio.c.h
@@ -18,15 +18,19 @@ PyDoc_STRVAR(_io_FileIO_close__doc__,
"called more than once without error.");
#define _IO_FILEIO_CLOSE_METHODDEF \
- {"close", (PyCFunction)_io_FileIO_close, METH_NOARGS, _io_FileIO_close__doc__},
+ {"close", _PyCFunction_CAST(_io_FileIO_close), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, _io_FileIO_close__doc__},
static PyObject *
-_io_FileIO_close_impl(fileio *self);
+_io_FileIO_close_impl(fileio *self, PyTypeObject *cls);
static PyObject *
-_io_FileIO_close(fileio *self, PyObject *Py_UNUSED(ignored))
+_io_FileIO_close(fileio *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
{
- return _io_FileIO_close_impl(self);
+ if (nargs) {
+ PyErr_SetString(PyExc_TypeError, "close() takes no arguments");
+ return NULL;
+ }
+ return _io_FileIO_close_impl(self, cls);
}
PyDoc_STRVAR(_io_FileIO___init____doc__,
@@ -466,4 +470,4 @@ _io_FileIO_isatty(fileio *self, PyObject *Py_UNUSED(ignored))
#ifndef _IO_FILEIO_TRUNCATE_METHODDEF
#define _IO_FILEIO_TRUNCATE_METHODDEF
#endif /* !defined(_IO_FILEIO_TRUNCATE_METHODDEF) */
-/*[clinic end generated code: output=27f883807a6c29ae input=a9049054013a1b77]*/
+/*[clinic end generated code: output=29ed2ae6c451c139 input=a9049054013a1b77]*/