mirror of
https://github.com/python/cpython.git
synced 2025-12-31 20:43:36 +00:00
Add PyImport_ImportModuleAttr() and PyImport_ImportModuleAttrString() functions. * Add unit tests. * Replace _PyImport_GetModuleAttr() with PyImport_ImportModuleAttr(). * Replace _PyImport_GetModuleAttrString() with PyImport_ImportModuleAttrString(). * Remove "pycore_import.h" includes, no longer needed.
30 lines
899 B
C
30 lines
899 B
C
#ifndef Py_CPYTHON_IMPORT_H
|
|
# error "this header file must not be included directly"
|
|
#endif
|
|
|
|
struct _inittab {
|
|
const char *name; /* ASCII encoded string */
|
|
PyObject* (*initfunc)(void);
|
|
};
|
|
// This is not used after Py_Initialize() is called.
|
|
PyAPI_DATA(struct _inittab *) PyImport_Inittab;
|
|
PyAPI_FUNC(int) PyImport_ExtendInittab(struct _inittab *newtab);
|
|
|
|
struct _frozen {
|
|
const char *name; /* ASCII encoded string */
|
|
const unsigned char *code;
|
|
int size;
|
|
int is_package;
|
|
};
|
|
|
|
/* Embedding apps may change this pointer to point to their favorite
|
|
collection of frozen modules: */
|
|
|
|
PyAPI_DATA(const struct _frozen *) PyImport_FrozenModules;
|
|
|
|
PyAPI_FUNC(PyObject*) PyImport_ImportModuleAttr(
|
|
PyObject *mod_name,
|
|
PyObject *attr_name);
|
|
PyAPI_FUNC(PyObject*) PyImport_ImportModuleAttrString(
|
|
const char *mod_name,
|
|
const char *attr_name);
|