Skip to content

Commit

Permalink
gh-105396: Deprecate PyImport_ImportModuleNoBlock() function (#105397)
Browse files Browse the repository at this point in the history
Deprecate the PyImport_ImportModuleNoBlock() function which is just
an alias to PyImport_ImportModule() since Python 3.3.
  • Loading branch information
vstinner committed Jun 9, 2023
1 parent a5f23d4 commit 3e525d2
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 1 deletion.
3 changes: 3 additions & 0 deletions Doc/c-api/import.rst
Expand Up @@ -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)
Expand Down
5 changes: 5 additions & 0 deletions Doc/whatsnew/3.13.rst
Expand Up @@ -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
-------

Expand Down
2 changes: 1 addition & 1 deletion Include/import.h
Expand Up @@ -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(
Expand Down
@@ -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.
6 changes: 6 additions & 0 deletions Python/import.c
Expand Up @@ -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);
}

Expand Down

0 comments on commit 3e525d2

Please sign in to comment.