PyTypeObject PyModule_Type This instance of PyTypeObject represents the Python module type. This is exposed to Python programs as types.ModuleType.
int PyModule_Check(PyObject *p) Return true if p is a module object, or a subtype of a module object. This function always succeeds.
int PyModule_CheckExact(PyObject *p) Return true if p is a module object, but not a subtype of PyModule_Type. This function always succeeds.
PyObject *PyModule_NewObject(PyObject *name) Return a new module object with module.__name__ set to name. The module’s __name__, __doc__, __package__ and __loader__ attributes are filled in (all but __name__ are set to None). The caller is responsible for setting a __file__ attribute.
Return NULL with an exception set on error.
Added in version 3.3.
Changed in version 3.4: __package__ and __loader__ are now set to None.
PyObject *PyModule_New(const char *name) Similar to PyModule_NewObject(), but the name is a UTF-8 encoded string instead of a Unicode object.
PyObject *PyModule_GetDict(PyObject *module) Return the dictionary object that implements module’s namespace; this object is the same as the __dict__ attribute of the module object. If module is not a module object (or a subtype of a module object), SystemError is raised and NULL is returned.
It is recommended extensions use other PyModule_* and PyObject_* functions rather than directly manipulate a module’s __dict__.
The returned reference is borrowed from the module; it is valid until the module is destroyed.
PyObject *PyModule_GetNameObject(PyObject *module) Return module’s __name__ value. If the module does not provide one, or if it is not a string, SystemError is raised and NULL is returned.
Added in version 3.3.
const char *PyModule_GetName(PyObject *module) Similar to PyModule_GetNameObject() but return the name encoded to 'utf-8'.
The returned buffer is only valid until the module is renamed or destroyed. Note that Python code may rename a module by setting its __name__ attribute.
void *PyModule_GetState(PyObject *module) Return the “state” of the module, that is, a pointer to the block of memory allocated at module creation time, or NULL. See PyModuleDef.m_size.
PyModuleDef *PyModule_GetDef(PyObject *module) Return a pointer to the PyModuleDef struct from which the module was created, or NULL if the module wasn’t created from a definition.
On error, return NULL with an exception set. Use PyErr_Occurred() to tell this case apart from a missing PyModuleDef.
PyObject *PyModule_GetFilenameObject(PyObject *module) Return the name of the file from which module was loaded using module’s __file__ attribute. If this is not defined, or if it is not a string, raise SystemError and return NULL; otherwise return a reference to a Unicode object.
Added in version 3.2.
const char *PyModule_GetFilename(PyObject *module) Similar to PyModule_GetFilenameObject() but return the filename encoded to ‘utf-8’.
The returned buffer is only valid until the module’s __file__ attribute is reassigned or the module is destroyed.
Deprecated since version 3.2: PyModule_GetFilename() raises UnicodeEncodeError on unencodable filenames, use PyModule_GetFilenameObject() instead.
© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/c-api/module.html