sys.exit(1)
cmdclass = {}
+compiler_directives = {'language_level': sys.version_info.major}
try:
from Cython.Build import cythonize
from Cython.Distutils import build_ext
from Cython import Tempita
+ from Cython import __version__ as cython_version
+ from packaging import version
cmdclass = {'build_ext': build_ext}
+
+ # Enable legacy_implicit_noexcept for Cython 3.x to maintain compatibility
+ # with Cython 0.29 (Ubuntu Jammy). This allows callback functions to work
+ # without explicit noexcept declarations.
+ if version.parse(cython_version) >= version.parse('3'):
+ compiler_directives['legacy_implicit_noexcept'] = True
except ImportError:
print("WARNING: Cython is not installed.")
**ext_args
)
],
- compiler_directives={'language_level': sys.version_info.major},
+ compiler_directives=compiler_directives,
build_dir=os.environ.get("CYTHON_BUILD_DIR", None),
**cythonize_args
),
sys.exit(1)
cmdclass = {}
+compiler_directives = {'language_level': sys.version_info.major}
try:
from Cython.Build import cythonize
from Cython.Distutils import build_ext
from Cython import Tempita
+ from Cython import __version__ as cython_version
+ from packaging import version
cmdclass = {'build_ext': build_ext}
+
+ # Enable legacy_implicit_noexcept for Cython 3.x to maintain compatibility
+ # with Cython 0.29 (Ubuntu Jammy). This allows callback functions to work
+ # without explicit noexcept declarations.
+ if version.parse(cython_version) >= version.parse('3'):
+ compiler_directives['legacy_implicit_noexcept'] = True
except ImportError:
print("WARNING: Cython is not installed.")
**ext_args
)
],
- # use "3str" when Cython 3.0 is available
- compiler_directives={'language_level': sys.version_info.major},
+ compiler_directives=compiler_directives,
compile_time_env=cython_constants,
build_dir=os.environ.get("CYTHON_BUILD_DIR", None),
),
sys.exit(1)
cmdclass = {}
+compiler_directives = {'language_level': sys.version_info.major}
try:
from Cython.Build import cythonize
from Cython.Distutils import build_ext
from Cython import Tempita
+ from Cython import __version__ as cython_version
+ from packaging import version
cmdclass = {'build_ext': build_ext}
+
+ # Enable legacy_implicit_noexcept for Cython 3.x to maintain compatibility
+ # with Cython 0.29 (Ubuntu Jammy). This allows callback functions to work
+ # without explicit noexcept declarations.
+ if version.parse(cython_version) >= version.parse('3'):
+ compiler_directives['legacy_implicit_noexcept'] = True
except ImportError:
print("WARNING: Cython is not installed.")
**ext_args
)
],
- compiler_directives={'language_level': sys.version_info.major},
+ compiler_directives=compiler_directives,
build_dir=os.environ.get("CYTHON_BUILD_DIR", None),
**cythonize_args
),