Home | History | Annotate | Download | only in Include
      1 
      2 /* Module definition and import interface */
      3 
      4 #ifndef Py_IMPORT_H
      5 #define Py_IMPORT_H
      6 #ifdef __cplusplus
      7 extern "C" {
      8 #endif
      9 
     10 #ifndef Py_LIMITED_API
     11 PyAPI_FUNC(void) _PyImportZip_Init(void);
     12 
     13 PyMODINIT_FUNC PyInit_imp(void);
     14 #endif /* !Py_LIMITED_API */
     15 PyAPI_FUNC(long) PyImport_GetMagicNumber(void);
     16 PyAPI_FUNC(const char *) PyImport_GetMagicTag(void);
     17 PyAPI_FUNC(PyObject *) PyImport_ExecCodeModule(
     18     const char *name,           /* UTF-8 encoded string */
     19     PyObject *co
     20     );
     21 PyAPI_FUNC(PyObject *) PyImport_ExecCodeModuleEx(
     22     const char *name,           /* UTF-8 encoded string */
     23     PyObject *co,
     24     const char *pathname        /* decoded from the filesystem encoding */
     25     );
     26 PyAPI_FUNC(PyObject *) PyImport_ExecCodeModuleWithPathnames(
     27     const char *name,           /* UTF-8 encoded string */
     28     PyObject *co,
     29     const char *pathname,       /* decoded from the filesystem encoding */
     30     const char *cpathname       /* decoded from the filesystem encoding */
     31     );
     32 #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
     33 PyAPI_FUNC(PyObject *) PyImport_ExecCodeModuleObject(
     34     PyObject *name,
     35     PyObject *co,
     36     PyObject *pathname,
     37     PyObject *cpathname
     38     );
     39 #endif
     40 PyAPI_FUNC(PyObject *) PyImport_GetModuleDict(void);
     41 #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
     42 PyAPI_FUNC(PyObject *) PyImport_AddModuleObject(
     43     PyObject *name
     44     );
     45 #endif
     46 PyAPI_FUNC(PyObject *) PyImport_AddModule(
     47     const char *name            /* UTF-8 encoded string */
     48     );
     49 PyAPI_FUNC(PyObject *) PyImport_ImportModule(
     50     const char *name            /* UTF-8 encoded string */
     51     );
     52 PyAPI_FUNC(PyObject *) PyImport_ImportModuleNoBlock(
     53     const char *name            /* UTF-8 encoded string */
     54     );
     55 PyAPI_FUNC(PyObject *) PyImport_ImportModuleLevel(
     56     const char *name,           /* UTF-8 encoded string */
     57     PyObject *globals,
     58     PyObject *locals,
     59     PyObject *fromlist,
     60     int level
     61     );
     62 #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
     63 PyAPI_FUNC(PyObject *) PyImport_ImportModuleLevelObject(
     64     PyObject *name,
     65     PyObject *globals,
     66     PyObject *locals,
     67     PyObject *fromlist,
     68     int level
     69     );
     70 #endif
     71 
     72 #define PyImport_ImportModuleEx(n, g, l, f) \
     73     PyImport_ImportModuleLevel(n, g, l, f, 0)
     74 
     75 PyAPI_FUNC(PyObject *) PyImport_GetImporter(PyObject *path);
     76 PyAPI_FUNC(PyObject *) PyImport_Import(PyObject *name);
     77 PyAPI_FUNC(PyObject *) PyImport_ReloadModule(PyObject *m);
     78 PyAPI_FUNC(void) PyImport_Cleanup(void);
     79 #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
     80 PyAPI_FUNC(int) PyImport_ImportFrozenModuleObject(
     81     PyObject *name
     82     );
     83 #endif
     84 PyAPI_FUNC(int) PyImport_ImportFrozenModule(
     85     const char *name            /* UTF-8 encoded string */
     86     );
     87 
     88 #ifndef Py_LIMITED_API
     89 #ifdef WITH_THREAD
     90 PyAPI_FUNC(void) _PyImport_AcquireLock(void);
     91 PyAPI_FUNC(int) _PyImport_ReleaseLock(void);
     92 #else
     93 #define _PyImport_AcquireLock()
     94 #define _PyImport_ReleaseLock() 1
     95 #endif
     96 
     97 PyAPI_FUNC(void) _PyImport_ReInitLock(void);
     98 
     99 PyAPI_FUNC(PyObject *) _PyImport_FindBuiltin(
    100     const char *name            /* UTF-8 encoded string */
    101     );
    102 PyAPI_FUNC(PyObject *) _PyImport_FindExtensionObject(PyObject *, PyObject *);
    103 PyAPI_FUNC(int) _PyImport_FixupBuiltin(
    104     PyObject *mod,
    105     const char *name            /* UTF-8 encoded string */
    106     );
    107 PyAPI_FUNC(int) _PyImport_FixupExtensionObject(PyObject*, PyObject *, PyObject *);
    108 
    109 struct _inittab {
    110     const char *name;           /* ASCII encoded string */
    111     PyObject* (*initfunc)(void);
    112 };
    113 PyAPI_DATA(struct _inittab *) PyImport_Inittab;
    114 PyAPI_FUNC(int) PyImport_ExtendInittab(struct _inittab *newtab);
    115 #endif /* Py_LIMITED_API */
    116 
    117 PyAPI_DATA(PyTypeObject) PyNullImporter_Type;
    118 
    119 PyAPI_FUNC(int) PyImport_AppendInittab(
    120     const char *name,           /* ASCII encoded string */
    121     PyObject* (*initfunc)(void)
    122     );
    123 
    124 #ifndef Py_LIMITED_API
    125 struct _frozen {
    126     const char *name;                 /* ASCII encoded string */
    127     const unsigned char *code;
    128     int size;
    129 };
    130 
    131 /* Embedding apps may change this pointer to point to their favorite
    132    collection of frozen modules: */
    133 
    134 PyAPI_DATA(const struct _frozen *) PyImport_FrozenModules;
    135 #endif
    136 
    137 #ifdef __cplusplus
    138 }
    139 #endif
    140 #endif /* !Py_IMPORT_H */
    141