You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.3 KiB
35 lines
1.3 KiB
From c29a7818d3b6806a457af698aec446d3d28d4f80 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
|
|
Date: Sun, 14 Jun 2020 13:45:21 +0200
|
|
Subject: [PATCH] Always bind Cython functions in py3
|
|
|
|
Rebased for cython 0.29.x, and made conditional to Python 3. This
|
|
does not solve the original staticmethod problem in Python 2 but it does
|
|
resolve classmethod problems in Python 3.9. Therefore, it unbreaks
|
|
other packages on Python 3.9, improves overall state for Python 3
|
|
and does not introduce regressions in Python 2.
|
|
---
|
|
Cython/Utility/CythonFunction.c | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
diff --git a/Cython/Utility/CythonFunction.c b/Cython/Utility/CythonFunction.c
|
|
index a65c8eee36..33d0a4750a 100644
|
|
--- a/Cython/Utility/CythonFunction.c
|
|
+++ b/Cython/Utility/CythonFunction.c
|
|
@@ -548,6 +548,7 @@ static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit,
|
|
|
|
static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type)
|
|
{
|
|
+#if PY_MAJOR_VERSION < 3
|
|
__pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
|
|
|
|
if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD) {
|
|
@@ -563,6 +564,7 @@ static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObj
|
|
|
|
if (obj == Py_None)
|
|
obj = NULL;
|
|
+#endif
|
|
return __Pyx_PyMethod_New(func, obj, type);
|
|
}
|
|
|