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]

Reply via email to