mirror of
https://github.com/python/cpython.git
synced 2025-12-08 06:10:17 +00:00
gh-141004: Document PyImport_Inittab (GH-141844)
Co-authored-by: Stan Ulbrych <stan@ulbrych.org> Co-authored-by: Victor Stinner <vstinner@python.org>
This commit is contained in:
parent
71126ab19c
commit
5f35702bb6
4 changed files with 11 additions and 4 deletions
|
|
@ -314,6 +314,13 @@ Importing Modules
|
|||
initialization.
|
||||
|
||||
|
||||
.. c:var:: struct _inittab *PyImport_Inittab
|
||||
|
||||
The table of built-in modules used by Python initialization. Do not use this directly;
|
||||
use :c:func:`PyImport_AppendInittab` and :c:func:`PyImport_ExtendInittab`
|
||||
instead.
|
||||
|
||||
|
||||
.. c:function:: PyObject* PyImport_ImportModuleAttr(PyObject *mod_name, PyObject *attr_name)
|
||||
|
||||
Import the module *mod_name* and get its attribute *attr_name*.
|
||||
|
|
|
|||
|
|
@ -426,7 +426,7 @@ A pointer to the module definition must be returned via :c:func:`PyModuleDef_Ini
|
|||
so that the import machinery can create the module and store it in ``sys.modules``.
|
||||
|
||||
When embedding Python, the :c:func:`!PyInit_spam` function is not called
|
||||
automatically unless there's an entry in the :c:data:`!PyImport_Inittab` table.
|
||||
automatically unless there's an entry in the :c:data:`PyImport_Inittab` table.
|
||||
To add the module to the initialization table, use :c:func:`PyImport_AppendInittab`,
|
||||
optionally followed by an import of the module::
|
||||
|
||||
|
|
|
|||
|
|
@ -4931,7 +4931,7 @@ Patch by Gabriele N. Tornetta
|
|||
.. nonce: 3p14JB
|
||||
.. section: C API
|
||||
|
||||
:c:func:`Py_RunMain` now resets :c:data:`!PyImport_Inittab` to its initial
|
||||
:c:func:`Py_RunMain` now resets :c:data:`PyImport_Inittab` to its initial
|
||||
value at exit. It must be possible to call :c:func:`PyImport_AppendInittab`
|
||||
or :c:func:`PyImport_ExtendInittab` at each Python initialization. Patch by
|
||||
Victor Stinner.
|
||||
|
|
|
|||
|
|
@ -35,11 +35,11 @@ Update bundled libexpat to 2.5.0
|
|||
.. nonce: ik4iOv
|
||||
.. section: Core and Builtins
|
||||
|
||||
The docs clearly say that ``PyImport_Inittab``,
|
||||
The docs clearly say that :c:data:`PyImport_Inittab`,
|
||||
:c:func:`PyImport_AppendInittab`, and :c:func:`PyImport_ExtendInittab`
|
||||
should not be used after :c:func:`Py_Initialize` has been called. We now
|
||||
enforce this for the two functions. Additionally, the runtime now uses an
|
||||
internal copy of ``PyImport_Inittab``, to guard against modification.
|
||||
internal copy of :c:data:`PyImport_Inittab`, to guard against modification.
|
||||
|
||||
..
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue