From 3e525d22128cf040b3fd164f52cc6ae20ca58455 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Fri, 9 Jun 2023 10:30:57 +0200 Subject: gh-105396: Deprecate PyImport_ImportModuleNoBlock() function (#105397) Deprecate the PyImport_ImportModuleNoBlock() function which is just an alias to PyImport_ImportModule() since Python 3.3. --- Doc/c-api/import.rst | 3 +++ Doc/whatsnew/3.13.rst | 5 +++++ Include/import.h | 2 +- .../next/C API/2023-06-06-17-43-28.gh-issue-105396.FQJG5B.rst | 3 +++ Python/import.c | 6 ++++++ 5 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 Misc/NEWS.d/next/C API/2023-06-06-17-43-28.gh-issue-105396.FQJG5B.rst diff --git a/Doc/c-api/import.rst b/Doc/c-api/import.rst index 79843ba..6db2023 100644 --- a/Doc/c-api/import.rst +++ b/Doc/c-api/import.rst @@ -38,6 +38,9 @@ Importing Modules to per-module locks for most purposes, so this function's special behaviour isn't needed anymore. + .. deprecated-removed:: 3.13 3.15 + Use :c:func:`PyImport_ImportModule` instead. + .. c:function:: PyObject* PyImport_ImportModuleEx(const char *name, PyObject *globals, PyObject *locals, PyObject *fromlist) diff --git a/Doc/whatsnew/3.13.rst b/Doc/whatsnew/3.13.rst index 502cafd..4849ed7 100644 --- a/Doc/whatsnew/3.13.rst +++ b/Doc/whatsnew/3.13.rst @@ -407,6 +407,11 @@ Deprecated (Contributed by Victor Stinner in :gh:`105145`.) +* Deprecate the :c:func:`PyImport_ImportModuleNoBlock` function which is just + an alias to :c:func:`PyImport_ImportModule` since Python 3.3. + Scheduled for removal in Python 3.15. + (Contributed by Victor Stinner in :gh:`105396`.) + Removed ------- diff --git a/Include/import.h b/Include/import.h index 5d5f342..6c63744 100644 --- a/Include/import.h +++ b/Include/import.h @@ -46,7 +46,7 @@ PyAPI_FUNC(PyObject *) PyImport_AddModule( PyAPI_FUNC(PyObject *) PyImport_ImportModule( const char *name /* UTF-8 encoded string */ ); -PyAPI_FUNC(PyObject *) PyImport_ImportModuleNoBlock( +Py_DEPRECATED(3.13) PyAPI_FUNC(PyObject *) PyImport_ImportModuleNoBlock( const char *name /* UTF-8 encoded string */ ); PyAPI_FUNC(PyObject *) PyImport_ImportModuleLevel( diff --git a/Misc/NEWS.d/next/C API/2023-06-06-17-43-28.gh-issue-105396.FQJG5B.rst b/Misc/NEWS.d/next/C API/2023-06-06-17-43-28.gh-issue-105396.FQJG5B.rst new file mode 100644 index 0000000..cf82f62 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2023-06-06-17-43-28.gh-issue-105396.FQJG5B.rst @@ -0,0 +1,3 @@ +Deprecate the :c:func:`PyImport_ImportModuleNoBlock` function which is just +an alias to :c:func:`PyImport_ImportModule` since Python 3.3. Patch by +Victor Stinner. diff --git a/Python/import.c b/Python/import.c index 7f04b1a..71cce8e 100644 --- a/Python/import.c +++ b/Python/import.c @@ -2439,6 +2439,12 @@ PyImport_ImportModule(const char *name) PyObject * PyImport_ImportModuleNoBlock(const char *name) { + if (PyErr_WarnEx(PyExc_DeprecationWarning, + "PyImport_ImportModuleNoBlock() is deprecated and scheduled for " + "removal in Python 3.15. Use PyImport_ImportModule() instead.", 1)) + { + return NULL; + } return PyImport_ImportModule(name); } -- cgit v0.12