[Python-checkins] bpo-1635741: Port _abc extension to multiphase initialization (PEP 489) (GH-18030)
Hai Shi
webhook-mailer at python.org
Mon Feb 17 08:50:40 EST 2020
https://github.com/python/cpython/commit/4c1b6a6f4fc46add0097efb3026cf3f0c89f88a2
commit: 4c1b6a6f4fc46add0097efb3026cf3f0c89f88a2
branch: master
author: Hai Shi <shihai1992 at gmail.com>
committer: GitHub <noreply at github.com>
date: 2020-02-17T14:50:35+01:00
summary:
bpo-1635741: Port _abc extension to multiphase initialization (PEP 489) (GH-18030)
files:
A Misc/NEWS.d/next/Core and Builtins/2020-01-16-12-00-04.bpo-1635741.fuqoBG.rst
M Modules/_abc.c
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-16-12-00-04.bpo-1635741.fuqoBG.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-16-12-00-04.bpo-1635741.fuqoBG.rst
new file mode 100644
index 0000000000000..4dd37a65b0e99
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-01-16-12-00-04.bpo-1635741.fuqoBG.rst
@@ -0,0 +1 @@
+Port _abc extension module to multiphase initialization (:pep:`489`).
diff --git a/Modules/_abc.c b/Modules/_abc.c
index e21fe782d0a18..c991295d311a1 100644
--- a/Modules/_abc.c
+++ b/Modules/_abc.c
@@ -807,26 +807,35 @@ static struct PyMethodDef module_functions[] = {
{NULL, NULL} /* sentinel */
};
+static int
+_abc_exec(PyObject *module)
+{
+ if (PyType_Ready(&_abc_data_type) < 0) {
+ return -1;
+ }
+ _abc_data_type.tp_doc = abc_data_doc;
+ return 0;
+}
+
+static PyModuleDef_Slot _abc_slots[] = {
+ {Py_mod_exec, _abc_exec},
+ {0, NULL}
+};
+
static struct PyModuleDef _abcmodule = {
PyModuleDef_HEAD_INIT,
"_abc",
_abc__doc__,
- -1,
+ 0,
module_functions,
- NULL,
+ _abc_slots,
NULL,
NULL,
NULL
};
-
PyMODINIT_FUNC
PyInit__abc(void)
{
- if (PyType_Ready(&_abc_data_type) < 0) {
- return NULL;
- }
- _abc_data_type.tp_doc = abc_data_doc;
-
- return PyModule_Create(&_abcmodule);
+ return PyModuleDef_Init(&_abcmodule);
}
More information about the Python-checkins
mailing list