feat: support GraalPy (#1538)

* Properly close files used for testing

* Add support for GraalPy

* Help GraalPy discover build tools on Windows

* Expect manylinux-interpreters ensure graalpy* warning in pip

* Workaround GraalPy bugs on Windows

* Workaround oracle/graalpython#491 also when uv is not available

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update azure-pipelines.yml

* Update azure-pipelines.yml

* refacotor: use pathlib.write_text

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* Include GraalPy in docker_warmup and remove workaround for installing it late

---------

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
This commit is contained in:
Tim Felgentreff
2025-04-28 18:25:17 -04:00
committed by GitHub
co-authored by pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Henry Schreiner
parent 5f8d06ff55
commit 020a91baa8
22 changed files with 287 additions and 38 deletions
+6 -2
View File
@@ -55,7 +55,7 @@ def cibuildwheel_get_build_identifiers(
cmd = [sys.executable, "-m", "cibuildwheel", "--print-build-identifiers", str(project_path)]
if env is None:
env = os.environ.copy()
env["CIBW_ENABLE"] = "cpython-freethreading pypy"
env["CIBW_ENABLE"] = "cpython-freethreading pypy graalpy"
if prerelease_pythons:
env["CIBW_ENABLE"] += " cpython-prerelease"
@@ -257,6 +257,10 @@ def _expected_wheels(
"pp310-pypy310_pp73",
"pp311-pypy311_pp73",
]
if machine_arch in ["x86_64", "AMD64", "aarch64", "arm64"]:
python_abi_tags += [
"graalpy311-graalpy242_311_native",
]
if single_python:
python_tag = "cp{}{}-".format(*SINGLE_PYTHON_VERSION)
@@ -286,7 +290,7 @@ def _expected_wheels(
for manylinux_version in manylinux_versions
)
]
if len(musllinux_versions) > 0 and not python_abi_tag.startswith("pp"):
if len(musllinux_versions) > 0 and not python_abi_tag.startswith(("pp", "graalpy")):
platform_tags.append(
".".join(
f"{musllinux_version}_{machine_arch}"