File cython3.patch of Package python-cftime

From 31f782aed3de56300886dd7350f1faff657e14dd Mon Sep 17 00:00:00 2001
From: Spencer Clark <spencerkclark@gmail.com>
Date: Sat, 29 Jul 2023 09:51:10 -0400
Subject: [PATCH] Set c_api_binop_methods compiler directive to True

This retains Cython 0.x behavior for arithmetic operators for
Cython >= 3.0.0.
---
 Changelog            | 2 ++
 pyproject.toml       | 2 +-
 requirements-dev.txt | 2 +-
 setup.py             | 9 ++++++++-
 4 files changed, 12 insertions(+), 3 deletions(-)

Index: cftime-1.6.2/pyproject.toml
===================================================================
--- cftime-1.6.2.orig/pyproject.toml
+++ cftime-1.6.2/pyproject.toml
@@ -1,3 +1,3 @@
 [build-system]
-requires = ["setuptools>=41.2", "cython", "wheel", "oldest-supported-numpy"]
+requires = ["setuptools>=41.2", "cython>=0.29.20", "wheel", "oldest-supported-numpy"]
 build-backend = "setuptools.build_meta"
Index: cftime-1.6.2/requirements-dev.txt
===================================================================
--- cftime-1.6.2.orig/requirements-dev.txt
+++ cftime-1.6.2/requirements-dev.txt
@@ -1,7 +1,7 @@
 check-manifest
 coverage
 coveralls
-cython>0.26.1
+cython>=0.29.20
 pytest
 pytest-cov
 sphinx
Index: cftime-1.6.2/setup.py
===================================================================
--- cftime-1.6.2.orig/setup.py
+++ cftime-1.6.2/setup.py
@@ -16,7 +16,14 @@ except ImportError:
 BASEDIR = os.path.abspath(os.path.dirname(__file__))
 SRCDIR = os.path.join(BASEDIR,'src')
 CMDS_NOCYTHONIZE = ['clean','clean_cython','sdist']
-COMPILER_DIRECTIVES = {}
+COMPILER_DIRECTIVES = {
+    # Cython 3.0.0 changes the default of the c_api_binop_methods directive to
+    # False, resulting in errors in datetime and timedelta arithmetic:
+    # https://github.com/Unidata/cftime/issues/271.  We explicitly set it to
+    # True to retain Cython 0.x behavior for future Cython versions.  This
+    # directive was added in Cython version 0.29.20.
+    "c_api_binop_methods": True
+}
 DEFINE_MACROS = [("NPY_NO_DEPRECATED_API", "NPY_1_7_API_VERSION")] 
 FLAG_COVERAGE = '--cython-coverage'  # custom flag enabling Cython line tracing
 NAME = 'cftime'
openSUSE Build Service is sponsored by