Spaces:
Runtime error
Runtime error
| from .object cimport PyObject | |
| cdef extern from "Python.h": | |
| ctypedef struct _inittab | |
| ##################################################################### | |
| # 5.3 Importing Modules | |
| ##################################################################### | |
| object PyImport_ImportModule(const char *name) | |
| # Return value: New reference. | |
| # This is a simplified interface to PyImport_ImportModuleEx() | |
| # below, leaving the globals and locals arguments set to | |
| # NULL. When the name argument contains a dot (when it specifies a | |
| # submodule of a package), the fromlist argument is set to the | |
| # list ['*'] so that the return value is the named module rather | |
| # than the top-level package containing it as would otherwise be | |
| # the case. (Unfortunately, this has an additional side effect | |
| # when name in fact specifies a subpackage instead of a submodule: | |
| # the submodules specified in the package's __all__ variable are | |
| # loaded.) Return a new reference to the imported module, or NULL | |
| # with an exception set on failure. | |
| object PyImport_ImportModuleEx(const char *name, object globals, object locals, object fromlist) | |
| # Return value: New reference. | |
| # Import a module. This is best described by referring to the | |
| # built-in Python function __import__(), as the standard | |
| # __import__() function calls this function directly. | |
| # The return value is a new reference to the imported module or | |
| # top-level package, or NULL with an exception set on failure | |
| # (before Python 2.4, the module may still be created in this | |
| # case). Like for __import__(), the return value when a submodule | |
| # of a package was requested is normally the top-level package, | |
| # unless a non-empty fromlist was given. Changed in version 2.4: | |
| # failing imports remove incomplete module objects. | |
| object PyImport_ImportModuleLevel(char *name, object globals, object locals, object fromlist, int level) | |
| # Return value: New reference. | |
| # Import a module. This is best described by referring to the | |
| # built-in Python function __import__(), as the standard | |
| # __import__() function calls this function directly. | |
| # The return value is a new reference to the imported module or | |
| # top-level package, or NULL with an exception set on failure. Like | |
| # for __import__(), the return value when a submodule of a package | |
| # was requested is normally the top-level package, unless a | |
| # non-empty fromlist was given. | |
| object PyImport_Import(object name) | |
| # Return value: New reference. | |
| # This is a higher-level interface that calls the current ``import | |
| # hook function''. It invokes the __import__() function from the | |
| # __builtins__ of the current globals. This means that the import | |
| # is done using whatever import hooks are installed in the current | |
| # environment, e.g. by rexec or ihooks. | |
| object PyImport_ReloadModule(object m) | |
| # Return value: New reference. | |
| # Reload a module. This is best described by referring to the | |
| # built-in Python function reload(), as the standard reload() | |
| # function calls this function directly. Return a new reference to | |
| # the reloaded module, or NULL with an exception set on failure | |
| # (the module still exists in this case). | |
| PyObject* PyImport_AddModule(const char *name) except NULL | |
| # Return value: Borrowed reference. | |
| # Return the module object corresponding to a module name. The | |
| # name argument may be of the form package.module. First check the | |
| # modules dictionary if there's one there, and if not, create a | |
| # new one and insert it in the modules dictionary. Return NULL | |
| # with an exception set on failure. Note: This function does not | |
| # load or import the module; if the module wasn't already loaded, | |
| # you will get an empty module object. Use PyImport_ImportModule() | |
| # or one of its variants to import a module. Package structures | |
| # implied by a dotted name for name are not created if not already | |
| # present. | |
| object PyImport_ExecCodeModule(char *name, object co) | |
| # Return value: New reference. | |
| # Given a module name (possibly of the form package.module) and a | |
| # code object read from a Python bytecode file or obtained from | |
| # the built-in function compile(), load the module. Return a new | |
| # reference to the module object, or NULL with an exception set if | |
| # an error occurred. Name is removed from sys.modules in error | |
| # cases, and even if name was already in sys.modules on entry to | |
| # PyImport_ExecCodeModule(). Leaving incompletely initialized | |
| # modules in sys.modules is dangerous, as imports of such modules | |
| # have no way to know that the module object is an unknown (and | |
| # probably damaged with respect to the module author's intents) | |
| # state. | |
| # This function will reload the module if it was already | |
| # imported. See PyImport_ReloadModule() for the intended way to | |
| # reload a module. | |
| # If name points to a dotted name of the form package.module, any | |
| # package structures not already created will still not be | |
| # created. | |
| long PyImport_GetMagicNumber() | |
| # Return the magic number for Python bytecode files (a.k.a. .pyc | |
| # and .pyo files). The magic number should be present in the first | |
| # four bytes of the bytecode file, in little-endian byte order. | |
| PyObject* PyImport_GetModuleDict() except NULL | |
| # Return value: Borrowed reference. | |
| # Return the dictionary used for the module administration | |
| # (a.k.a. sys.modules). Note that this is a per-interpreter | |
| # variable. | |
| int PyImport_ImportFrozenModule(char *name) except -1 | |
| # Load a frozen module named name. Return 1 for success, 0 if the | |
| # module is not found, and -1 with an exception set if the | |
| # initialization failed. To access the imported module on a | |
| # successful load, use PyImport_ImportModule(). (Note the misnomer | |
| # -- this function would reload the module if it was already | |
| # imported.) | |
| int PyImport_ExtendInittab(_inittab *newtab) except -1 | |
| # Add a collection of modules to the table of built-in | |
| # modules. The newtab array must end with a sentinel entry which | |
| # contains NULL for the name field; failure to provide the | |
| # sentinel value can result in a memory fault. Returns 0 on | |
| # success or -1 if insufficient memory could be allocated to | |
| # extend the internal table. In the event of failure, no modules | |
| # are added to the internal table. This should be called before | |
| # Py_Initialize(). | |
| ##################################################################### | |
| # 7.5.5 Module Objects | |
| ##################################################################### | |
| # PyTypeObject PyModule_Type | |
| # | |
| # This instance of PyTypeObject represents the Python module | |
| # type. This is exposed to Python programs as types.ModuleType. | |
| bint PyModule_Check(object p) | |
| # Return true if p is a module object, or a subtype of a module | |
| # object. | |
| bint PyModule_CheckExact(object p) | |
| # Return true if p is a module object, but not a subtype of PyModule_Type. | |
| object PyModule_New(const char *name) | |
| # Return value: New reference. | |
| # Return a new module object with the __name__ attribute set to | |
| # name. Only the module's __doc__ and __name__ attributes are | |
| # filled in; the caller is responsible for providing a __file__ | |
| # attribute. | |
| PyObject* PyModule_GetDict(object module) except NULL | |
| # Return value: Borrowed reference. | |
| # Return the dictionary object that implements module's namespace; | |
| # this object is the same as the __dict__ attribute of the module | |
| # object. This function never fails. It is recommended extensions | |
| # use other PyModule_*() and PyObject_*() functions rather than | |
| # directly manipulate a module's __dict__. | |
| char* PyModule_GetName(object module) except NULL | |
| # 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. | |
| char* PyModule_GetFilename(object module) except NULL | |
| # 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. | |
| int PyModule_AddObject(object module, const char *name, object value) except -1 | |
| # Add an object to module as name. This is a convenience function | |
| # which can be used from the module's initialization | |
| # function. This steals a reference to value. Return -1 on error, | |
| # 0 on success. | |
| int PyModule_AddIntConstant(object module, const char *name, long value) except -1 | |
| # Add an integer constant to module as name. This convenience | |
| # function can be used from the module's initialization | |
| # function. Return -1 on error, 0 on success. | |
| int PyModule_AddStringConstant(object module, const char *name, const char *value) except -1 | |
| # Add a string constant to module as name. This convenience | |
| # function can be used from the module's initialization | |
| # function. The string value must be null-terminated. Return -1 on | |
| # error, 0 on success. | |