You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.6 KiB

36 years ago
36 years ago
36 years ago
  1. /* Module object interface */
  2. #ifndef Py_MODULEOBJECT_H
  3. #define Py_MODULEOBJECT_H
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. PyAPI_DATA(PyTypeObject) PyModule_Type;
  8. #define PyModule_Check(op) PyObject_TypeCheck(op, &PyModule_Type)
  9. #define PyModule_CheckExact(op) (Py_TYPE(op) == &PyModule_Type)
  10. PyAPI_FUNC(PyObject *) PyModule_NewObject(
  11. PyObject *name
  12. );
  13. PyAPI_FUNC(PyObject *) PyModule_New(
  14. const char *name /* UTF-8 encoded string */
  15. );
  16. PyAPI_FUNC(PyObject *) PyModule_GetDict(PyObject *);
  17. PyAPI_FUNC(PyObject *) PyModule_GetNameObject(PyObject *);
  18. PyAPI_FUNC(const char *) PyModule_GetName(PyObject *);
  19. PyAPI_FUNC(const char *) PyModule_GetFilename(PyObject *);
  20. PyAPI_FUNC(PyObject *) PyModule_GetFilenameObject(PyObject *);
  21. #ifndef Py_LIMITED_API
  22. PyAPI_FUNC(void) _PyModule_Clear(PyObject *);
  23. PyAPI_FUNC(void) _PyModule_ClearDict(PyObject *);
  24. #endif
  25. PyAPI_FUNC(struct PyModuleDef*) PyModule_GetDef(PyObject*);
  26. PyAPI_FUNC(void*) PyModule_GetState(PyObject*);
  27. typedef struct PyModuleDef_Base {
  28. PyObject_HEAD
  29. PyObject* (*m_init)(void);
  30. Py_ssize_t m_index;
  31. PyObject* m_copy;
  32. } PyModuleDef_Base;
  33. #define PyModuleDef_HEAD_INIT { \
  34. PyObject_HEAD_INIT(NULL) \
  35. NULL, /* m_init */ \
  36. 0, /* m_index */ \
  37. NULL, /* m_copy */ \
  38. }
  39. typedef struct PyModuleDef{
  40. PyModuleDef_Base m_base;
  41. const char* m_name;
  42. const char* m_doc;
  43. Py_ssize_t m_size;
  44. PyMethodDef *m_methods;
  45. inquiry m_reload;
  46. traverseproc m_traverse;
  47. inquiry m_clear;
  48. freefunc m_free;
  49. }PyModuleDef;
  50. #ifdef __cplusplus
  51. }
  52. #endif
  53. #endif /* !Py_MODULEOBJECT_H */