mirror of
https://github.com/python/cpython.git
synced 2025-08-02 16:13:13 +00:00
bpo-36710: Remove PyImport_Cleanup() function (GH-14221)
* Rename PyImport_Cleanup() to _PyImport_Cleanup() and move it to the internal C API. Add 'tstate' parameters. * Remove documentation of _PyImport_Init(), PyImport_Cleanup(), _PyImport_Fini(). All three were documented as "For internal use only.".
This commit is contained in:
parent
7821b4c6d2
commit
987a0dcfa1
6 changed files with 7 additions and 20 deletions
|
@ -223,21 +223,6 @@ Importing Modules
|
||||||
Return a new reference to the finder object.
|
Return a new reference to the finder object.
|
||||||
|
|
||||||
|
|
||||||
.. c:function:: void _PyImport_Init()
|
|
||||||
|
|
||||||
Initialize the import mechanism. For internal use only.
|
|
||||||
|
|
||||||
|
|
||||||
.. c:function:: void PyImport_Cleanup()
|
|
||||||
|
|
||||||
Empty the module table. For internal use only.
|
|
||||||
|
|
||||||
|
|
||||||
.. c:function:: void _PyImport_Fini()
|
|
||||||
|
|
||||||
Finalize the import mechanism. For internal use only.
|
|
||||||
|
|
||||||
|
|
||||||
.. c:function:: int PyImport_ImportFrozenModuleObject(PyObject *name)
|
.. c:function:: int PyImport_ImportFrozenModuleObject(PyObject *name)
|
||||||
|
|
||||||
Load a frozen module named *name*. Return ``1`` for success, ``0`` if the
|
Load a frozen module named *name*. Return ``1`` for success, ``0`` if the
|
||||||
|
|
|
@ -122,6 +122,9 @@ Deprecated
|
||||||
Removed
|
Removed
|
||||||
=======
|
=======
|
||||||
|
|
||||||
|
* The C function ``PyImport_Cleanup()`` has been removed. It was documented as:
|
||||||
|
"Empty the module table. For internal use only."
|
||||||
|
|
||||||
* ``_dummy_thread`` and ``dummy_threading`` modules have been removed. These
|
* ``_dummy_thread`` and ``dummy_threading`` modules have been removed. These
|
||||||
modules were deprecated since Python 3.7 which requires threading support.
|
modules were deprecated since Python 3.7 which requires threading support.
|
||||||
(Contributed by Victor Stinner in :issue:`37312`.)
|
(Contributed by Victor Stinner in :issue:`37312`.)
|
||||||
|
|
|
@ -72,7 +72,6 @@ PyAPI_FUNC(PyObject *) PyImport_ImportModuleLevelObject(
|
||||||
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);
|
||||||
PyAPI_FUNC(PyObject *) PyImport_ReloadModule(PyObject *m);
|
PyAPI_FUNC(PyObject *) PyImport_ReloadModule(PyObject *m);
|
||||||
PyAPI_FUNC(void) PyImport_Cleanup(void);
|
|
||||||
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
|
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
|
||||||
PyAPI_FUNC(int) PyImport_ImportFrozenModuleObject(
|
PyAPI_FUNC(int) PyImport_ImportFrozenModuleObject(
|
||||||
PyObject *name
|
PyObject *name
|
||||||
|
|
|
@ -11,6 +11,7 @@ PyAPI_FUNC(PyObject *) _PyImport_FindBuiltin(
|
||||||
);
|
);
|
||||||
|
|
||||||
extern void _PyImport_ReInitLock(void);
|
extern void _PyImport_ReInitLock(void);
|
||||||
|
extern void _PyImport_Cleanup(PyThreadState *tstate);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -413,9 +413,8 @@ static const char * const sys_files[] = {
|
||||||
/* Un-initialize things, as good as we can */
|
/* Un-initialize things, as good as we can */
|
||||||
|
|
||||||
void
|
void
|
||||||
PyImport_Cleanup(void)
|
_PyImport_Cleanup(PyThreadState *tstate)
|
||||||
{
|
{
|
||||||
PyThreadState *tstate = _PyThreadState_GET();
|
|
||||||
PyInterpreterState *interp = tstate->interp;
|
PyInterpreterState *interp = tstate->interp;
|
||||||
PyObject *modules = interp->modules;
|
PyObject *modules = interp->modules;
|
||||||
if (modules == NULL) {
|
if (modules == NULL) {
|
||||||
|
|
|
@ -1225,7 +1225,7 @@ Py_FinalizeEx(void)
|
||||||
_PySys_ClearAuditHooks();
|
_PySys_ClearAuditHooks();
|
||||||
|
|
||||||
/* Destroy all modules */
|
/* Destroy all modules */
|
||||||
PyImport_Cleanup();
|
_PyImport_Cleanup(tstate);
|
||||||
|
|
||||||
/* Print debug stats if any */
|
/* Print debug stats if any */
|
||||||
_PyEval_Fini();
|
_PyEval_Fini();
|
||||||
|
@ -1589,7 +1589,7 @@ Py_EndInterpreter(PyThreadState *tstate)
|
||||||
if (tstate != interp->tstate_head || tstate->next != NULL)
|
if (tstate != interp->tstate_head || tstate->next != NULL)
|
||||||
Py_FatalError("Py_EndInterpreter: not the last thread");
|
Py_FatalError("Py_EndInterpreter: not the last thread");
|
||||||
|
|
||||||
PyImport_Cleanup();
|
_PyImport_Cleanup(tstate);
|
||||||
PyInterpreterState_Clear(interp);
|
PyInterpreterState_Clear(interp);
|
||||||
PyThreadState_Swap(NULL);
|
PyThreadState_Swap(NULL);
|
||||||
PyInterpreterState_Delete(interp);
|
PyInterpreterState_Delete(interp);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue