bpo-1635741: Port _heapq module to multiphase initialization. by corona10 · Pull Request #19057 · python/cpython
static PyMethodDef heapq_methods[] = { _HEAPQ_HEAPPUSH_METHODDEF _HEAPQ_HEAPPUSHPOP_METHODDEF
static int heapq_exec(PyObject *m) { PyObject *about = PyUnicode_FromString(__about__); if (PyModule_AddObject(m, "__about__", about) < 0) { Py_DECREF(about); return -1; } return 0; }
static struct PyModuleDef_Slot heapq_slots[] = { {Py_mod_exec, heapq_exec}, {0, NULL} };
static struct PyModuleDef _heapqmodule = { PyModuleDef_HEAD_INIT, "_heapq", module_doc, -1, 0, heapq_methods, NULL, heapq_slots, NULL, NULL, NULL
m = PyModule_Create(&_heapqmodule); if (m == NULL) return NULL; about = PyUnicode_DecodeUTF8(__about__, strlen(__about__), NULL); PyModule_AddObject(m, "__about__", about); return m; return PyModuleDef_Init(&_heapqmodule); }