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.
gentoo-overlay/dev-python/cython/files/cython-0.29.20-py39-classme...

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);
}