term_mod.c 734 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef _PY_TERM_MOD_H
  2. #define _PY_TERM_MOD_H
  3. #define PY_SSIZE_T_CLEAN
  4. #include <Python.h>
  5. #include "term_obj.h"
  6. PyModuleDef term_mod = {
  7. PyModuleDef_HEAD_INIT,
  8. .m_name = "term",
  9. .m_doc = "RDF term module.",
  10. .m_size = -1,
  11. };
  12. PyMODINIT_FUNC
  13. PyInit_term(void)
  14. {
  15. if (PyType_Ready (&TermType) < 0) return NULL;
  16. PyObject *m = PyModule_Create(&term_mod);
  17. if (m == NULL) return NULL;
  18. #define ENTRY(a, b) \
  19. if (PyModule_AddIntConstant (m, "TERM_" #a, b) < 0) return NULL;
  20. TTYPE_TABLE
  21. #undef ENTRY
  22. Py_INCREF(&TermType);
  23. if (PyModule_AddObject(m, "Term", (PyObject *) &TermType) < 0) {
  24. Py_DECREF(&TermType);
  25. Py_DECREF(m);
  26. return NULL;
  27. }
  28. return m;
  29. }
  30. #endif