import.h 4.9 KB

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