From c3d2ab862f706689e3340dc5bf5e3f5f7bfb1c92 Mon Sep 17 00:00:00 2001 From: Eli Battat Date: Tue, 24 Feb 2026 08:37:08 +0200 Subject: [PATCH] Support Python gte 3.12 --- pyproject.toml | 3 +++ setup.py | 20 ++++++++++++-------- snafu/run_snafu.py | 6 ++++++ 3 files changed, 21 insertions(+), 8 deletions(-) create mode 100644 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..22f8f67f --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["setuptools>=67.0.0", "wheel"] +build-backend = "setuptools.build_meta" diff --git a/setup.py b/setup.py index 9d5d5987..4993f045 100644 --- a/setup.py +++ b/setup.py @@ -1,14 +1,18 @@ import sys - -from pkg_resources import VersionConflict, require from setuptools import setup +# Delay pkg_resources import to avoid build errors in Python 3.12 try: - require("setuptools>=38.3") -except VersionConflict: - print("Error: version of setuptools is too old (<38.3)!") - sys.exit(1) - + import pkg_resources + from pkg_resources import VersionConflict, require + try: + require("setuptools>=38.3") + except VersionConflict: + print("Error: version of setuptools is too old (<38.3)!") + sys.exit(1) +except ModuleNotFoundError: + # Skip check if pkg_resources is not yet installed + pass if __name__ == "__main__": - setup() + setup() diff --git a/snafu/run_snafu.py b/snafu/run_snafu.py index 53dea8e4..4aa652a0 100755 --- a/snafu/run_snafu.py +++ b/snafu/run_snafu.py @@ -26,6 +26,12 @@ from distutils.util import strtobool import configargparse + +# NumPy 2.0: elasticsearch 7.x uses np.float_ (removed in 2.0); use float64 +import numpy as np +if not hasattr(np, "float_"): + np.float_ = np.float64 + import elasticsearch import urllib3