summaryrefslogtreecommitdiffstats
path: root/Modules/clinic/_testclinic_limited.c.h
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2023-08-25 21:22:08 (GMT)
committerGitHub <noreply@github.com>2023-08-25 21:22:08 (GMT)
commit1dd951097728d735d46a602fc43285d35b7b32cb (patch)
tree5becd43c129047a61de332ffb60994a4a2b20fbe /Modules/clinic/_testclinic_limited.c.h
parent4eae1e53425d3a816a26760f28d128a4f05c1da4 (diff)
downloadcpython-1dd951097728d735d46a602fc43285d35b7b32cb.zip
cpython-1dd951097728d735d46a602fc43285d35b7b32cb.tar.gz
cpython-1dd951097728d735d46a602fc43285d35b7b32cb.tar.bz2
gh-108494: Argument Clinic partial supports of Limited C API (#108495)
Argument Clinic now has a partial support of the Limited API: * Add --limited option to clinic.c. * Add '_testclinic_limited' extension which is built with the limited C API version 3.13. * For now, hardcode in clinic.py that "_testclinic_limited.c" targets the limited C API.
Diffstat (limited to 'Modules/clinic/_testclinic_limited.c.h')
-rw-r--r--Modules/clinic/_testclinic_limited.c.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/Modules/clinic/_testclinic_limited.c.h b/Modules/clinic/_testclinic_limited.c.h
new file mode 100644
index 0000000..730e967
--- /dev/null
+++ b/Modules/clinic/_testclinic_limited.c.h
@@ -0,0 +1,53 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(test_empty_function__doc__,
+"test_empty_function($module, /)\n"
+"--\n"
+"\n");
+
+#define TEST_EMPTY_FUNCTION_METHODDEF \
+ {"test_empty_function", (PyCFunction)test_empty_function, METH_NOARGS, test_empty_function__doc__},
+
+static PyObject *
+test_empty_function_impl(PyObject *module);
+
+static PyObject *
+test_empty_function(PyObject *module, PyObject *Py_UNUSED(ignored))
+{
+ return test_empty_function_impl(module);
+}
+
+PyDoc_STRVAR(my_int_func__doc__,
+"my_int_func($module, arg, /)\n"
+"--\n"
+"\n");
+
+#define MY_INT_FUNC_METHODDEF \
+ {"my_int_func", (PyCFunction)my_int_func, METH_O, my_int_func__doc__},
+
+static int
+my_int_func_impl(PyObject *module, int arg);
+
+static PyObject *
+my_int_func(PyObject *module, PyObject *arg_)
+{
+ PyObject *return_value = NULL;
+ int arg;
+ int _return_value;
+
+ arg = PyLong_AsInt(arg_);
+ if (arg == -1 && PyErr_Occurred()) {
+ goto exit;
+ }
+ _return_value = my_int_func_impl(module, arg);
+ if ((_return_value == -1) && PyErr_Occurred()) {
+ goto exit;
+ }
+ return_value = PyLong_FromLong((long)_return_value);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=07e2e8ed6923cd16 input=a9049054013a1b77]*/