mirror of
https://github.com/python/cpython.git
synced 2025-12-09 10:37:17 +00:00
gh-106320: Remove private _PyImport C API functions (#106383)
* Remove private _PyImport C API functions: move them to the internal C API (pycore_import.h). * No longer export most of these private functions. * _testcapi avoids private _PyImport_GetModuleAttrString().
This commit is contained in:
parent
f6d2bb18ab
commit
2e92edbf6d
8 changed files with 46 additions and 22 deletions
|
|
@ -4,23 +4,6 @@
|
||||||
|
|
||||||
PyMODINIT_FUNC PyInit__imp(void);
|
PyMODINIT_FUNC PyInit__imp(void);
|
||||||
|
|
||||||
PyAPI_FUNC(int) _PyImport_IsInitialized(PyInterpreterState *);
|
|
||||||
|
|
||||||
PyAPI_FUNC(PyObject *) _PyImport_GetModuleId(_Py_Identifier *name);
|
|
||||||
PyAPI_FUNC(int) _PyImport_SetModule(PyObject *name, PyObject *module);
|
|
||||||
PyAPI_FUNC(int) _PyImport_SetModuleString(const char *name, PyObject* module);
|
|
||||||
|
|
||||||
PyAPI_FUNC(void) _PyImport_AcquireLock(PyInterpreterState *interp);
|
|
||||||
PyAPI_FUNC(int) _PyImport_ReleaseLock(PyInterpreterState *interp);
|
|
||||||
|
|
||||||
PyAPI_FUNC(int) _PyImport_FixupBuiltin(
|
|
||||||
PyObject *mod,
|
|
||||||
const char *name, /* UTF-8 encoded string */
|
|
||||||
PyObject *modules
|
|
||||||
);
|
|
||||||
PyAPI_FUNC(int) _PyImport_FixupExtensionObject(PyObject*, PyObject *,
|
|
||||||
PyObject *, PyObject *);
|
|
||||||
|
|
||||||
struct _inittab {
|
struct _inittab {
|
||||||
const char *name; /* ASCII encoded string */
|
const char *name; /* ASCII encoded string */
|
||||||
PyObject* (*initfunc)(void);
|
PyObject* (*initfunc)(void);
|
||||||
|
|
@ -41,6 +24,3 @@ struct _frozen {
|
||||||
collection of frozen modules: */
|
collection of frozen modules: */
|
||||||
|
|
||||||
PyAPI_DATA(const struct _frozen *) PyImport_FrozenModules;
|
PyAPI_DATA(const struct _frozen *) PyImport_FrozenModules;
|
||||||
|
|
||||||
PyAPI_DATA(PyObject *) _PyImport_GetModuleAttr(PyObject *, PyObject *);
|
|
||||||
PyAPI_DATA(PyObject *) _PyImport_GetModuleAttrString(const char *, const char *);
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,26 @@ extern "C" {
|
||||||
|
|
||||||
#include "pycore_time.h" // _PyTime_t
|
#include "pycore_time.h" // _PyTime_t
|
||||||
|
|
||||||
|
extern int _PyImport_IsInitialized(PyInterpreterState *);
|
||||||
|
|
||||||
|
PyAPI_FUNC(PyObject *) _PyImport_GetModuleId(_Py_Identifier *name);
|
||||||
|
PyAPI_FUNC(int) _PyImport_SetModule(PyObject *name, PyObject *module);
|
||||||
|
PyAPI_FUNC(int) _PyImport_SetModuleString(const char *name, PyObject* module);
|
||||||
|
|
||||||
|
extern void _PyImport_AcquireLock(PyInterpreterState *interp);
|
||||||
|
extern int _PyImport_ReleaseLock(PyInterpreterState *interp);
|
||||||
|
|
||||||
|
extern int _PyImport_FixupBuiltin(
|
||||||
|
PyObject *mod,
|
||||||
|
const char *name, /* UTF-8 encoded string */
|
||||||
|
PyObject *modules
|
||||||
|
);
|
||||||
|
extern int _PyImport_FixupExtensionObject(PyObject*, PyObject *,
|
||||||
|
PyObject *, PyObject *);
|
||||||
|
|
||||||
|
PyAPI_DATA(PyObject *) _PyImport_GetModuleAttr(PyObject *, PyObject *);
|
||||||
|
PyAPI_DATA(PyObject *) _PyImport_GetModuleAttrString(const char *, const char *);
|
||||||
|
|
||||||
|
|
||||||
struct _import_runtime_state {
|
struct _import_runtime_state {
|
||||||
/* The builtin modules (defined in config.c). */
|
/* The builtin modules (defined in config.c). */
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,12 @@
|
||||||
*--------------------------------------------------------------------
|
*--------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef Py_BUILD_CORE_BUILTIN
|
||||||
|
# define Py_BUILD_CORE_MODULE 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "Python.h"
|
#include "Python.h"
|
||||||
|
#include "pycore_import.h" // _PyImport_GetModuleAttrString()
|
||||||
#include "structmember.h" // PyMemberDef
|
#include "structmember.h" // PyMemberDef
|
||||||
#include "expat.h"
|
#include "expat.h"
|
||||||
#include "pyexpat.h"
|
#include "pyexpat.h"
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@
|
||||||
#include "blob.h"
|
#include "blob.h"
|
||||||
#include "prepare_protocol.h"
|
#include "prepare_protocol.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
#include "pycore_import.h" // _PyImport_GetModuleAttrString()
|
||||||
#include "pycore_weakref.h" // _PyWeakref_IS_DEAD()
|
#include "pycore_weakref.h" // _PyWeakref_IS_DEAD()
|
||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,10 @@
|
||||||
* 3. This notice may not be removed or altered from any source distribution.
|
* 3. This notice may not be removed or altered from any source distribution.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef Py_BUILD_CORE_BUILTIN
|
||||||
|
# define Py_BUILD_CORE_MODULE 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "connection.h"
|
#include "connection.h"
|
||||||
#include "statement.h"
|
#include "statement.h"
|
||||||
#include "cursor.h"
|
#include "cursor.h"
|
||||||
|
|
@ -29,6 +33,8 @@
|
||||||
#include "row.h"
|
#include "row.h"
|
||||||
#include "blob.h"
|
#include "blob.h"
|
||||||
|
|
||||||
|
#include "pycore_import.h" // _PyImport_GetModuleAttrString()
|
||||||
|
|
||||||
#if SQLITE_VERSION_NUMBER < 3015002
|
#if SQLITE_VERSION_NUMBER < 3015002
|
||||||
#error "SQLite 3.15.2 or higher required"
|
#error "SQLite 3.15.2 or higher required"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -1267,9 +1267,15 @@ test_pep3118_obsolete_write_locks(PyObject* self, PyObject *Py_UNUSED(ignored))
|
||||||
if (ret != -1 || match == 0)
|
if (ret != -1 || match == 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
|
PyObject *mod_io = PyImport_ImportModule("_io");
|
||||||
|
if (mod_io == NULL) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* bytesiobuf_getbuffer() */
|
/* bytesiobuf_getbuffer() */
|
||||||
PyTypeObject *type = (PyTypeObject *)_PyImport_GetModuleAttrString(
|
PyTypeObject *type = (PyTypeObject *)PyObject_GetAttrString(
|
||||||
"_io", "_BytesIOBuffer");
|
mod_io, "_BytesIOBuffer");
|
||||||
|
Py_DECREF(mod_io);
|
||||||
if (type == NULL) {
|
if (type == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@
|
||||||
|
|
||||||
#include "Python.h"
|
#include "Python.h"
|
||||||
#include "multibytecodec.h"
|
#include "multibytecodec.h"
|
||||||
|
#include "pycore_import.h" // _PyImport_GetModuleAttrString()
|
||||||
|
|
||||||
|
|
||||||
/* a unicode "undefined" code point */
|
/* a unicode "undefined" code point */
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,9 @@
|
||||||
|
#ifndef Py_BUILD_CORE_BUILTIN
|
||||||
|
# define Py_BUILD_CORE_MODULE 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "Python.h"
|
#include "Python.h"
|
||||||
|
#include "pycore_import.h" // _PyImport_SetModule()
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
#include "structmember.h" // PyMemberDef
|
#include "structmember.h" // PyMemberDef
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue