diff --git a/pyproject.toml b/pyproject.toml index 509aca3d7..bc23836b5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,7 +48,7 @@ requires = ["setuptools", "setuptools_scm", "extension-helpers==1.*", "numpy>=2.0.0rc1", - "cython>=3.0,<3.1"] + "cython @ git+https://github.com/da-woods/cython@cpython-library-limited-api"] build-backend = 'setuptools.build_meta' [tool.setuptools] diff --git a/reproject/adaptive/setup_package.py b/reproject/adaptive/setup_package.py new file mode 100644 index 000000000..5041e5348 --- /dev/null +++ b/reproject/adaptive/setup_package.py @@ -0,0 +1,33 @@ +import os + +import numpy as np +from setuptools import Extension + +ADAPTIVE_SUBPKG = os.path.dirname(__file__) + + +def get_extensions(): + libraries = [] + + sources = [] + sources.append(os.path.join(ADAPTIVE_SUBPKG, "deforest.pyx")) + + include_dirs = [np.get_include()] + + define_macros = [] + + define_macros.append(("CYTHON_LIMITED_API", "0x030C0000")) + define_macros.append(("Py_LIMITED_API", "0x030C0000")) + + extension = Extension( + name="reproject.adaptive.deforest", + sources=sources, + include_dirs=include_dirs, + libraries=libraries, + language="c", + extra_compile_args=["-O2"], + define_macros=define_macros, + py_limited_api=True, + ) + + return [extension] diff --git a/reproject/spherical_intersect/setup_package.py b/reproject/spherical_intersect/setup_package.py index 0fa4d6b53..6d1402c47 100644 --- a/reproject/spherical_intersect/setup_package.py +++ b/reproject/spherical_intersect/setup_package.py @@ -23,7 +23,10 @@ def get_extensions(): if int(os.environ.get("DEBUG_OVERLAP_AREA", 0)): define_macros = [("DEBUG_OVERLAP_AREA", 1)] else: - define_macros = None + define_macros = [] + + define_macros.append(('CYTHON_LIMITED_API', '0x030C0000')) + define_macros.append(('Py_LIMITED_API', '0x030C0000')) extension = Extension( name="reproject.spherical_intersect._overlap", @@ -33,6 +36,7 @@ def get_extensions(): language="c", extra_compile_args=["-O2"], define_macros=define_macros, + py_limited_api=True, ) return [extension]