codekingpro/portable-devtools
115k
1#ifndef Py_INTERNAL_MODULEOBJECT_H2#define Py_INTERNAL_MODULEOBJECT_H3#ifdef __cplusplus4extern "C" {5#endif6 7#ifndef Py_BUILD_CORE8# error "this header requires Py_BUILD_CORE define"9#endif10 11extern void _PyModule_Clear(PyObject *);12extern void _PyModule_ClearDict(PyObject *);13extern int _PyModuleSpec_IsInitializing(PyObject *);14extern int _PyModuleSpec_GetFileOrigin(PyObject *, PyObject **);15extern int _PyModule_IsPossiblyShadowing(PyObject *);16 17extern int _PyModule_IsExtension(PyObject *obj);18 19typedef struct {20 PyObject_HEAD21 PyObject *md_dict;22 PyModuleDef *md_def;23 void *md_state;24 PyObject *md_weaklist;25 // for logging purposes after md_dict is cleared26 PyObject *md_name;27#ifdef Py_GIL_DISABLED28 void *md_gil;29#endif30} PyModuleObject;31 32static inline PyModuleDef* _PyModule_GetDef(PyObject *mod) {33 assert(PyModule_Check(mod));34 return ((PyModuleObject *)mod)->md_def;35}36 37static inline void* _PyModule_GetState(PyObject* mod) {38 assert(PyModule_Check(mod));39 return ((PyModuleObject *)mod)->md_state;40}41 42static inline PyObject* _PyModule_GetDict(PyObject *mod) {43 assert(PyModule_Check(mod));44 PyObject *dict = ((PyModuleObject *)mod) -> md_dict;45 // _PyModule_GetDict(mod) must not be used after calling module_clear(mod)46 assert(dict != NULL);47 return dict; // borrowed reference48}49 50extern PyObject * _PyModule_GetFilenameObject(PyObject *);51extern Py_ssize_t _PyModule_GetFilenameUTF8(52 PyObject *module,53 char *buffer,54 Py_ssize_t maxlen);55 56PyObject* _Py_module_getattro_impl(PyModuleObject *m, PyObject *name, int suppress);57PyObject* _Py_module_getattro(PyObject *m, PyObject *name);58 59#ifdef __cplusplus60}61#endif62#endif /* !Py_INTERNAL_MODULEOBJECT_H */63 