summaryrefslogtreecommitdiffstats
path: root/Modules/_io
diff options
context:
space:
mode:
authorDonghee Na <donghee.na@python.org>2023-11-30 10:40:53 (GMT)
committerGitHub <noreply@github.com>2023-11-30 10:40:53 (GMT)
commit7eeea13403882af63a71226433c9a13b80c22564 (patch)
tree976e1a1589211c9731fc6fec94934d415991837a /Modules/_io
parent0785c685599aaa052f85d6163872bdecb9c66486 (diff)
downloadcpython-7eeea13403882af63a71226433c9a13b80c22564.zip
cpython-7eeea13403882af63a71226433c9a13b80c22564.tar.gz
cpython-7eeea13403882af63a71226433c9a13b80c22564.tar.bz2
gh-112205: Support @getter annotation from AC (gh-112396)
Diffstat (limited to 'Modules/_io')
-rw-r--r--Modules/_io/bufferedio.c81
-rw-r--r--Modules/_io/clinic/bufferedio.c.h56
2 files changed, 88 insertions, 49 deletions
diff --git a/Modules/_io/bufferedio.c b/Modules/_io/bufferedio.c
index 4f37866..6796268 100644
--- a/Modules/_io/bufferedio.c
+++ b/Modules/_io/bufferedio.c
@@ -10,7 +10,6 @@
#include "Python.h"
#include "pycore_bytesobject.h" // _PyBytes_Join()
#include "pycore_call.h" // _PyObject_CallNoArgs()
-#include "pycore_critical_section.h" // Py_BEGIN_CRITICAL_SECTION()
#include "pycore_object.h" // _PyObject_GC_UNTRACK()
#include "pycore_pyerrors.h" // _Py_FatalErrorFormat()
#include "pycore_pylifecycle.h" // _Py_IsInterpreterFinalizing()
@@ -518,25 +517,20 @@ buffered_closed(buffered *self)
return closed;
}
+/*[clinic input]
+@critical_section
+@getter
+_io._Buffered.closed
+[clinic start generated code]*/
+
static PyObject *
-buffered_closed_get_impl(buffered *self, void *context)
+_io__Buffered_closed_get_impl(buffered *self)
+/*[clinic end generated code: output=f08ce57290703a1a input=18eddefdfe4a3d2f]*/
{
CHECK_INITIALIZED(self)
return PyObject_GetAttr(self->raw, &_Py_ID(closed));
}
-static PyObject *
-buffered_closed_get(buffered *self, void *context)
-{
- PyObject *return_value = NULL;
-
- Py_BEGIN_CRITICAL_SECTION(self);
- return_value = buffered_closed_get_impl(self, context);
- Py_END_CRITICAL_SECTION();
-
- return return_value;
-}
-
/*[clinic input]
@critical_section
_io._Buffered.close
@@ -662,44 +656,35 @@ _io__Buffered_writable_impl(buffered *self)
return PyObject_CallMethodNoArgs(self->raw, &_Py_ID(writable));
}
+
+/*[clinic input]
+@critical_section
+@getter
+_io._Buffered.name
+[clinic start generated code]*/
+
static PyObject *
-buffered_name_get_impl(buffered *self, void *context)
+_io__Buffered_name_get_impl(buffered *self)
+/*[clinic end generated code: output=d2adf384051d3d10 input=6b84a0e6126f545e]*/
{
CHECK_INITIALIZED(self)
return PyObject_GetAttr(self->raw, &_Py_ID(name));
}
-static PyObject *
-buffered_name_get(buffered *self, void *context)
-{
- PyObject *return_value = NULL;
-
- Py_BEGIN_CRITICAL_SECTION(self);
- return_value = buffered_name_get_impl(self, context);
- Py_END_CRITICAL_SECTION();
-
- return return_value;
-}
+/*[clinic input]
+@critical_section
+@getter
+_io._Buffered.mode
+[clinic start generated code]*/
static PyObject *
-buffered_mode_get_impl(buffered *self, void *context)
+_io__Buffered_mode_get_impl(buffered *self)
+/*[clinic end generated code: output=0feb205748892fa4 input=0762d5e28542fd8c]*/
{
CHECK_INITIALIZED(self)
return PyObject_GetAttr(self->raw, &_Py_ID(mode));
}
-static PyObject *
-buffered_mode_get(buffered *self, void *context)
-{
- PyObject *return_value = NULL;
-
- Py_BEGIN_CRITICAL_SECTION(self);
- return_value = buffered_mode_get_impl(self, context);
- Py_END_CRITICAL_SECTION();
-
- return return_value;
-}
-
/* Lower-level APIs */
/*[clinic input]
@@ -2541,9 +2526,9 @@ static PyMemberDef bufferedreader_members[] = {
};
static PyGetSetDef bufferedreader_getset[] = {
- {"closed", (getter)buffered_closed_get, NULL, NULL},
- {"name", (getter)buffered_name_get, NULL, NULL},
- {"mode", (getter)buffered_mode_get, NULL, NULL},
+ _IO__BUFFERED_CLOSED_GETTERDEF
+ _IO__BUFFERED_NAME_GETTERDEF
+ _IO__BUFFERED_MODE_GETTERDEF
{NULL}
};
@@ -2601,9 +2586,9 @@ static PyMemberDef bufferedwriter_members[] = {
};
static PyGetSetDef bufferedwriter_getset[] = {
- {"closed", (getter)buffered_closed_get, NULL, NULL},
- {"name", (getter)buffered_name_get, NULL, NULL},
- {"mode", (getter)buffered_mode_get, NULL, NULL},
+ _IO__BUFFERED_CLOSED_GETTERDEF
+ _IO__BUFFERED_NAME_GETTERDEF
+ _IO__BUFFERED_MODE_GETTERDEF
{NULL}
};
@@ -2719,9 +2704,9 @@ static PyMemberDef bufferedrandom_members[] = {
};
static PyGetSetDef bufferedrandom_getset[] = {
- {"closed", (getter)buffered_closed_get, NULL, NULL},
- {"name", (getter)buffered_name_get, NULL, NULL},
- {"mode", (getter)buffered_mode_get, NULL, NULL},
+ _IO__BUFFERED_CLOSED_GETTERDEF
+ _IO__BUFFERED_NAME_GETTERDEF
+ _IO__BUFFERED_MODE_GETTERDEF
{NULL}
};
diff --git a/Modules/_io/clinic/bufferedio.c.h b/Modules/_io/clinic/bufferedio.c.h
index 20833a1..69d28ad 100644
--- a/Modules/_io/clinic/bufferedio.c.h
+++ b/Modules/_io/clinic/bufferedio.c.h
@@ -327,6 +327,24 @@ _io__Buffered_simple_flush(buffered *self, PyObject *Py_UNUSED(ignored))
return return_value;
}
+#define _IO__BUFFERED_CLOSED_GETTERDEF \
+ {"closed", (getter)_io__Buffered_closed_get, NULL, NULL},
+
+static PyObject *
+_io__Buffered_closed_get_impl(buffered *self);
+
+static PyObject *
+_io__Buffered_closed_get(buffered *self, void *Py_UNUSED(context))
+{
+ PyObject *return_value = NULL;
+
+ Py_BEGIN_CRITICAL_SECTION(self);
+ return_value = _io__Buffered_closed_get_impl(self);
+ Py_END_CRITICAL_SECTION();
+
+ return return_value;
+}
+
PyDoc_STRVAR(_io__Buffered_close__doc__,
"close($self, /)\n"
"--\n"
@@ -442,6 +460,42 @@ _io__Buffered_writable(buffered *self, PyObject *Py_UNUSED(ignored))
return return_value;
}
+#define _IO__BUFFERED_NAME_GETTERDEF \
+ {"name", (getter)_io__Buffered_name_get, NULL, NULL},
+
+static PyObject *
+_io__Buffered_name_get_impl(buffered *self);
+
+static PyObject *
+_io__Buffered_name_get(buffered *self, void *Py_UNUSED(context))
+{
+ PyObject *return_value = NULL;
+
+ Py_BEGIN_CRITICAL_SECTION(self);
+ return_value = _io__Buffered_name_get_impl(self);
+ Py_END_CRITICAL_SECTION();
+
+ return return_value;
+}
+
+#define _IO__BUFFERED_MODE_GETTERDEF \
+ {"mode", (getter)_io__Buffered_mode_get, NULL, NULL},
+
+static PyObject *
+_io__Buffered_mode_get_impl(buffered *self);
+
+static PyObject *
+_io__Buffered_mode_get(buffered *self, void *Py_UNUSED(context))
+{
+ PyObject *return_value = NULL;
+
+ Py_BEGIN_CRITICAL_SECTION(self);
+ return_value = _io__Buffered_mode_get_impl(self);
+ Py_END_CRITICAL_SECTION();
+
+ return return_value;
+}
+
PyDoc_STRVAR(_io__Buffered_fileno__doc__,
"fileno($self, /)\n"
"--\n"
@@ -1164,4 +1218,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=e8ad39a45531d7f2 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=f21ed03255032b43 input=a9049054013a1b77]*/