OLD | NEW |
(Empty) | |
| 1 from cpython.ref cimport PyObject |
| 2 |
| 3 cdef extern from "Python.h": |
| 4 ctypedef struct _inittab |
| 5 |
| 6 ##################################################################### |
| 7 # 5.3 Importing Modules |
| 8 ##################################################################### |
| 9 object PyImport_ImportModule(char *name) |
| 10 # Return value: New reference. |
| 11 # This is a simplified interface to PyImport_ImportModuleEx() |
| 12 # below, leaving the globals and locals arguments set to |
| 13 # NULL. When the name argument contains a dot (when it specifies a |
| 14 # submodule of a package), the fromlist argument is set to the |
| 15 # list ['*'] so that the return value is the named module rather |
| 16 # than the top-level package containing it as would otherwise be |
| 17 # the case. (Unfortunately, this has an additional side effect |
| 18 # when name in fact specifies a subpackage instead of a submodule: |
| 19 # the submodules specified in the package's __all__ variable are |
| 20 # loaded.) Return a new reference to the imported module, or NULL |
| 21 # with an exception set on failure. |
| 22 |
| 23 object PyImport_ImportModuleEx(char *name, object globals, object locals, ob
ject fromlist) |
| 24 # Return value: New reference. |
| 25 |
| 26 # Import a module. This is best described by referring to the |
| 27 # built-in Python function __import__(), as the standard |
| 28 # __import__() function calls this function directly. |
| 29 |
| 30 # The return value is a new reference to the imported module or |
| 31 # top-level package, or NULL with an exception set on failure |
| 32 # (before Python 2.4, the module may still be created in this |
| 33 # case). Like for __import__(), the return value when a submodule |
| 34 # of a package was requested is normally the top-level package, |
| 35 # unless a non-empty fromlist was given. Changed in version 2.4: |
| 36 # failing imports remove incomplete module objects. |
| 37 |
| 38 object PyImport_Import(object name) |
| 39 # Return value: New reference. |
| 40 # This is a higher-level interface that calls the current ``import |
| 41 # hook function''. It invokes the __import__() function from the |
| 42 # __builtins__ of the current globals. This means that the import |
| 43 # is done using whatever import hooks are installed in the current |
| 44 # environment, e.g. by rexec or ihooks. |
| 45 |
| 46 object PyImport_ReloadModule(object m) |
| 47 # Return value: New reference. |
| 48 # Reload a module. This is best described by referring to the |
| 49 # built-in Python function reload(), as the standard reload() |
| 50 # function calls this function directly. Return a new reference to |
| 51 # the reloaded module, or NULL with an exception set on failure |
| 52 # (the module still exists in this case). |
| 53 |
| 54 PyObject* PyImport_AddModule(char *name) except NULL |
| 55 # Return value: Borrowed reference. |
| 56 # Return the module object corresponding to a module name. The |
| 57 # name argument may be of the form package.module. First check the |
| 58 # modules dictionary if there's one there, and if not, create a |
| 59 # new one and insert it in the modules dictionary. Return NULL |
| 60 # with an exception set on failure. Note: This function does not |
| 61 # load or import the module; if the module wasn't already loaded, |
| 62 # you will get an empty module object. Use PyImport_ImportModule() |
| 63 # or one of its variants to import a module. Package structures |
| 64 # implied by a dotted name for name are not created if not already |
| 65 # present. |
| 66 |
| 67 object PyImport_ExecCodeModule(char *name, object co) |
| 68 # Return value: New reference. |
| 69 # Given a module name (possibly of the form package.module) and a |
| 70 # code object read from a Python bytecode file or obtained from |
| 71 # the built-in function compile(), load the module. Return a new |
| 72 # reference to the module object, or NULL with an exception set if |
| 73 # an error occurred. Name is removed from sys.modules in error |
| 74 # cases, and even if name was already in sys.modules on entry to |
| 75 # PyImport_ExecCodeModule(). Leaving incompletely initialized |
| 76 # modules in sys.modules is dangerous, as imports of such modules |
| 77 # have no way to know that the module object is an unknown (and |
| 78 # probably damaged with respect to the module author's intents) |
| 79 # state. |
| 80 # This function will reload the module if it was already |
| 81 # imported. See PyImport_ReloadModule() for the intended way to |
| 82 # reload a module. |
| 83 # If name points to a dotted name of the form package.module, any |
| 84 # package structures not already created will still not be |
| 85 # created. |
| 86 |
| 87 |
| 88 long PyImport_GetMagicNumber() |
| 89 # Return the magic number for Python bytecode files (a.k.a. .pyc |
| 90 # and .pyo files). The magic number should be present in the first |
| 91 # four bytes of the bytecode file, in little-endian byte order. |
| 92 |
| 93 PyObject* PyImport_GetModuleDict() except NULL |
| 94 # Return value: Borrowed reference. |
| 95 # Return the dictionary used for the module administration |
| 96 # (a.k.a. sys.modules). Note that this is a per-interpreter |
| 97 # variable. |
| 98 |
| 99 |
| 100 int PyImport_ImportFrozenModule(char *name) except -1 |
| 101 # Load a frozen module named name. Return 1 for success, 0 if the |
| 102 # module is not found, and -1 with an exception set if the |
| 103 # initialization failed. To access the imported module on a |
| 104 # successful load, use PyImport_ImportModule(). (Note the misnomer |
| 105 # -- this function would reload the module if it was already |
| 106 # imported.) |
| 107 |
| 108 |
| 109 int PyImport_ExtendInittab(_inittab *newtab) except -1 |
| 110 # Add a collection of modules to the table of built-in |
| 111 # modules. The newtab array must end with a sentinel entry which |
| 112 # contains NULL for the name field; failure to provide the |
| 113 # sentinel value can result in a memory fault. Returns 0 on |
| 114 # success or -1 if insufficient memory could be allocated to |
| 115 # extend the internal table. In the event of failure, no modules |
| 116 # are added to the internal table. This should be called before |
| 117 # Py_Initialize(). |
| 118 |
| 119 ##################################################################### |
| 120 # 7.5.5 Module Objects |
| 121 ##################################################################### |
| 122 |
| 123 # PyTypeObject PyModule_Type |
| 124 # |
| 125 # This instance of PyTypeObject represents the Python module |
| 126 # type. This is exposed to Python programs as types.ModuleType. |
| 127 |
| 128 bint PyModule_Check(object p) |
| 129 # Return true if p is a module object, or a subtype of a module |
| 130 # object. |
| 131 |
| 132 bint PyModule_CheckExact(object p) |
| 133 # Return true if p is a module object, but not a subtype of PyModule_Type. |
| 134 |
| 135 object PyModule_New(char *name) |
| 136 # Return value: New reference. |
| 137 # Return a new module object with the __name__ attribute set to |
| 138 # name. Only the module's __doc__ and __name__ attributes are |
| 139 # filled in; the caller is responsible for providing a __file__ |
| 140 # attribute. |
| 141 |
| 142 PyObject* PyModule_GetDict(object module) except NULL |
| 143 # Return value: Borrowed reference. |
| 144 # Return the dictionary object that implements module's namespace; |
| 145 # this object is the same as the __dict__ attribute of the module |
| 146 # object. This function never fails. It is recommended extensions |
| 147 # use other PyModule_*() and PyObject_*() functions rather than |
| 148 # directly manipulate a module's __dict__. |
| 149 |
| 150 char* PyModule_GetName(object module) except NULL |
| 151 # Return module's __name__ value. If the module does not provide |
| 152 # one, or if it is not a string, SystemError is raised and NULL is |
| 153 # returned. |
| 154 |
| 155 char* PyModule_GetFilename(object module) except NULL |
| 156 # Return the name of the file from which module was loaded using |
| 157 # module's __file__ attribute. If this is not defined, or if it is |
| 158 # not a string, raise SystemError and return NULL. |
| 159 |
| 160 int PyModule_AddObject(object module, char *name, object value) except -1 |
| 161 # Add an object to module as name. This is a convenience function |
| 162 # which can be used from the module's initialization |
| 163 # function. This steals a reference to value. Return -1 on error, |
| 164 # 0 on success. |
| 165 |
| 166 int PyModule_AddIntant(object module, char *name, long value) except -1 |
| 167 # Add an integer ant to module as name. This convenience |
| 168 # function can be used from the module's initialization |
| 169 # function. Return -1 on error, 0 on success. |
| 170 |
| 171 int PyModule_AddStringant(object module, char *name, char *value) except -
1 |
| 172 # Add a string constant to module as name. This convenience |
| 173 # function can be used from the module's initialization |
| 174 # function. The string value must be null-terminated. Return -1 on |
| 175 # error, 0 on success. |
OLD | NEW |