File: /Users/paulross/dev/Python-3.6.2/Include/import.h

Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.

       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: