summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Include/cpython/ceval.h4
-rw-r--r--Include/internal/pycore_ceval.h8
-rw-r--r--Misc/NEWS.d/next/C API/2022-03-21-00-41-29.bpo-46850.rOt771.rst9
-rw-r--r--Python/sysmodule.c2
4 files changed, 18 insertions, 5 deletions
diff --git a/Include/cpython/ceval.h b/Include/cpython/ceval.h
index 5a904bd..47c86f9 100644
--- a/Include/cpython/ceval.h
+++ b/Include/cpython/ceval.h
@@ -9,10 +9,6 @@ PyAPI_DATA(int) _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyO
PyAPI_FUNC(void) PyEval_SetTrace(Py_tracefunc, PyObject *);
PyAPI_FUNC(int) _PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg);
PyAPI_FUNC(int) _PyEval_GetCoroutineOriginTrackingDepth(void);
-PyAPI_FUNC(int) _PyEval_SetAsyncGenFirstiter(PyObject *);
-PyAPI_FUNC(PyObject *) _PyEval_GetAsyncGenFirstiter(void);
-PyAPI_FUNC(int) _PyEval_SetAsyncGenFinalizer(PyObject *);
-PyAPI_FUNC(PyObject *) _PyEval_GetAsyncGenFinalizer(void);
/* Helper to look up a builtin object */
PyAPI_FUNC(PyObject *) _PyEval_GetBuiltin(PyObject *);
diff --git a/Include/internal/pycore_ceval.h b/Include/internal/pycore_ceval.h
index 70178e3..3efd13d 100644
--- a/Include/internal/pycore_ceval.h
+++ b/Include/internal/pycore_ceval.h
@@ -37,6 +37,14 @@ PyAPI_FUNC(void) _PyEval_SetCoroutineOriginTrackingDepth(
PyThreadState *tstate,
int new_depth);
+// Used by sys.get_asyncgen_hooks()
+extern PyObject* _PyEval_GetAsyncGenFirstiter(void);
+extern PyObject* _PyEval_GetAsyncGenFinalizer(void);
+
+// Used by sys.set_asyncgen_hooks()
+extern int _PyEval_SetAsyncGenFirstiter(PyObject *);
+extern int _PyEval_SetAsyncGenFinalizer(PyObject *);
+
void _PyEval_Fini(void);
diff --git a/Misc/NEWS.d/next/C API/2022-03-21-00-41-29.bpo-46850.rOt771.rst b/Misc/NEWS.d/next/C API/2022-03-21-00-41-29.bpo-46850.rOt771.rst
new file mode 100644
index 0000000..b3740ae
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2022-03-21-00-41-29.bpo-46850.rOt771.rst
@@ -0,0 +1,9 @@
+Remove the following private undocumented functions from the C API:
+
+* ``_PyEval_GetAsyncGenFirstiter()``
+* ``_PyEval_GetAsyncGenFinalizer()``
+* ``_PyEval_SetAsyncGenFirstiter()``
+* ``_PyEval_SetAsyncGenFinalizer()``
+
+Call the public :func:`sys.get_asyncgen_hooks` and
+:func:`sys.set_asyncgen_hooks` functions instead. Patch by Victor Stinner.
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index 99540b0..ae6d7c2 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -16,7 +16,7 @@ Data members:
#include "Python.h"
#include "pycore_call.h" // _PyObject_CallNoArgs()
-#include "pycore_ceval.h" // _Py_RecursionLimitLowerWaterMark()
+#include "pycore_ceval.h" // _PyEval_SetAsyncGenFinalizer()
#include "pycore_code.h" // _Py_QuickenedCount
#include "pycore_frame.h" // _PyInterpreterFrame
#include "pycore_initconfig.h" // _PyStatus_EXCEPTION()