Make repr of C accelerated TaskWakeupMethWrapper the same as of pure Python version (GH-17484)
(cherry picked from commit 969ae7aca809a8dacafee04c261110eea0ac1945)
Co-authored-by: Andrew Svetlov <andrew.svetlov@gmail.com>
diff --git a/Modules/_asynciomodule.c b/Modules/_asynciomodule.c
index d5f845e..f4efa21 100644
--- a/Modules/_asynciomodule.c
+++ b/Modules/_asynciomodule.c
@@ -1811,6 +1811,21 @@
Py_TYPE(o)->tp_free(o);
}
+static PyObject *
+TaskWakeupMethWrapper_get___self__(TaskWakeupMethWrapper *o, void *Py_UNUSED(ignored))
+{
+ if (o->ww_task) {
+ Py_INCREF(o->ww_task);
+ return (PyObject*)o->ww_task;
+ }
+ Py_RETURN_NONE;
+}
+
+static PyGetSetDef TaskWakeupMethWrapper_getsetlist[] = {
+ {"__self__", (getter)TaskWakeupMethWrapper_get___self__, NULL, NULL},
+ {NULL} /* Sentinel */
+};
+
static PyTypeObject TaskWakeupMethWrapper_Type = {
PyVarObject_HEAD_INIT(NULL, 0)
"TaskWakeupMethWrapper",
@@ -1822,6 +1837,7 @@
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
.tp_traverse = (traverseproc)TaskWakeupMethWrapper_traverse,
.tp_clear = (inquiry)TaskWakeupMethWrapper_clear,
+ .tp_getset = TaskWakeupMethWrapper_getsetlist,
};
static PyObject *
@@ -3258,7 +3274,7 @@
}
if (module_initialized != 0) {
return 0;
- }
+ }
else {
module_initialized = 1;
}