Issue #15610: The PyImport_ImportModuleEx macro now calls
PyImport_ImportModuleLevel() with a 'level' of 0 instead of -1 as the latter is no longer a valid value. Also added a versionchanged note for PyImport_ImportModuleLevel() just in case people don't make the connection between changes to __import__() and this C function.
This commit is contained in:
parent
f410ce8c09
commit
522267e784
|
@ -44,8 +44,7 @@ Importing Modules
|
||||||
.. index:: builtin: __import__
|
.. index:: builtin: __import__
|
||||||
|
|
||||||
Import a module. This is best described by referring to the built-in Python
|
Import a module. This is best described by referring to the built-in Python
|
||||||
function :func:`__import__`, as the standard :func:`__import__` function calls
|
function :func:`__import__`.
|
||||||
this function directly.
|
|
||||||
|
|
||||||
The return value is a new reference to the imported module or top-level
|
The return value is a new reference to the imported module or top-level
|
||||||
package, or *NULL* with an exception set on failure. Like for
|
package, or *NULL* with an exception set on failure. Like for
|
||||||
|
@ -76,6 +75,9 @@ Importing Modules
|
||||||
Similar to :c:func:`PyImport_ImportModuleLevelObject`, but the name is an
|
Similar to :c:func:`PyImport_ImportModuleLevelObject`, but the name is an
|
||||||
UTF-8 encoded string instead of a Unicode object.
|
UTF-8 encoded string instead of a Unicode object.
|
||||||
|
|
||||||
|
.. versionchanged:: 3.3
|
||||||
|
Negative values for **level** are no longer accepted.
|
||||||
|
|
||||||
.. c:function:: PyObject* PyImport_Import(PyObject *name)
|
.. c:function:: PyObject* PyImport_Import(PyObject *name)
|
||||||
|
|
||||||
This is a higher-level interface that calls the current "import hook
|
This is a higher-level interface that calls the current "import hook
|
||||||
|
|
|
@ -1880,6 +1880,11 @@ Porting C code
|
||||||
|
|
||||||
* :c:func:`PyImport_GetMagicNumber` now returns -1 upon failure.
|
* :c:func:`PyImport_GetMagicNumber` now returns -1 upon failure.
|
||||||
|
|
||||||
|
* As a negative value for the **level** argument to :func:`__import__` is no
|
||||||
|
longer valid, the same now holds for :c:func:`PyImport_ImportModuleLevel`.
|
||||||
|
This also means that the value of **level** used by
|
||||||
|
:c:func:`PyImport_ImportModuleEx` is now 0 instead of -1.
|
||||||
|
|
||||||
|
|
||||||
Building C extensions
|
Building C extensions
|
||||||
---------------------
|
---------------------
|
||||||
|
|
|
@ -62,7 +62,7 @@ PyAPI_FUNC(PyObject *) PyImport_ImportModuleLevelObject(
|
||||||
);
|
);
|
||||||
|
|
||||||
#define PyImport_ImportModuleEx(n, g, l, f) \
|
#define PyImport_ImportModuleEx(n, g, l, f) \
|
||||||
PyImport_ImportModuleLevel(n, g, l, f, -1)
|
PyImport_ImportModuleLevel(n, g, l, f, 0)
|
||||||
|
|
||||||
PyAPI_FUNC(PyObject *) PyImport_GetImporter(PyObject *path);
|
PyAPI_FUNC(PyObject *) PyImport_GetImporter(PyObject *path);
|
||||||
PyAPI_FUNC(PyObject *) PyImport_Import(PyObject *name);
|
PyAPI_FUNC(PyObject *) PyImport_Import(PyObject *name);
|
||||||
|
|
|
@ -237,6 +237,9 @@ Library
|
||||||
C API
|
C API
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
- Issue #15610: PyImport_ImportModuleEx() now uses a 'level' of 0 instead of
|
||||||
|
-1.
|
||||||
|
|
||||||
- Issues #15169, #14599: Strip out the C implementation of
|
- Issues #15169, #14599: Strip out the C implementation of
|
||||||
imp.source_from_cache() used by PyImport_ExecCodeModuleWithPathnames() and
|
imp.source_from_cache() used by PyImport_ExecCodeModuleWithPathnames() and
|
||||||
used the Python code instead. Leads to PyImport_ExecCodeModuleObject() to not
|
used the Python code instead. Leads to PyImport_ExecCodeModuleObject() to not
|
||||||
|
|
Loading…
Reference in New Issue