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)
(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
-------
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(
--- /dev/null
+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.
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);
}