From 5330c58bda668f1cfb055aa41154f2f1421bad5b Mon Sep 17 00:00:00 2001 From: cvanelteren Date: Tue, 18 Feb 2025 13:18:09 +0100 Subject: [PATCH 1/3] add necessary noexcept for more recent cython --- packages/basemap/src/_geoslib.pyx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/basemap/src/_geoslib.pyx b/packages/basemap/src/_geoslib.pyx index 676ac4d4b..6d1e36914 100644 --- a/packages/basemap/src/_geoslib.pyx +++ b/packages/basemap/src/_geoslib.pyx @@ -112,7 +112,7 @@ cdef extern from "geos_c.h": # Cython 3: Next cdef needs "noexcept" declaration unless # the compiler directive "legacy_implicit_noexcept" is used # ("noexcept" syntax supported since Cython 0.29.31). -cdef void notice_h(const char *fmt, ...): +cdef void notice_h(const char *fmt, ...) noexcept: pass #format = PyBytes_FromString(fmt) #message = PyBytes_FromString(msg) From 05e1608cfe0b934a78baf167ce14305c26120e7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Molina=20Garc=C3=ADa?= Date: Mon, 24 Feb 2025 08:50:54 +0100 Subject: [PATCH 2/3] Update minimum pin for Cython in requirements The `noexcept` syntax was first included in Cython 3.0, and it was backported only from Cython 0.29.31 onwards. --- packages/basemap/pyproject.toml | 2 +- packages/basemap/requirements-setup.txt | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/basemap/pyproject.toml b/packages/basemap/pyproject.toml index 8ab927ff8..d5dfe2906 100644 --- a/packages/basemap/pyproject.toml +++ b/packages/basemap/pyproject.toml @@ -3,6 +3,6 @@ requires = [ 'setuptools', 'wheel', 'numpy == 2.0.0', - 'cython >= 0.29, < 3.1', + 'cython >= 0.29.31, < 3.1', ] build-backend = "setuptools.build_meta" diff --git a/packages/basemap/requirements-setup.txt b/packages/basemap/requirements-setup.txt index 6f39a1a05..d12bb0661 100644 --- a/packages/basemap/requirements-setup.txt +++ b/packages/basemap/requirements-setup.txt @@ -1,2 +1 @@ -cython >= 0.29, < 3.1; python_version >= "3.3" or python_version < "3.0" -cython >= 0.26, < 0.27; python_version == "3.2" +cython >= 0.29.31, < 3.1 From 31338336fa1a3001621ea54114a62be60c417662 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Molina=20Garc=C3=ADa?= Date: Mon, 24 Feb 2025 08:52:30 +0100 Subject: [PATCH 3/3] Remove unneeded legacy_implicit_noexcept in setup.py Since the code is migrated to use `noexcept`, this Cython directive is no longer needed. --- packages/basemap/setup.py | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/basemap/setup.py b/packages/basemap/setup.py index 8d2bebdd0..3a16d3d64 100644 --- a/packages/basemap/setup.py +++ b/packages/basemap/setup.py @@ -162,7 +162,6 @@ def run(self): for ext in ext_modules: ext.cython_directives = [ ("language_level", str(sys.version_info[0])), - ("legacy_implicit_noexcept", True), ][:1 + int(cython_major_version >= 3)] # Define all the different requirements.