https://github.com/python/cpython/commit/507896d97dcff2d7999efa264b29d9003c525c49
commit: 507896d97dcff2d7999efa264b29d9003c525c49
branch: main
author: Victor Stinner <[email protected]>
committer: vstinner <[email protected]>
date: 2024-03-25T16:32:20Z
summary:
gh-116936: Add PyType_GetModuleByDef() to the limited C API (#116937)
files:
A Misc/NEWS.d/next/C API/2024-03-17-22-42-21.gh-issue-116936.tNrzfm.rst
M Doc/data/stable_abi.dat
M Doc/whatsnew/3.13.rst
M Include/cpython/object.h
M Include/object.h
M Lib/test/test_stable_abi_ctypes.py
M Misc/stable_abi.toml
M PC/python3dll.c
diff --git a/Doc/data/stable_abi.dat b/Doc/data/stable_abi.dat
index 565f134290802a..2763bea5137cc7 100644
--- a/Doc/data/stable_abi.dat
+++ b/Doc/data/stable_abi.dat
@@ -679,6 +679,7 @@ function,PyType_GenericNew,3.2,,
function,PyType_GetFlags,3.2,,
function,PyType_GetFullyQualifiedName,3.13,,
function,PyType_GetModule,3.10,,
+function,PyType_GetModuleByDef,3.13,,
function,PyType_GetModuleName,3.13,,
function,PyType_GetModuleState,3.10,,
function,PyType_GetName,3.11,,
diff --git a/Doc/whatsnew/3.13.rst b/Doc/whatsnew/3.13.rst
index aba672dcb3f456..e6234bf974ea47 100644
--- a/Doc/whatsnew/3.13.rst
+++ b/Doc/whatsnew/3.13.rst
@@ -1742,6 +1742,9 @@ New Features
:term:`strong reference` to the constant zero.
(Contributed by Victor Stinner in :gh:`115754`.)
+* Add :c:func:`PyType_GetModuleByDef` to the limited C API
+ (Contributed by Victor Stinner in :gh:`116936`.)
+
Porting to Python 3.13
----------------------
diff --git a/Include/cpython/object.h b/Include/cpython/object.h
index 7512bb70c760fd..b64db1ba9a6dd2 100644
--- a/Include/cpython/object.h
+++ b/Include/cpython/object.h
@@ -275,7 +275,6 @@ typedef struct _heaptypeobject {
PyAPI_FUNC(const char *) _PyType_Name(PyTypeObject *);
PyAPI_FUNC(PyObject *) _PyType_Lookup(PyTypeObject *, PyObject *);
-PyAPI_FUNC(PyObject *) PyType_GetModuleByDef(PyTypeObject *, PyModuleDef *);
PyAPI_FUNC(PyObject *) PyType_GetDict(PyTypeObject *);
PyAPI_FUNC(int) PyObject_Print(PyObject *, FILE *, int);
diff --git a/Include/object.h b/Include/object.h
index 67a5e514c421c3..96790844a7b9f0 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -1247,6 +1247,10 @@ static inline int PyType_CheckExact(PyObject *op) {
# define PyType_CheckExact(op) PyType_CheckExact(_PyObject_CAST(op))
#endif
+#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000
+PyAPI_FUNC(PyObject *) PyType_GetModuleByDef(PyTypeObject *, PyModuleDef *);
+#endif
+
#ifdef __cplusplus
}
#endif
diff --git a/Lib/test/test_stable_abi_ctypes.py
b/Lib/test/test_stable_abi_ctypes.py
index 0e304853d399aa..d0e4f3c71c15e0 100644
--- a/Lib/test/test_stable_abi_ctypes.py
+++ b/Lib/test/test_stable_abi_ctypes.py
@@ -708,6 +708,7 @@ def test_windows_feature_macros(self):
"PyType_GetFlags",
"PyType_GetFullyQualifiedName",
"PyType_GetModule",
+ "PyType_GetModuleByDef",
"PyType_GetModuleName",
"PyType_GetModuleState",
"PyType_GetName",
diff --git a/Misc/NEWS.d/next/C
API/2024-03-17-22-42-21.gh-issue-116936.tNrzfm.rst b/Misc/NEWS.d/next/C
API/2024-03-17-22-42-21.gh-issue-116936.tNrzfm.rst
new file mode 100644
index 00000000000000..bd2abc94082a5a
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2024-03-17-22-42-21.gh-issue-116936.tNrzfm.rst
@@ -0,0 +1,2 @@
+Add :c:func:`PyType_GetModuleByDef` to the limited C API. Patch by Victor
+Stinner.
diff --git a/Misc/stable_abi.toml b/Misc/stable_abi.toml
index 6d6e484b0b6c67..14dda7db1c323e 100644
--- a/Misc/stable_abi.toml
+++ b/Misc/stable_abi.toml
@@ -2504,3 +2504,5 @@
added = '3.13'
[function.Py_GetConstantBorrowed]
added = '3.13'
+[function.PyType_GetModuleByDef]
+ added = '3.13'
diff --git a/PC/python3dll.c b/PC/python3dll.c
index 147bfad44c3741..c6fdc0bd73b9fe 100755
--- a/PC/python3dll.c
+++ b/PC/python3dll.c
@@ -641,6 +641,7 @@ EXPORT_FUNC(PyType_GenericNew)
EXPORT_FUNC(PyType_GetFlags)
EXPORT_FUNC(PyType_GetFullyQualifiedName)
EXPORT_FUNC(PyType_GetModule)
+EXPORT_FUNC(PyType_GetModuleByDef)
EXPORT_FUNC(PyType_GetModuleName)
EXPORT_FUNC(PyType_GetModuleState)
EXPORT_FUNC(PyType_GetName)
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]