| // Workaround for testing _Py_OPAQUE_PYOBJECT. |
| // See end of 'extension.c' |
| |
| |
| #undef _Py_OPAQUE_PYOBJECT |
| #undef Py_LIMITED_API |
| #include "Python.h" |
| |
| |
| // (repeated definition to avoid creating a header) |
| extern PyObject *testcext_create_moduledef( |
| const char *name, const char *doc, |
| PyMethodDef *methods, PyModuleDef_Slot *slots); |
| |
| PyObject *testcext_create_moduledef( |
| const char *name, const char *doc, |
| PyMethodDef *methods, PyModuleDef_Slot *slots) { |
| |
| static struct PyModuleDef _testcext_module = { |
| PyModuleDef_HEAD_INIT, |
| }; |
| if (!_testcext_module.m_name) { |
| _testcext_module.m_name = name; |
| _testcext_module.m_doc = doc; |
| _testcext_module.m_methods = methods; |
| _testcext_module.m_slots = slots; |
| } |
| return PyModuleDef_Init(&_testcext_module); |
| } |