Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a007eeda0d | ||
|
|
fdda545750 | ||
|
|
8832cf6b75 | ||
|
|
a35209b5ca | ||
|
|
148ea702ac | ||
|
|
96ba88f3aa | ||
|
|
10c055d89c | ||
|
|
1928c1bfa5 | ||
|
|
a1005548ee | ||
|
|
a07eff98b0 |
@@ -28,7 +28,7 @@ jobs:
|
||||
python-version: "3.x"
|
||||
allow-prereleases: true
|
||||
|
||||
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
|
||||
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
||||
|
||||
- name: Install tooling
|
||||
run: |
|
||||
|
||||
@@ -17,7 +17,7 @@ jobs:
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- uses: hynek/build-and-inspect-python-package@d44ca7d91762de7a7d5436ddae667c6da6d1c3df # v2.18.0
|
||||
- uses: hynek/build-and-inspect-python-package@2abe76da66d0a6a4a227101f9348ee855797cfa5 # v3.0.1
|
||||
|
||||
publish:
|
||||
needs: [dist]
|
||||
@@ -37,10 +37,10 @@ jobs:
|
||||
path: dist
|
||||
|
||||
- name: Generate artifact attestation for sdist and wheel
|
||||
uses: actions/attest-build-provenance@0f67c3f4856b2e3261c31976d6725780e5e4c373 # v4.1.1
|
||||
uses: actions/attest@1e69f48acb82d1966a394da916b4c1698aa569d6 # v4.2.2
|
||||
with:
|
||||
subject-path: "dist/cibuildwheel-*"
|
||||
|
||||
- uses: pypa/gh-action-pypi-publish@ba38be9e461d3875417946c167d0b5f3d385a247 # v1.14.1
|
||||
- uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
||||
with:
|
||||
attestations: true
|
||||
|
||||
@@ -49,8 +49,8 @@ jobs:
|
||||
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
||||
with:
|
||||
python-version: "3.x"
|
||||
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
|
||||
- uses: j178/prek-action@5337cb91e0fa35a7ff31b9ca345126d8bbbcdf16 # v2.0.6
|
||||
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
||||
- uses: j178/prek-action@4e14d07f9231acabce116ccfca13b13dd9755ece # v3.0.0
|
||||
- name: PyLint checks
|
||||
run: uvx nox -s pylint -- --output-format=github
|
||||
|
||||
@@ -66,7 +66,7 @@ jobs:
|
||||
name: Install Python
|
||||
with:
|
||||
python-version: "3.x"
|
||||
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
|
||||
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
||||
- name: Install dependencies
|
||||
run: uv sync --no-dev --group test
|
||||
- name: Generate a sample project
|
||||
@@ -130,7 +130,7 @@ jobs:
|
||||
python-version: ${{ matrix.python_version }}
|
||||
allow-prereleases: true
|
||||
|
||||
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
|
||||
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
||||
|
||||
- name: Free up disk space
|
||||
if: runner.os == 'Linux' && matrix.test_select != 'android'
|
||||
@@ -260,7 +260,7 @@ jobs:
|
||||
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
||||
with:
|
||||
python-version: "3.x"
|
||||
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
|
||||
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
||||
- name: Install dependencies
|
||||
run: uv sync --no-dev --group test
|
||||
- name: Get qemu emulated architectures
|
||||
@@ -285,7 +285,7 @@ jobs:
|
||||
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
||||
with:
|
||||
python-version: "3.x"
|
||||
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
|
||||
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
||||
- name: Install dependencies
|
||||
run: uv sync --no-dev --group test
|
||||
|
||||
@@ -310,7 +310,7 @@ jobs:
|
||||
name: Install Python 3.12
|
||||
with:
|
||||
python-version: '3.12'
|
||||
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
|
||||
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
||||
|
||||
- name: Install dependencies
|
||||
run: uv sync --no-dev --group test
|
||||
|
||||
@@ -41,7 +41,7 @@ jobs:
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
|
||||
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
||||
with:
|
||||
python-version: "3.14"
|
||||
|
||||
|
||||
@@ -21,4 +21,4 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Run zizmor 🌈
|
||||
uses: zizmorcore/zizmor-action@6fc4b006235f201fdab3722e17240ab420d580e5 # v0.6.1
|
||||
uses: zizmorcore/zizmor-action@3dc1ecc9bcb9e94e9b2c709687979e1298497054 # v0.6.2
|
||||
|
||||
@@ -18,14 +18,14 @@ repos:
|
||||
exclude: ^cibuildwheel/resources/android/android.patch$
|
||||
|
||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||
rev: c59bba8fb259db0fec2bbb77ad8ba51ea7341b56 # frozen: v0.15.20
|
||||
rev: 39d9ac5938dadb73df0564a45f163e25ff9fa6e2 # frozen: v0.16.1
|
||||
hooks:
|
||||
- id: ruff-check
|
||||
args: ["--fix"]
|
||||
- id: ruff-format
|
||||
|
||||
- repo: https://github.com/pre-commit/mirrors-mypy
|
||||
rev: d2823d321df3af8f878f7ee3414dc94d037145b9 # frozen: v2.1.0
|
||||
rev: 41e691678310dfd3833f7ab4e180ddb014310356 # frozen: v2.3.0
|
||||
hooks:
|
||||
- id: mypy
|
||||
name: mypy 3.11 on cibuildwheel/
|
||||
@@ -85,7 +85,7 @@ repos:
|
||||
exclude: "^cibuildwheel/resources/"
|
||||
|
||||
- repo: https://github.com/codespell-project/codespell
|
||||
rev: 2ccb47ff45ad361a21071a7eedda4c37e6ae8c5a # frozen: v2.4.2
|
||||
rev: 57b21406f092110c18776e39b0bda50d37c945c8 # frozen: v2.4.3
|
||||
hooks:
|
||||
- id: codespell
|
||||
args: ["-w"]
|
||||
|
||||
@@ -318,6 +318,8 @@ for value in schema["properties"].values():
|
||||
case {"type": "string_table_array"}:
|
||||
del value["type"]
|
||||
value["oneOf"] = string_table_array
|
||||
case _:
|
||||
pass
|
||||
|
||||
overrides = yaml.safe_load(
|
||||
"""
|
||||
|
||||
@@ -49,7 +49,7 @@ def parse(contents: str) -> str | None:
|
||||
analyzer = Analyzer()
|
||||
analyzer.visit(tree)
|
||||
return analyzer.requires_python or ""
|
||||
except Exception:
|
||||
except Exception: # noqa: BLE001
|
||||
return None
|
||||
|
||||
|
||||
|
||||
@@ -76,9 +76,9 @@ class WindowsVersions:
|
||||
response.raise_for_status()
|
||||
api_info = response.json()
|
||||
|
||||
for resource in api_info["resources"]:
|
||||
if resource["@type"] == "PackageBaseAddress/3.0.0":
|
||||
endpoint = resource["@id"]
|
||||
endpoint = next(
|
||||
r["@id"] for r in api_info["resources"] if r["@type"] == "PackageBaseAddress/3.0.0"
|
||||
)
|
||||
|
||||
ARCH_DICT = {"32": "win32", "64": "win_amd64", "ARM64": "win_arm64"}
|
||||
PACKAGE_DICT = {"32": "pythonx86", "64": "python", "ARM64": "pythonarm64"}
|
||||
|
||||
@@ -83,7 +83,7 @@ def github_api_request(path: str, *, max_retries: int = 3) -> dict[str, Any]:
|
||||
|
||||
if retry_count == max_retries - 1:
|
||||
print(f"GitHub API request failed (Network error: {e}). Check network connection.")
|
||||
raise e
|
||||
raise
|
||||
|
||||
# Should never be reached but to keep the type checker happy
|
||||
msg = "Unexpected execution path in github_api_request"
|
||||
|
||||
@@ -546,9 +546,14 @@ class OCIContainer:
|
||||
else:
|
||||
output_io = sys.stdout.buffer
|
||||
|
||||
while True:
|
||||
return_code = None
|
||||
while return_code is None:
|
||||
line = self.bash_stdout.readline()
|
||||
|
||||
if not line:
|
||||
msg = "Failed to read the return code, the container shell has exited"
|
||||
raise RuntimeError(msg)
|
||||
|
||||
if line.endswith(bytes(end_of_message, encoding="utf8") + b"\n"):
|
||||
# fmt: off
|
||||
footer_offset = (
|
||||
@@ -563,7 +568,6 @@ class OCIContainer:
|
||||
# add the last line to output, without the footer
|
||||
output_io.write(line[0:footer_offset])
|
||||
output_io.flush()
|
||||
break
|
||||
else:
|
||||
output_io.write(line)
|
||||
output_io.flush()
|
||||
|
||||
@@ -222,12 +222,6 @@ def setup_target_python(config: PythonConfiguration, build_path: Path) -> Path:
|
||||
python_dir = build_path / "python"
|
||||
python_dir.mkdir()
|
||||
shutil.unpack_archive(python_tgz, python_dir)
|
||||
|
||||
# Work around https://github.com/python/cpython/issues/138800. This can be removed
|
||||
# once we've updated to Python versions that include the fix.
|
||||
pc_path = python_dir / f"prefix/lib/pkgconfig/python-{config.version}.pc"
|
||||
pc_path.write_text(pc_path.read_text().replace("$(BLDLIBRARY)", f"-lpython{config.version}"))
|
||||
|
||||
return python_dir
|
||||
|
||||
|
||||
|
||||
@@ -540,7 +540,7 @@ def build(options: Options, tmp_path: Path) -> None:
|
||||
f"that is compatible with {config.identifier}. "
|
||||
"Skipping build step..."
|
||||
)
|
||||
test_wheel = compatible_wheel
|
||||
repaired_wheel = compatible_wheel
|
||||
else:
|
||||
if build_options.before_build:
|
||||
log.step("Running before_build...")
|
||||
@@ -632,8 +632,6 @@ def build(options: Options, tmp_path: Path) -> None:
|
||||
|
||||
run_audit(tmp_dir=tmp_path, build_options=build_options, wheel=repaired_wheel)
|
||||
|
||||
test_wheel = repaired_wheel
|
||||
|
||||
if build_options.test_command and build_options.test_selector(config.identifier):
|
||||
if not config.is_simulator:
|
||||
log.step("Skipping tests on non-simulator SDK")
|
||||
@@ -693,7 +691,7 @@ def build(options: Options, tmp_path: Path) -> None:
|
||||
platform_tag,
|
||||
"--target",
|
||||
testbed_path / "iOSTestbed" / "app_packages",
|
||||
f"{test_wheel}{build_options.test_extras}",
|
||||
f"{repaired_wheel}{build_options.test_extras}",
|
||||
*build_options.test_requires,
|
||||
env=test_env,
|
||||
)
|
||||
|
||||
@@ -473,7 +473,7 @@ def build(options: Options, tmp_path: Path) -> None:
|
||||
print(
|
||||
f"\nFound previously built wheel {compatible_wheel.name}, that's compatible with {config.identifier}. Skipping build step..."
|
||||
)
|
||||
built_wheel = compatible_wheel
|
||||
repaired_wheel = compatible_wheel
|
||||
else:
|
||||
if build_options.before_build:
|
||||
log.step("Running before_build...")
|
||||
|
||||
@@ -60,6 +60,8 @@ class Analyzer(ast.NodeVisitor):
|
||||
case ast.keyword(arg="python_requires", value=ast.Constant(value=str() as version)):
|
||||
if unnested or name_main_unnested:
|
||||
self.requires_python = version
|
||||
case _:
|
||||
pass
|
||||
|
||||
|
||||
def setup_py_python_requires(content: str) -> str | None:
|
||||
@@ -68,7 +70,7 @@ def setup_py_python_requires(content: str) -> str | None:
|
||||
analyzer = Analyzer()
|
||||
analyzer.visit(tree)
|
||||
return analyzer.requires_python or None
|
||||
except Exception: # pylint: disable=broad-except
|
||||
except Exception: # noqa: BLE001
|
||||
return None
|
||||
|
||||
|
||||
|
||||
@@ -153,15 +153,15 @@ python_configurations = [
|
||||
{ identifier = "cp312-macosx_x86_64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.10/python-3.12.10-macos11.pkg", sha256 = "8373e58da4ea146b3eb1c1f9834f19a319440b6b679b06050b1f9ee3237aa8e4" },
|
||||
{ identifier = "cp312-macosx_arm64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.10/python-3.12.10-macos11.pkg", sha256 = "8373e58da4ea146b3eb1c1f9834f19a319440b6b679b06050b1f9ee3237aa8e4" },
|
||||
{ identifier = "cp312-macosx_universal2", version = "3.12", url = "https://www.python.org/ftp/python/3.12.10/python-3.12.10-macos11.pkg", sha256 = "8373e58da4ea146b3eb1c1f9834f19a319440b6b679b06050b1f9ee3237aa8e4" },
|
||||
{ identifier = "cp313-macosx_x86_64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.14/python-3.13.14-macos11.pkg", sha256 = "8e58affb218c155a1dfdc27b291f817129669f8760e7a297adb2e4439ba5d2e8" },
|
||||
{ identifier = "cp313-macosx_arm64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.14/python-3.13.14-macos11.pkg", sha256 = "8e58affb218c155a1dfdc27b291f817129669f8760e7a297adb2e4439ba5d2e8" },
|
||||
{ identifier = "cp313-macosx_universal2", version = "3.13", url = "https://www.python.org/ftp/python/3.13.14/python-3.13.14-macos11.pkg", sha256 = "8e58affb218c155a1dfdc27b291f817129669f8760e7a297adb2e4439ba5d2e8" },
|
||||
{ identifier = "cp314-macosx_x86_64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.6/python-3.14.6-macos11.pkg", sha256 = "d3c9fff52214847e4fab03e9eaf53dd2a8e51e3534aa0b61f201b749f86bef28" },
|
||||
{ identifier = "cp314-macosx_arm64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.6/python-3.14.6-macos11.pkg", sha256 = "d3c9fff52214847e4fab03e9eaf53dd2a8e51e3534aa0b61f201b749f86bef28" },
|
||||
{ identifier = "cp314-macosx_universal2", version = "3.14", url = "https://www.python.org/ftp/python/3.14.6/python-3.14.6-macos11.pkg", sha256 = "d3c9fff52214847e4fab03e9eaf53dd2a8e51e3534aa0b61f201b749f86bef28" },
|
||||
{ identifier = "cp314t-macosx_x86_64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.6/python-3.14.6-macos11.pkg", sha256 = "d3c9fff52214847e4fab03e9eaf53dd2a8e51e3534aa0b61f201b749f86bef28" },
|
||||
{ identifier = "cp314t-macosx_arm64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.6/python-3.14.6-macos11.pkg", sha256 = "d3c9fff52214847e4fab03e9eaf53dd2a8e51e3534aa0b61f201b749f86bef28" },
|
||||
{ identifier = "cp314t-macosx_universal2", version = "3.14", url = "https://www.python.org/ftp/python/3.14.6/python-3.14.6-macos11.pkg", sha256 = "d3c9fff52214847e4fab03e9eaf53dd2a8e51e3534aa0b61f201b749f86bef28" },
|
||||
{ identifier = "cp313-macosx_x86_64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.15/python-3.13.15-macos11.pkg", sha256 = "3b7eaf7f29825f796e8267024435540ddf1f17fc9a97ad58095daa7a75bfdcd3" },
|
||||
{ identifier = "cp313-macosx_arm64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.15/python-3.13.15-macos11.pkg", sha256 = "3b7eaf7f29825f796e8267024435540ddf1f17fc9a97ad58095daa7a75bfdcd3" },
|
||||
{ identifier = "cp313-macosx_universal2", version = "3.13", url = "https://www.python.org/ftp/python/3.13.15/python-3.13.15-macos11.pkg", sha256 = "3b7eaf7f29825f796e8267024435540ddf1f17fc9a97ad58095daa7a75bfdcd3" },
|
||||
{ identifier = "cp314-macosx_x86_64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.7/python-3.14.7-macos11.pkg", sha256 = "70c5239ad2d62925d2947e46921d0ddd3d35be3d2f0a2d50db33da507dbcb419" },
|
||||
{ identifier = "cp314-macosx_arm64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.7/python-3.14.7-macos11.pkg", sha256 = "70c5239ad2d62925d2947e46921d0ddd3d35be3d2f0a2d50db33da507dbcb419" },
|
||||
{ identifier = "cp314-macosx_universal2", version = "3.14", url = "https://www.python.org/ftp/python/3.14.7/python-3.14.7-macos11.pkg", sha256 = "70c5239ad2d62925d2947e46921d0ddd3d35be3d2f0a2d50db33da507dbcb419" },
|
||||
{ identifier = "cp314t-macosx_x86_64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.7/python-3.14.7-macos11.pkg", sha256 = "70c5239ad2d62925d2947e46921d0ddd3d35be3d2f0a2d50db33da507dbcb419" },
|
||||
{ identifier = "cp314t-macosx_arm64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.7/python-3.14.7-macos11.pkg", sha256 = "70c5239ad2d62925d2947e46921d0ddd3d35be3d2f0a2d50db33da507dbcb419" },
|
||||
{ identifier = "cp314t-macosx_universal2", version = "3.14", url = "https://www.python.org/ftp/python/3.14.7/python-3.14.7-macos11.pkg", sha256 = "70c5239ad2d62925d2947e46921d0ddd3d35be3d2f0a2d50db33da507dbcb419" },
|
||||
{ identifier = "cp315-macosx_x86_64", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc1-macos11.pkg", sha256 = "57e0b1095f5dda52a8ff8b3b73140a52dfb3b76bdcf9e0284f2dbe10f7ee92ea" },
|
||||
{ identifier = "cp315-macosx_arm64", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc1-macos11.pkg", sha256 = "57e0b1095f5dda52a8ff8b3b73140a52dfb3b76bdcf9e0284f2dbe10f7ee92ea" },
|
||||
{ identifier = "cp315-macosx_universal2", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc1-macos11.pkg", sha256 = "57e0b1095f5dda52a8ff8b3b73140a52dfb3b76bdcf9e0284f2dbe10f7ee92ea" },
|
||||
@@ -188,12 +188,12 @@ python_configurations = [
|
||||
{ identifier = "cp311-win_amd64", version = "3.11.9" },
|
||||
{ identifier = "cp312-win32", version = "3.12.10" },
|
||||
{ identifier = "cp312-win_amd64", version = "3.12.10" },
|
||||
{ identifier = "cp313-win32", version = "3.13.14" },
|
||||
{ identifier = "cp313-win_amd64", version = "3.13.14" },
|
||||
{ identifier = "cp314-win32", version = "3.14.6" },
|
||||
{ identifier = "cp314t-win32", version = "3.14.6" },
|
||||
{ identifier = "cp314-win_amd64", version = "3.14.6" },
|
||||
{ identifier = "cp314t-win_amd64", version = "3.14.6" },
|
||||
{ identifier = "cp313-win32", version = "3.13.15" },
|
||||
{ identifier = "cp313-win_amd64", version = "3.13.15" },
|
||||
{ identifier = "cp314-win32", version = "3.14.7" },
|
||||
{ identifier = "cp314t-win32", version = "3.14.7" },
|
||||
{ identifier = "cp314-win_amd64", version = "3.14.7" },
|
||||
{ identifier = "cp314t-win_amd64", version = "3.14.7" },
|
||||
{ identifier = "cp315-win32", version = "3.15.0-rc1" },
|
||||
{ identifier = "cp315t-win32", version = "3.15.0-rc1" },
|
||||
{ identifier = "cp315-win_amd64", version = "3.15.0-rc1" },
|
||||
@@ -202,9 +202,9 @@ python_configurations = [
|
||||
{ identifier = "cp310-win_arm64", version = "3.10.11" },
|
||||
{ identifier = "cp311-win_arm64", version = "3.11.9" },
|
||||
{ identifier = "cp312-win_arm64", version = "3.12.10" },
|
||||
{ identifier = "cp313-win_arm64", version = "3.13.14" },
|
||||
{ identifier = "cp314-win_arm64", version = "3.14.6" },
|
||||
{ identifier = "cp314t-win_arm64", version = "3.14.6" },
|
||||
{ identifier = "cp313-win_arm64", version = "3.13.15" },
|
||||
{ identifier = "cp314-win_arm64", version = "3.14.7" },
|
||||
{ identifier = "cp314t-win_arm64", version = "3.14.7" },
|
||||
{ identifier = "cp315-win_arm64", version = "3.15.0-rc1" },
|
||||
{ identifier = "cp315t-win_arm64", version = "3.15.0-rc1" },
|
||||
{ identifier = "pp39-win_amd64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-win64.zip", sha256 = "06ec12a5e964dc0ad33e6f380185a4d295178dce6d6df512f508e7aee00a1323" },
|
||||
@@ -217,16 +217,16 @@ python_configurations = [
|
||||
python_configurations = [
|
||||
{ identifier = "cp312-pyodide_wasm32", version = "3.12", default_pyodide_version = "0.27.7", node_version = "v22", sha256 = "0c2e7db42efa5d1dac38b50f8b3d659a1e3885d0a233494831b8206281307d52" },
|
||||
{ identifier = "cp313-pyodide_wasm32", version = "3.13", default_pyodide_version = "0.29.4", node_version = "v22", sha256 = "a29fc4a076408a18fc29eb4b280f80c6dddc95c19514c874c29e590d0931c02a" },
|
||||
{ identifier = "cp314-pyodide_wasm32", version = "3.14", default_pyodide_version = "314.0.4", node_version = "v24", sha256 = "257ceae085eaa1423c2ab49794d7a72bf36ddad475d126fa929791b9a8ab7289" },
|
||||
{ identifier = "cp314-pyodide_wasm32", version = "3.14", default_pyodide_version = "314.0.5", node_version = "v24", sha256 = "77bde42a27695e28525fe19933c2ff13ba63598c536060fa60143726a284acdd" },
|
||||
{ identifier = "cp315-pyodide_wasm32", version = "3.15", default_pyodide_version = "315.0.0a2", node_version = "v24", sha256 = "d7c0d6ddf0fce807668d7413d0e0f20fbc7922128ba8361ed71d9cff048cb96a" },
|
||||
]
|
||||
|
||||
[android]
|
||||
python_configurations = [
|
||||
{ identifier = "cp313-android_arm64_v8a", version = "3.13", url = "https://repo.maven.apache.org/maven2/com/chaquo/python/python/3.13.14/python-3.13.14-aarch64-linux-android.tar.gz", sha256 = "2541c4fa77b6543504c97fa90a71c745225b5800fe25bc8c73a6516b594d0cbc" },
|
||||
{ identifier = "cp313-android_x86_64", version = "3.13", url = "https://repo.maven.apache.org/maven2/com/chaquo/python/python/3.13.14/python-3.13.14-x86_64-linux-android.tar.gz", sha256 = "9d96f7e077677b6651b2e756034ed41ab4479f5f8bf3168a814f458bc2ac137e" },
|
||||
{ identifier = "cp314-android_arm64_v8a", version = "3.14", url = "https://www.python.org/ftp/python/3.14.6/python-3.14.6-aarch64-linux-android.tar.gz", sha256 = "38bbe77d3167b5cd554e03b1021324926f09f3825202b065951dd7638e9c37e5" },
|
||||
{ identifier = "cp314-android_x86_64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.6/python-3.14.6-x86_64-linux-android.tar.gz", sha256 = "e04eb26607627e68d148f89de793372f54a345c91b13628567f24abcdd3bfa3e" },
|
||||
{ identifier = "cp313-android_arm64_v8a", version = "3.13", url = "https://repo.maven.apache.org/maven2/com/chaquo/python/python/3.13.15/python-3.13.15-aarch64-linux-android.tar.gz", sha256 = "a51d1e153f68f1c40f612a5431e9f79870d993da795173b3d27564e42b056271" },
|
||||
{ identifier = "cp313-android_x86_64", version = "3.13", url = "https://repo.maven.apache.org/maven2/com/chaquo/python/python/3.13.15/python-3.13.15-x86_64-linux-android.tar.gz", sha256 = "2096ecd6e180274ad1637cf140f7d6c2a160fe5ef9bfb47fd318e3d963f2d929" },
|
||||
{ identifier = "cp314-android_arm64_v8a", version = "3.14", url = "https://www.python.org/ftp/python/3.14.7/python-3.14.7-aarch64-linux-android.tar.gz", sha256 = "6d50cc3aa66e414a439594089bcdfb5f1264358155c70c1f00471c24cfb477fb" },
|
||||
{ identifier = "cp314-android_x86_64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.7/python-3.14.7-x86_64-linux-android.tar.gz", sha256 = "2c16ce2359565cd8c24f86cfb75630768ba6607e732946b294b969797f583b60" },
|
||||
{ identifier = "cp315-android_arm64_v8a", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc1-aarch64-linux-android.tar.gz", sha256 = "7d6fb28a69368841656f919a08141b0e3720837ac67987388037ee9d2a5c5492" },
|
||||
{ identifier = "cp315-android_x86_64", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc1-x86_64-linux-android.tar.gz", sha256 = "f048f5c60b538efc64e4c26399a0a21202ce430949d5b2c10369d624548a5dc3" },
|
||||
]
|
||||
|
||||
@@ -17,7 +17,7 @@ cattrs==26.1.0
|
||||
# pyodide-lock
|
||||
certifi==2026.7.22
|
||||
# via requests
|
||||
charset-normalizer==3.4.9
|
||||
charset-normalizer==3.5.1
|
||||
# via requests
|
||||
click==8.1.8
|
||||
# via
|
||||
@@ -26,11 +26,11 @@ click==8.1.8
|
||||
# pyodide-cli
|
||||
distlib==0.4.3
|
||||
# via virtualenv
|
||||
filelock==3.32.2
|
||||
filelock==3.32.4
|
||||
# via
|
||||
# python-discovery
|
||||
# virtualenv
|
||||
idna==3.18
|
||||
idna==3.19
|
||||
# via requests
|
||||
leb128==1.0.9
|
||||
# via auditwheel-emscripten
|
||||
@@ -46,11 +46,11 @@ packaging==26.3
|
||||
# wheel
|
||||
pip==26.2.1
|
||||
# via -r .nox/update_constraints/tmp/constraints-pyodide.in
|
||||
platformdirs==4.11.0
|
||||
platformdirs==4.11.3
|
||||
# via
|
||||
# pyodide-build
|
||||
# virtualenv
|
||||
pygments==2.20.0
|
||||
pygments==2.21.0
|
||||
# via rich
|
||||
pyodide-build==0.39.0
|
||||
# via -r .nox/update_constraints/tmp/constraints-pyodide.in
|
||||
@@ -62,7 +62,7 @@ pyodide-lock==0.2.0
|
||||
# via pyodide-build
|
||||
pyproject-hooks==1.2.0
|
||||
# via build
|
||||
python-discovery==1.5.1
|
||||
python-discovery==1.5.2
|
||||
# via virtualenv
|
||||
requests==2.34.2
|
||||
# via pyodide-build
|
||||
@@ -76,11 +76,11 @@ typing-extensions==4.16.0
|
||||
# via cattrs
|
||||
urllib3==2.7.0
|
||||
# via requests
|
||||
virtualenv==21.7.1
|
||||
virtualenv==21.7.4
|
||||
# via
|
||||
# build
|
||||
# pyodide-build
|
||||
wheel==0.47.0
|
||||
wheel==0.48.0
|
||||
# via
|
||||
# auditwheel-emscripten
|
||||
# pyodide-build
|
||||
|
||||
@@ -17,7 +17,7 @@ cattrs==26.1.0
|
||||
# pyodide-lock
|
||||
certifi==2026.7.22
|
||||
# via requests
|
||||
charset-normalizer==3.4.9
|
||||
charset-normalizer==3.5.1
|
||||
# via requests
|
||||
click==8.1.8
|
||||
# via
|
||||
@@ -26,11 +26,11 @@ click==8.1.8
|
||||
# pyodide-cli
|
||||
distlib==0.4.3
|
||||
# via virtualenv
|
||||
filelock==3.32.2
|
||||
filelock==3.32.4
|
||||
# via
|
||||
# python-discovery
|
||||
# virtualenv
|
||||
idna==3.18
|
||||
idna==3.19
|
||||
# via requests
|
||||
leb128==1.0.9
|
||||
# via auditwheel-emscripten
|
||||
@@ -46,11 +46,11 @@ packaging==26.3
|
||||
# wheel
|
||||
pip==26.2.1
|
||||
# via -r .nox/update_constraints/tmp/constraints-pyodide.in
|
||||
platformdirs==4.11.0
|
||||
platformdirs==4.11.3
|
||||
# via
|
||||
# pyodide-build
|
||||
# virtualenv
|
||||
pygments==2.20.0
|
||||
pygments==2.21.0
|
||||
# via rich
|
||||
pyodide-build==0.39.0
|
||||
# via -r .nox/update_constraints/tmp/constraints-pyodide.in
|
||||
@@ -62,7 +62,7 @@ pyodide-lock==0.2.0
|
||||
# via pyodide-build
|
||||
pyproject-hooks==1.2.0
|
||||
# via build
|
||||
python-discovery==1.5.1
|
||||
python-discovery==1.5.2
|
||||
# via virtualenv
|
||||
requests==2.34.2
|
||||
# via pyodide-build
|
||||
@@ -76,11 +76,11 @@ typing-extensions==4.16.0
|
||||
# via cattrs
|
||||
urllib3==2.7.0
|
||||
# via requests
|
||||
virtualenv==21.7.1
|
||||
virtualenv==21.7.4
|
||||
# via
|
||||
# build
|
||||
# pyodide-build
|
||||
wheel==0.47.0
|
||||
wheel==0.48.0
|
||||
# via
|
||||
# auditwheel-emscripten
|
||||
# pyodide-build
|
||||
|
||||
@@ -17,7 +17,7 @@ cattrs==26.1.0
|
||||
# pyodide-lock
|
||||
certifi==2026.7.22
|
||||
# via requests
|
||||
charset-normalizer==3.4.9
|
||||
charset-normalizer==3.5.1
|
||||
# via requests
|
||||
click==8.1.8
|
||||
# via
|
||||
@@ -26,11 +26,11 @@ click==8.1.8
|
||||
# pyodide-cli
|
||||
distlib==0.4.3
|
||||
# via virtualenv
|
||||
filelock==3.32.2
|
||||
filelock==3.32.4
|
||||
# via
|
||||
# python-discovery
|
||||
# virtualenv
|
||||
idna==3.18
|
||||
idna==3.19
|
||||
# via requests
|
||||
leb128==1.0.9
|
||||
# via auditwheel-emscripten
|
||||
@@ -46,11 +46,11 @@ packaging==26.3
|
||||
# wheel
|
||||
pip==26.2.1
|
||||
# via -r .nox/update_constraints/tmp/constraints-pyodide.in
|
||||
platformdirs==4.11.0
|
||||
platformdirs==4.11.3
|
||||
# via
|
||||
# pyodide-build
|
||||
# virtualenv
|
||||
pygments==2.20.0
|
||||
pygments==2.21.0
|
||||
# via rich
|
||||
pyodide-build==0.39.0
|
||||
# via -r .nox/update_constraints/tmp/constraints-pyodide.in
|
||||
@@ -62,7 +62,7 @@ pyodide-lock==0.2.0
|
||||
# via pyodide-build
|
||||
pyproject-hooks==1.2.0
|
||||
# via build
|
||||
python-discovery==1.5.1
|
||||
python-discovery==1.5.2
|
||||
# via virtualenv
|
||||
requests==2.34.2
|
||||
# via pyodide-build
|
||||
@@ -76,11 +76,11 @@ typing-extensions==4.16.0
|
||||
# via cattrs
|
||||
urllib3==2.7.0
|
||||
# via requests
|
||||
virtualenv==21.7.1
|
||||
virtualenv==21.7.4
|
||||
# via
|
||||
# build
|
||||
# pyodide-build
|
||||
wheel==0.47.0
|
||||
wheel==0.48.0
|
||||
# via
|
||||
# auditwheel-emscripten
|
||||
# pyodide-build
|
||||
|
||||
@@ -17,7 +17,7 @@ cattrs==26.1.0
|
||||
# pyodide-lock
|
||||
certifi==2026.7.22
|
||||
# via requests
|
||||
charset-normalizer==3.4.9
|
||||
charset-normalizer==3.5.1
|
||||
# via requests
|
||||
click==8.1.8
|
||||
# via
|
||||
@@ -26,11 +26,11 @@ click==8.1.8
|
||||
# pyodide-cli
|
||||
distlib==0.4.3
|
||||
# via virtualenv
|
||||
filelock==3.32.2
|
||||
filelock==3.32.4
|
||||
# via
|
||||
# python-discovery
|
||||
# virtualenv
|
||||
idna==3.18
|
||||
idna==3.19
|
||||
# via requests
|
||||
leb128==1.0.9
|
||||
# via auditwheel-emscripten
|
||||
@@ -46,11 +46,11 @@ packaging==26.3
|
||||
# wheel
|
||||
pip==26.2.1
|
||||
# via -r .nox/update_constraints/tmp/constraints-pyodide.in
|
||||
platformdirs==4.11.0
|
||||
platformdirs==4.11.3
|
||||
# via
|
||||
# pyodide-build
|
||||
# virtualenv
|
||||
pygments==2.20.0
|
||||
pygments==2.21.0
|
||||
# via rich
|
||||
pyodide-build==0.39.0
|
||||
# via -r .nox/update_constraints/tmp/constraints-pyodide.in
|
||||
@@ -62,7 +62,7 @@ pyodide-lock==0.2.0
|
||||
# via pyodide-build
|
||||
pyproject-hooks==1.2.0
|
||||
# via build
|
||||
python-discovery==1.5.1
|
||||
python-discovery==1.5.2
|
||||
# via virtualenv
|
||||
requests==2.34.2
|
||||
# via pyodide-build
|
||||
@@ -76,11 +76,11 @@ typing-extensions==4.16.0
|
||||
# via cattrs
|
||||
urllib3==2.7.0
|
||||
# via requests
|
||||
virtualenv==21.7.1
|
||||
virtualenv==21.7.4
|
||||
# via
|
||||
# build
|
||||
# pyodide-build
|
||||
wheel==0.47.0
|
||||
wheel==0.48.0
|
||||
# via
|
||||
# auditwheel-emscripten
|
||||
# pyodide-build
|
||||
|
||||
@@ -10,7 +10,7 @@ attrs==26.1.0
|
||||
# via
|
||||
# cattrs
|
||||
# requests-cache
|
||||
auditwheel==6.7.0
|
||||
auditwheel==6.8.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
build==1.5.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
@@ -18,7 +18,7 @@ cattrs==26.1.0
|
||||
# via requests-cache
|
||||
certifi==2026.7.22
|
||||
# via requests
|
||||
charset-normalizer==3.4.9
|
||||
charset-normalizer==3.5.1
|
||||
# via requests
|
||||
delocate==0.13.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
@@ -28,11 +28,11 @@ distlib==0.4.3
|
||||
# via virtualenv
|
||||
exceptiongroup==1.3.1
|
||||
# via cattrs
|
||||
filelock==3.32.2
|
||||
filelock==3.32.4
|
||||
# via
|
||||
# python-discovery
|
||||
# virtualenv
|
||||
idna==3.18
|
||||
idna==3.19
|
||||
# via
|
||||
# requests
|
||||
# url-normalize
|
||||
@@ -52,7 +52,7 @@ packaging==26.3
|
||||
# auditwheel
|
||||
# build
|
||||
# delocate
|
||||
patchelf==0.17.2.4
|
||||
patchelf==0.19.1.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
pefile==2024.8.26
|
||||
# via
|
||||
@@ -62,7 +62,7 @@ pip==26.2.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
pkgconf==3.0.1.post0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
platformdirs==4.11.0
|
||||
platformdirs==4.11.3
|
||||
# via
|
||||
# requests-cache
|
||||
# virtualenv
|
||||
@@ -70,11 +70,11 @@ pyelftools==0.33
|
||||
# via
|
||||
# abi3audit
|
||||
# auditwheel
|
||||
pygments==2.20.0
|
||||
pygments==2.21.0
|
||||
# via rich
|
||||
pyproject-hooks==1.2.0
|
||||
# via build
|
||||
python-discovery==1.5.1
|
||||
python-discovery==1.5.2
|
||||
# via virtualenv
|
||||
requests==2.34.2
|
||||
# via
|
||||
@@ -98,7 +98,7 @@ urllib3==2.7.0
|
||||
# via
|
||||
# requests
|
||||
# requests-cache
|
||||
virtualenv==21.7.1
|
||||
virtualenv==21.7.4
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
zipp==4.1.0
|
||||
# via importlib-metadata
|
||||
|
||||
@@ -10,7 +10,7 @@ attrs==26.1.0
|
||||
# via
|
||||
# cattrs
|
||||
# requests-cache
|
||||
auditwheel==6.7.0
|
||||
auditwheel==6.8.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
build==1.5.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
@@ -18,7 +18,7 @@ cattrs==26.1.0
|
||||
# via requests-cache
|
||||
certifi==2026.7.22
|
||||
# via requests
|
||||
charset-normalizer==3.4.9
|
||||
charset-normalizer==3.5.1
|
||||
# via requests
|
||||
delocate==0.13.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
@@ -26,11 +26,11 @@ delvewheel==1.13.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
distlib==0.4.3
|
||||
# via virtualenv
|
||||
filelock==3.32.2
|
||||
filelock==3.32.4
|
||||
# via
|
||||
# python-discovery
|
||||
# virtualenv
|
||||
idna==3.18
|
||||
idna==3.19
|
||||
# via
|
||||
# requests
|
||||
# url-normalize
|
||||
@@ -48,7 +48,7 @@ packaging==26.3
|
||||
# auditwheel
|
||||
# build
|
||||
# delocate
|
||||
patchelf==0.17.2.4
|
||||
patchelf==0.19.1.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
pefile==2024.8.26
|
||||
# via
|
||||
@@ -58,7 +58,7 @@ pip==26.2.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
pkgconf==3.0.1.post0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
platformdirs==4.11.0
|
||||
platformdirs==4.11.3
|
||||
# via
|
||||
# requests-cache
|
||||
# virtualenv
|
||||
@@ -66,11 +66,11 @@ pyelftools==0.33
|
||||
# via
|
||||
# abi3audit
|
||||
# auditwheel
|
||||
pygments==2.20.0
|
||||
pygments==2.21.0
|
||||
# via rich
|
||||
pyproject-hooks==1.2.0
|
||||
# via build
|
||||
python-discovery==1.5.1
|
||||
python-discovery==1.5.2
|
||||
# via virtualenv
|
||||
requests==2.34.2
|
||||
# via
|
||||
@@ -90,5 +90,5 @@ urllib3==2.7.0
|
||||
# via
|
||||
# requests
|
||||
# requests-cache
|
||||
virtualenv==21.7.1
|
||||
virtualenv==21.7.4
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -10,7 +10,7 @@ attrs==26.1.0
|
||||
# via
|
||||
# cattrs
|
||||
# requests-cache
|
||||
auditwheel==6.7.0
|
||||
auditwheel==6.8.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
build==1.5.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
@@ -18,7 +18,7 @@ cattrs==26.1.0
|
||||
# via requests-cache
|
||||
certifi==2026.7.22
|
||||
# via requests
|
||||
charset-normalizer==3.4.9
|
||||
charset-normalizer==3.5.1
|
||||
# via requests
|
||||
delocate==0.13.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
@@ -26,12 +26,12 @@ delvewheel==1.13.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
distlib==0.4.3
|
||||
# via virtualenv
|
||||
filelock==3.32.2; implementation_name != "graalpy"
|
||||
filelock==3.32.4; implementation_name != "graalpy"
|
||||
filelock==3.29.7; implementation_name == "graalpy"
|
||||
# via
|
||||
# python-discovery
|
||||
# virtualenv
|
||||
idna==3.18
|
||||
idna==3.19
|
||||
# via
|
||||
# requests
|
||||
# url-normalize
|
||||
@@ -49,7 +49,7 @@ packaging==26.3
|
||||
# auditwheel
|
||||
# build
|
||||
# delocate
|
||||
patchelf==0.17.2.4
|
||||
patchelf==0.19.1.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
pefile==2024.8.26
|
||||
# via
|
||||
@@ -61,7 +61,7 @@ pip==26.0.1; implementation_name == "graalpy" and platform_system == "Windows"
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
pkgconf==3.0.1.post0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
platformdirs==4.11.0
|
||||
platformdirs==4.11.3
|
||||
# via
|
||||
# requests-cache
|
||||
# virtualenv
|
||||
@@ -69,11 +69,11 @@ pyelftools==0.33
|
||||
# via
|
||||
# abi3audit
|
||||
# auditwheel
|
||||
pygments==2.20.0
|
||||
pygments==2.21.0
|
||||
# via rich
|
||||
pyproject-hooks==1.2.0
|
||||
# via build
|
||||
python-discovery==1.5.1
|
||||
python-discovery==1.5.2
|
||||
# via virtualenv
|
||||
requests==2.34.2
|
||||
# via
|
||||
@@ -93,5 +93,5 @@ urllib3==2.7.0
|
||||
# via
|
||||
# requests
|
||||
# requests-cache
|
||||
virtualenv==21.7.1
|
||||
virtualenv==21.7.4
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -10,7 +10,7 @@ attrs==26.1.0
|
||||
# via
|
||||
# cattrs
|
||||
# requests-cache
|
||||
auditwheel==6.7.0
|
||||
auditwheel==6.8.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
build==1.5.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
@@ -18,7 +18,7 @@ cattrs==26.1.0
|
||||
# via requests-cache
|
||||
certifi==2026.7.22
|
||||
# via requests
|
||||
charset-normalizer==3.4.9
|
||||
charset-normalizer==3.5.1
|
||||
# via requests
|
||||
delocate==0.13.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
@@ -26,11 +26,11 @@ delvewheel==1.13.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
distlib==0.4.3
|
||||
# via virtualenv
|
||||
filelock==3.32.2
|
||||
filelock==3.32.4
|
||||
# via
|
||||
# python-discovery
|
||||
# virtualenv
|
||||
idna==3.18
|
||||
idna==3.19
|
||||
# via
|
||||
# requests
|
||||
# url-normalize
|
||||
@@ -48,7 +48,7 @@ packaging==26.3
|
||||
# auditwheel
|
||||
# build
|
||||
# delocate
|
||||
patchelf==0.17.2.4
|
||||
patchelf==0.19.1.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
pefile==2024.8.26
|
||||
# via
|
||||
@@ -58,7 +58,7 @@ pip==26.2.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
pkgconf==3.0.1.post0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
platformdirs==4.11.0
|
||||
platformdirs==4.11.3
|
||||
# via
|
||||
# requests-cache
|
||||
# virtualenv
|
||||
@@ -66,11 +66,11 @@ pyelftools==0.33
|
||||
# via
|
||||
# abi3audit
|
||||
# auditwheel
|
||||
pygments==2.20.0
|
||||
pygments==2.21.0
|
||||
# via rich
|
||||
pyproject-hooks==1.2.0
|
||||
# via build
|
||||
python-discovery==1.5.1
|
||||
python-discovery==1.5.2
|
||||
# via virtualenv
|
||||
requests==2.34.2
|
||||
# via
|
||||
@@ -90,5 +90,5 @@ urllib3==2.7.0
|
||||
# via
|
||||
# requests
|
||||
# requests-cache
|
||||
virtualenv==21.7.1
|
||||
virtualenv==21.7.4
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -10,7 +10,7 @@ attrs==26.1.0
|
||||
# via
|
||||
# cattrs
|
||||
# requests-cache
|
||||
auditwheel==6.7.0
|
||||
auditwheel==6.8.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
build==1.5.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
@@ -18,7 +18,7 @@ cattrs==26.1.0
|
||||
# via requests-cache
|
||||
certifi==2026.7.22
|
||||
# via requests
|
||||
charset-normalizer==3.4.9
|
||||
charset-normalizer==3.5.1
|
||||
# via requests
|
||||
delocate==0.13.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
@@ -26,11 +26,11 @@ delvewheel==1.13.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
distlib==0.4.3
|
||||
# via virtualenv
|
||||
filelock==3.32.2
|
||||
filelock==3.32.4
|
||||
# via
|
||||
# python-discovery
|
||||
# virtualenv
|
||||
idna==3.18
|
||||
idna==3.19
|
||||
# via
|
||||
# requests
|
||||
# url-normalize
|
||||
@@ -48,7 +48,7 @@ packaging==26.3
|
||||
# auditwheel
|
||||
# build
|
||||
# delocate
|
||||
patchelf==0.17.2.4
|
||||
patchelf==0.19.1.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
pefile==2024.8.26
|
||||
# via
|
||||
@@ -58,7 +58,7 @@ pip==26.2.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
pkgconf==3.0.1.post0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
platformdirs==4.11.0
|
||||
platformdirs==4.11.3
|
||||
# via
|
||||
# requests-cache
|
||||
# virtualenv
|
||||
@@ -66,11 +66,11 @@ pyelftools==0.33
|
||||
# via
|
||||
# abi3audit
|
||||
# auditwheel
|
||||
pygments==2.20.0
|
||||
pygments==2.21.0
|
||||
# via rich
|
||||
pyproject-hooks==1.2.0
|
||||
# via build
|
||||
python-discovery==1.5.1
|
||||
python-discovery==1.5.2
|
||||
# via virtualenv
|
||||
requests==2.34.2
|
||||
# via
|
||||
@@ -90,5 +90,5 @@ urllib3==2.7.0
|
||||
# via
|
||||
# requests
|
||||
# requests-cache
|
||||
virtualenv==21.7.1
|
||||
virtualenv==21.7.4
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -10,7 +10,7 @@ attrs==26.1.0
|
||||
# via
|
||||
# cattrs
|
||||
# requests-cache
|
||||
auditwheel==6.7.0
|
||||
auditwheel==6.8.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
build==1.5.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
@@ -18,7 +18,7 @@ cattrs==26.1.0
|
||||
# via requests-cache
|
||||
certifi==2026.7.22
|
||||
# via requests
|
||||
charset-normalizer==3.4.9
|
||||
charset-normalizer==3.5.1
|
||||
# via requests
|
||||
delocate==0.13.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
@@ -26,11 +26,11 @@ delvewheel==1.13.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
distlib==0.4.3
|
||||
# via virtualenv
|
||||
filelock==3.32.2
|
||||
filelock==3.32.4
|
||||
# via
|
||||
# python-discovery
|
||||
# virtualenv
|
||||
idna==3.18
|
||||
idna==3.19
|
||||
# via
|
||||
# requests
|
||||
# url-normalize
|
||||
@@ -48,7 +48,7 @@ packaging==26.3
|
||||
# auditwheel
|
||||
# build
|
||||
# delocate
|
||||
patchelf==0.17.2.4
|
||||
patchelf==0.19.1.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
pefile==2024.8.26
|
||||
# via
|
||||
@@ -58,7 +58,7 @@ pip==26.2.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
pkgconf==3.0.1.post0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
platformdirs==4.11.0
|
||||
platformdirs==4.11.3
|
||||
# via
|
||||
# requests-cache
|
||||
# virtualenv
|
||||
@@ -66,11 +66,11 @@ pyelftools==0.33
|
||||
# via
|
||||
# abi3audit
|
||||
# auditwheel
|
||||
pygments==2.20.0
|
||||
pygments==2.21.0
|
||||
# via rich
|
||||
pyproject-hooks==1.2.0
|
||||
# via build
|
||||
python-discovery==1.5.1
|
||||
python-discovery==1.5.2
|
||||
# via virtualenv
|
||||
requests==2.34.2
|
||||
# via
|
||||
@@ -90,5 +90,5 @@ urllib3==2.7.0
|
||||
# via
|
||||
# requests
|
||||
# requests-cache
|
||||
virtualenv==21.7.1
|
||||
virtualenv==21.7.4
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -18,7 +18,7 @@ cattrs==25.3.0
|
||||
# via requests-cache
|
||||
certifi==2026.7.22
|
||||
# via requests
|
||||
charset-normalizer==3.4.9
|
||||
charset-normalizer==3.5.1
|
||||
# via requests
|
||||
delocate==0.13.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
@@ -32,7 +32,7 @@ filelock==3.19.1
|
||||
# via
|
||||
# python-discovery
|
||||
# virtualenv
|
||||
idna==3.18
|
||||
idna==3.19
|
||||
# via
|
||||
# requests
|
||||
# url-normalize
|
||||
@@ -54,7 +54,7 @@ packaging==25.0
|
||||
# auditwheel
|
||||
# build
|
||||
# delocate
|
||||
patchelf==0.17.2.4
|
||||
patchelf==0.19.1.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
pefile==2024.8.26
|
||||
# via
|
||||
@@ -72,11 +72,11 @@ pyelftools==0.32
|
||||
# via
|
||||
# abi3audit
|
||||
# auditwheel
|
||||
pygments==2.20.0
|
||||
pygments==2.21.0
|
||||
# via rich
|
||||
pyproject-hooks==1.2.0
|
||||
# via build
|
||||
python-discovery==1.5.1
|
||||
python-discovery==1.5.2
|
||||
# via virtualenv
|
||||
requests==2.32.5
|
||||
# via
|
||||
@@ -100,7 +100,7 @@ urllib3==2.6.3
|
||||
# via
|
||||
# requests
|
||||
# requests-cache
|
||||
virtualenv==21.7.1
|
||||
virtualenv==21.7.4
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
zipp==3.23.1
|
||||
# via importlib-metadata
|
||||
|
||||
@@ -10,7 +10,7 @@ attrs==26.1.0
|
||||
# via
|
||||
# cattrs
|
||||
# requests-cache
|
||||
auditwheel==6.7.0
|
||||
auditwheel==6.8.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
build==1.5.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
@@ -18,7 +18,7 @@ cattrs==26.1.0
|
||||
# via requests-cache
|
||||
certifi==2026.7.22
|
||||
# via requests
|
||||
charset-normalizer==3.4.9
|
||||
charset-normalizer==3.5.1
|
||||
# via requests
|
||||
delocate==0.13.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
@@ -26,11 +26,11 @@ delvewheel==1.13.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
distlib==0.4.3
|
||||
# via virtualenv
|
||||
filelock==3.32.2
|
||||
filelock==3.32.4
|
||||
# via
|
||||
# python-discovery
|
||||
# virtualenv
|
||||
idna==3.18
|
||||
idna==3.19
|
||||
# via
|
||||
# requests
|
||||
# url-normalize
|
||||
@@ -48,7 +48,7 @@ packaging==26.3
|
||||
# auditwheel
|
||||
# build
|
||||
# delocate
|
||||
patchelf==0.17.2.4
|
||||
patchelf==0.19.1.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
pefile==2024.8.26
|
||||
# via
|
||||
@@ -58,7 +58,7 @@ pip==26.2.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
pkgconf==3.0.1.post0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
platformdirs==4.11.0
|
||||
platformdirs==4.11.3
|
||||
# via
|
||||
# requests-cache
|
||||
# virtualenv
|
||||
@@ -66,11 +66,11 @@ pyelftools==0.33
|
||||
# via
|
||||
# abi3audit
|
||||
# auditwheel
|
||||
pygments==2.20.0
|
||||
pygments==2.21.0
|
||||
# via rich
|
||||
pyproject-hooks==1.2.0
|
||||
# via build
|
||||
python-discovery==1.5.1
|
||||
python-discovery==1.5.2
|
||||
# via virtualenv
|
||||
requests==2.34.2
|
||||
# via
|
||||
@@ -90,5 +90,5 @@ urllib3==2.7.0
|
||||
# via
|
||||
# requests
|
||||
# requests-cache
|
||||
virtualenv==21.7.1
|
||||
virtualenv==21.7.4
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -1,54 +1,54 @@
|
||||
[x86_64]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64@sha256:c163a278006f45883c117b4166b93cdc7b574b62e58292ed9e52879579841d77 # 2026.08.04-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64@sha256:012f4a50472412f18bb2b450c1cce7158434cfae4ae878591c2748a13a30c2be # 2026.08.04-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_x86_64@sha256:db817cd4c670f1191d74db6a94a0b115954af78861db7da660de4e93ebf2984c # 2026.08.04-1
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64@sha256:f130bd3e3aebb39abcdec28a89f987f0d31b52d74bac5852318303698e9a5033 # 2026.08.04-1
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64@sha256:95440e0e72dd3a81dc8d2cf59a84d57af661456620f5bc821ff92048d0e54ff9 # 2026.08.15-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64@sha256:0c87ccb5996dab6c3b7612ee4fda7b80c4ab3c44a86c2541e4a872afdf4f131b # 2026.08.15-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_x86_64@sha256:266610f48ef368cca34f521813ef61ed99d396b782e528fd0b0f58aa67c2189c # 2026.08.15-1
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64@sha256:75327606c7666fc971bd9239c6b220fd205b4bb9563b588075164622609219ca # 2026.08.15-1
|
||||
|
||||
[i686]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686@sha256:abfc526a4f9d9692ed6d53b60ffd6be764aa7a4dc1d61522a1ce5ea64138aa53 # 2026.08.04-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_i686@sha256:605a71b7fa720562ad76147860e33d97b2a884ca9d5a454b2f7f353caec40ded # 2026.08.04-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_i686@sha256:82e74fcb11aa1d425260804292b8a25533f37eda280570b2441a465dc159351a # 2026.08.04-1
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686@sha256:2ccf31ab3685cf8952f2d9251f79a29c7ffcb663bbc58c10b2317a15a86ac96d # 2026.08.04-1
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686@sha256:2962468349f2e55378e16706fb1dfc36983ab376ed1bb942959c65376671b37e # 2026.08.15-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_i686@sha256:4458e9ec6af8588fe269d23adf2306231c15b949a9b0637a9c0943f80d6931d5 # 2026.08.15-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_i686@sha256:d3a55a555fc6ff7914238acfd73c0e56b63d9b21e6a064e1f92269f518bc265d # 2026.08.15-1
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686@sha256:8ca1be90979cb290909c1c945573ccdc7114505d66c563567ee6c78927fb215f # 2026.08.15-1
|
||||
|
||||
[aarch64]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64@sha256:5d366450eeff9abe09cc93db50fd2c9832bafaf473daa7a911d8b184424bbefd # 2026.08.04-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64@sha256:52e4da6e9348db7cd0b529a827623b62b7c1fe867ba515ae752fa13d41f7f46e # 2026.08.04-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_aarch64@sha256:86585a1adfa6cdb4e3aea2f5bf11d6fffa37acf17aa902605d7237c55d3c88ce # 2026.08.04-1
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64@sha256:1fa8dcacab5e13769abb36028f98bd2c0a1af4dbde492505f774d7f0ce01e87f # 2026.08.04-1
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64@sha256:b63ff749fee6f3f2a6b67ed3101a073db3211df1791da19e9acf96f43c0dd6ff # 2026.08.15-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64@sha256:561427136aabf3787bffb294b3515748241e0962d1527ae28bea1e076bfb9d99 # 2026.08.15-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_aarch64@sha256:691d9ffc1b3432c3ef12bcef756d10da38c10ef8022d6a92c18e781d6aac7aef # 2026.08.15-1
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64@sha256:cea133e28484a93e9c40fc661256e8f1ec69b2887d0b64acbfaf48f26bbab103 # 2026.08.15-1
|
||||
|
||||
[ppc64le]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le@sha256:405ac40dffd7a76b4864a185d0440c6449c855eaffd1a20b56af9e4cc15318a6 # 2026.08.04-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le@sha256:ad99a0b35b8820b0ccd1d117e23097da224df11c98f19e2783735d5b7e717526 # 2026.08.04-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_ppc64le@sha256:bc61f200bea02d2a507bb292d6210297bd12abc71fa1e8e1f05b1755495b8518 # 2026.08.04-1
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le@sha256:0acbe90fc63807d3ce52249d1d21e5625fe105aee7f3de60583b8485d82401c8 # 2026.08.04-1
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le@sha256:ea4e5065bef4bfd6514d0540a7a8e69a22e0bb1b8ffee093523e95b216a84134 # 2026.08.15-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le@sha256:dd8da6e6a692832be06ace33c08e1a92704472d84dc20f2b6069b026aa19d185 # 2026.08.15-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_ppc64le@sha256:f1a788008370c5b5a8937eed968bb13c7d70bb53d3dfae06e0d3059c4a107a6d # 2026.08.15-1
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le@sha256:d70f4708a377ba4a21eee38be20e35c757e911b5ca90df0fce002fd71a6df3a8 # 2026.08.15-1
|
||||
|
||||
[s390x]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_s390x@sha256:3797dba7137e416c67ca1f45222dd382a2bfdaee8c751e95a79503adf38071e7 # 2026.08.04-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x@sha256:43b1c58ab1a37f3bf45d65026c968be18f2a4dddd4f923291d1122b3e42380da # 2026.08.04-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_s390x@sha256:b9bba263ab1309ddd2b41560f8ea15138fdb31fa31daf5858878d00b19d57d77 # 2026.08.04-1
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x@sha256:aec126e37ce315e724217342bb62533cbfeae88b4ed5aa2a8bfd5ee4a4a1ca77 # 2026.08.04-1
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_s390x@sha256:840a6e20bd092a9f3ab71b76b252801f9e419646640822ce9f8ca43d1a4b9a2c # 2026.08.15-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x@sha256:2eda6ec2dc9ce2ed6da698f5dac9b3ea764bfc469e5e81206d5a829d73332c60 # 2026.08.15-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_s390x@sha256:966ec041ce4772e500da8a7e452681361cbe2b47ce882c4eb1186fd89ed9693a # 2026.08.15-1
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x@sha256:97af923ea31a097445fcaad1af154e1f0fd997a6d722141d55607dc3767f8782 # 2026.08.15-1
|
||||
|
||||
[pypy_x86_64]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64@sha256:c163a278006f45883c117b4166b93cdc7b574b62e58292ed9e52879579841d77 # 2026.08.04-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64@sha256:012f4a50472412f18bb2b450c1cce7158434cfae4ae878591c2748a13a30c2be # 2026.08.04-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_x86_64@sha256:db817cd4c670f1191d74db6a94a0b115954af78861db7da660de4e93ebf2984c # 2026.08.04-1
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64@sha256:95440e0e72dd3a81dc8d2cf59a84d57af661456620f5bc821ff92048d0e54ff9 # 2026.08.15-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64@sha256:0c87ccb5996dab6c3b7612ee4fda7b80c4ab3c44a86c2541e4a872afdf4f131b # 2026.08.15-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_x86_64@sha256:266610f48ef368cca34f521813ef61ed99d396b782e528fd0b0f58aa67c2189c # 2026.08.15-1
|
||||
|
||||
[pypy_i686]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686@sha256:abfc526a4f9d9692ed6d53b60ffd6be764aa7a4dc1d61522a1ce5ea64138aa53 # 2026.08.04-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_i686@sha256:605a71b7fa720562ad76147860e33d97b2a884ca9d5a454b2f7f353caec40ded # 2026.08.04-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_i686@sha256:82e74fcb11aa1d425260804292b8a25533f37eda280570b2441a465dc159351a # 2026.08.04-1
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686@sha256:2962468349f2e55378e16706fb1dfc36983ab376ed1bb942959c65376671b37e # 2026.08.15-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_i686@sha256:4458e9ec6af8588fe269d23adf2306231c15b949a9b0637a9c0943f80d6931d5 # 2026.08.15-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_i686@sha256:d3a55a555fc6ff7914238acfd73c0e56b63d9b21e6a064e1f92269f518bc265d # 2026.08.15-1
|
||||
|
||||
[pypy_aarch64]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64@sha256:5d366450eeff9abe09cc93db50fd2c9832bafaf473daa7a911d8b184424bbefd # 2026.08.04-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64@sha256:52e4da6e9348db7cd0b529a827623b62b7c1fe867ba515ae752fa13d41f7f46e # 2026.08.04-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_aarch64@sha256:86585a1adfa6cdb4e3aea2f5bf11d6fffa37acf17aa902605d7237c55d3c88ce # 2026.08.04-1
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64@sha256:b63ff749fee6f3f2a6b67ed3101a073db3211df1791da19e9acf96f43c0dd6ff # 2026.08.15-1
|
||||
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64@sha256:561427136aabf3787bffb294b3515748241e0962d1527ae28bea1e076bfb9d99 # 2026.08.15-1
|
||||
manylinux_2_34 = quay.io/pypa/manylinux_2_34_aarch64@sha256:691d9ffc1b3432c3ef12bcef756d10da38c10ef8022d6a92c18e781d6aac7aef # 2026.08.15-1
|
||||
|
||||
[armv7l]
|
||||
manylinux_2_31 = quay.io/pypa/manylinux_2_31_armv7l@sha256:bbd7f67c0fc2a9541ed462a41bd9abbfa696801483533ba44ec5fe3120e8cda6 # 2026.08.04-1
|
||||
manylinux_2_35 = quay.io/pypa/manylinux_2_35_armv7l@sha256:1335af18598960ecc4b57ccf239cacbca847af9f197e65e495ba376d0178385a # 2026.08.04-1
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_armv7l@sha256:fd4998e62ec4476d76d7b180b523e21ac7557d7f41f1b1e7d02ced21a3eee8b5 # 2026.08.04-1
|
||||
manylinux_2_31 = quay.io/pypa/manylinux_2_31_armv7l@sha256:235c282aa532e01136e5e1db0a9403463032c9281fa56d89b39e45dfb5081484 # 2026.08.15-1
|
||||
manylinux_2_35 = quay.io/pypa/manylinux_2_35_armv7l@sha256:e073f25a6b46c38f58b67cb3d40c4c4346fc6b481b791fb4ccd721bd63bce10b # 2026.08.15-1
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_armv7l@sha256:c7ee1ecd4967a3ea682c814b564a900d90dc81d75b0b7c2deeb8d6819752a460 # 2026.08.15-1
|
||||
|
||||
[riscv64]
|
||||
manylinux_2_39 = quay.io/pypa/manylinux_2_39_riscv64@sha256:41197d59628c256b0fde14a5dd5bb306e17665c515a8385e43cc72c1da1d7866 # 2026.08.04-1
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_riscv64@sha256:aaf12357d794dc375e797dce7fd71e92013bc46f269bc4cffe4da1f188080afb # 2026.08.04-1
|
||||
manylinux_2_39 = quay.io/pypa/manylinux_2_39_riscv64@sha256:9fa1bc388ea2494e457eec44e7c16a9e66fff892d73da8af3621009e76167949 # 2026.08.15-1
|
||||
musllinux_1_2 = quay.io/pypa/musllinux_1_2_riscv64@sha256:c81bcd3275ce4372b3ceb59ad132619ffe3e7c591193c2d5f2ed97aba198ec51 # 2026.08.15-1
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1 +1 @@
|
||||
default = { version = "21.7.1", url = "https://github.com/pypa/get-virtualenv/releases/download/21.7.1/virtualenv.pyz", sha256 = "d63ac10e610738c3dcfa51ee0799e6b69ce2964d76cab734542684baf0ed3a5f" }
|
||||
default = { version = "21.7.4", url = "https://github.com/pypa/get-virtualenv/releases/download/21.7.4/virtualenv.pyz", sha256 = "2dfdb6785b762b8a7a7a31d413c16516aa785552d05f61435b072fde1cb340cc" }
|
||||
|
||||
@@ -53,7 +53,7 @@ def remove_on_error(path: Path) -> Generator[None, None, None]:
|
||||
shutil.rmtree(path)
|
||||
elif path.exists() or path.is_symlink():
|
||||
path.unlink()
|
||||
except BaseException as cleanup_exception:
|
||||
except BaseException as cleanup_exception: # noqa: BLE001
|
||||
msg = f"Failed to remove {path}. Please remove it manually."
|
||||
raise BaseExceptionGroup(msg, [original_exception, cleanup_exception]) from None
|
||||
raise
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ def define_env(env: Any) -> None: # noqa: ANN401
|
||||
"Hook function for mkdocs-macros"
|
||||
|
||||
@env.macro # type: ignore[untyped-decorator]
|
||||
def subprocess_run(*args: str) -> str:
|
||||
def subprocess_run(*args: str) -> str: # type: ignore[misc]
|
||||
"Run a subprocess and return the stdout"
|
||||
env = os.environ.copy()
|
||||
scripts = sysconfig.get_path("scripts")
|
||||
|
||||
@@ -75,8 +75,8 @@ ref: working-examples
|
||||
| [markupsafe][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Safely add untrusted strings to HTML/XML markup. |
|
||||
| [Rtree][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Rtree: spatial index for Python GIS |
|
||||
| [pybind11 cmake_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] ![pyodide icon][] | Example pybind11 module built with a CMake-based build system |
|
||||
| [KDEpy][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Kernel Density Estimation in Python |
|
||||
| [dd-trace-py][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Uses custom alternate arch emulation on GitHub |
|
||||
| [KDEpy][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Kernel Density Estimation in Python |
|
||||
| [sourmash][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] ![pyodide icon][] | Quickly search, compare, and analyze genomic and metagenomic data sets. |
|
||||
| [tgcalls][] | ![github icon][] | ![apple icon][] ![windows icon][] | Python `pybind11` binding to Telegram's WebRTC library with third party dependencies like `OpenSSL`, `MozJPEG`, `FFmpeg`, etc. |
|
||||
| [python-rapidjson][] | ![travisci icon][] ![gitlab icon][] | ![windows icon][] ![linux icon][] | Python wrapper around rapidjson |
|
||||
@@ -110,8 +110,8 @@ ref: working-examples
|
||||
| [cf-units][] | ![github icon][] | ![apple icon][] ![linux icon][] | Units of measure as required by the Climate and Forecast (CF) Metadata Conventions |
|
||||
| [etebase-py][] | ![travisci icon][] | ![linux icon][] | Python bindings to a Rust library using `setuptools-rust`, and `sccache` for improved speed. |
|
||||
| [SiPM][] | ![github icon][] | ![apple icon][] ![linux icon][] | High performance library for SiPM detectors simulation using C++17, OpenMP and AVX2 intrinsics. |
|
||||
| [numpythia][] | ![github icon][] | ![apple icon][] ![linux icon][] | The interface between PYTHIA and NumPy |
|
||||
| [aalink][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Async Python interface for Ableton Link. |
|
||||
| [numpythia][] | ![github icon][] | ![apple icon][] ![linux icon][] | The interface between PYTHIA and NumPy |
|
||||
| [pyjet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The interface between FastJet and NumPy |
|
||||
| [ril][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A python binding to Rust Imaging library using maturin and Pyo3, utilizes Github Action cache to improve speed. Builds abi3 wheels. |
|
||||
| [GSD][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Cython and NumPy project with 64-bit wheels. |
|
||||
@@ -186,8 +186,8 @@ ref: working-examples
|
||||
[markupsafe]: https://github.com/pallets/markupsafe
|
||||
[Rtree]: https://github.com/Toblerity/rtree
|
||||
[pybind11 cmake_example]: https://github.com/pybind/cmake_example
|
||||
[KDEpy]: https://github.com/tommyod/KDEpy
|
||||
[dd-trace-py]: https://github.com/DataDog/dd-trace-py
|
||||
[KDEpy]: https://github.com/tommyod/KDEpy
|
||||
[sourmash]: https://github.com/sourmash-bio/sourmash
|
||||
[tgcalls]: https://github.com/MarshalX/tgcalls
|
||||
[python-rapidjson]: https://github.com/python-rapidjson/python-rapidjson
|
||||
@@ -221,8 +221,8 @@ ref: working-examples
|
||||
[cf-units]: https://github.com/SciTools/cf-units
|
||||
[etebase-py]: https://github.com/etesync/etebase-py
|
||||
[SiPM]: https://github.com/EdoPro98/SimSiPM
|
||||
[numpythia]: https://github.com/scikit-hep/numpythia
|
||||
[aalink]: https://github.com/artfwo/aalink
|
||||
[numpythia]: https://github.com/scikit-hep/numpythia
|
||||
[pyjet]: https://github.com/scikit-hep/pyjet
|
||||
[ril]: https://github.com/Cryptex-github/ril-py
|
||||
[GSD]: https://github.com/glotzerlab/gsd
|
||||
|
||||
+25
-2
@@ -116,10 +116,27 @@ files = [
|
||||
"bin/*.py",
|
||||
"noxfile.py",
|
||||
]
|
||||
disallow_any_decorated = true
|
||||
disallow_any_unimported = true
|
||||
disallow_untyped_globals = true
|
||||
disallow_redefinition = true
|
||||
warn_unused_configs = true
|
||||
strict = true
|
||||
enable_error_code = ["ignore-without-code", "redundant-expr", "truthy-bool"]
|
||||
enable_error_code = [
|
||||
"deprecated",
|
||||
"exhaustive-match",
|
||||
"ignore-without-code",
|
||||
"mutable-override",
|
||||
"possibly-undefined",
|
||||
"redundant-expr",
|
||||
"redundant-self",
|
||||
"truthy-bool",
|
||||
"truthy-iterable",
|
||||
"unimported-reveal",
|
||||
"unused-awaitable",
|
||||
]
|
||||
warn_unreachable = false
|
||||
native_parser = true
|
||||
|
||||
[[tool.mypy.overrides]]
|
||||
module = [
|
||||
@@ -130,6 +147,10 @@ module = [
|
||||
]
|
||||
ignore_missing_imports = true
|
||||
|
||||
[[tool.mypy.overrides]]
|
||||
module = ["cibuildwheel.bashlex_eval"]
|
||||
disable_error_code = ["no-any-unimported"]
|
||||
|
||||
|
||||
[tool.pylint]
|
||||
py-version = "3.11"
|
||||
@@ -166,6 +187,7 @@ messages_control.disable = [
|
||||
"wrong-import-position",
|
||||
"unused-argument", # Handled by Ruff
|
||||
"import-outside-toplevel", # Handled by Ruff
|
||||
"broad-exception-caught", # Handled by Ruff
|
||||
"broad-exception-raised", # Could be improved eventually
|
||||
"consider-using-in", # MyPy can't narrow "in"
|
||||
]
|
||||
@@ -217,6 +239,7 @@ ignore = [
|
||||
"PT007", # Lists of tuples in Pytest
|
||||
"PYI025", # Set as AbstractSet
|
||||
"PTH123", # open -> Path.open
|
||||
"TRY002", # Create your own exception
|
||||
]
|
||||
flake8-unused-arguments.ignore-variadic-names = true
|
||||
flake8-tidy-imports.ban-relative-imports = "all"
|
||||
@@ -234,7 +257,7 @@ future-annotations = true
|
||||
|
||||
[tool.ruff.lint.per-file-ignores]
|
||||
"unit_test/*" = ["PLC1901", "TID252"]
|
||||
"test/*" = ["TID252"]
|
||||
"test/*" = ["TID252", "N999"]
|
||||
"bin/*" = ["TID251"]
|
||||
"cibuildwheel/resources/install_certifi.py" = ["PTH"]
|
||||
|
||||
|
||||
+49
-11
@@ -619,24 +619,54 @@ def test_repair_error(
|
||||
assert error in capfd.readouterr().err
|
||||
|
||||
|
||||
# This also tests integration with pkgconf, because Meson uses it to find Python.
|
||||
# This also tests integration with pkgconf, which Meson uses to find Python and
|
||||
# OpenBLAS.
|
||||
@needs_emulator
|
||||
def test_meson(tmp_path: Path, capfd: pytest.CaptureFixture[str]) -> None:
|
||||
# Alter spam.filter to return the value of a Fortran function.
|
||||
new_meson_project(
|
||||
spam_c_top_level_add="int fortran_func_();",
|
||||
spam_c_function_add="sts = fortran_func_();",
|
||||
project_args_add="'fortran',",
|
||||
extension_args_add="'fortran.f90', link_language: 'fortran',",
|
||||
extension_args_add=dedent(
|
||||
"""\
|
||||
'fortran.f90',
|
||||
link_language: 'fortran',
|
||||
dependencies: [dependency('openblas', method: 'pkg-config')],
|
||||
"""
|
||||
),
|
||||
# Alter spam.filter to call an OpenBLAS function, and return the value of a
|
||||
# Fortran function.
|
||||
spam_c_top_level_add=dedent(
|
||||
"""\
|
||||
#include <cblas.h>
|
||||
int fortran_func_();
|
||||
"""
|
||||
),
|
||||
spam_c_function_add=dedent(
|
||||
"""\
|
||||
openblas_get_config();
|
||||
sts = fortran_func_();
|
||||
"""
|
||||
),
|
||||
).generate(tmp_path)
|
||||
|
||||
# TODO: remove once meson-python has a release with Android support.
|
||||
pyproject_path = tmp_path / "pyproject.toml"
|
||||
pyproject_path.write_text(
|
||||
pyproject_path.read_text().replace(
|
||||
"meson-python", "meson-python @ git+https://github.com/mesonbuild/meson-python@main"
|
||||
# Add a before-build script to download OpenBLAS.
|
||||
before_build = tmp_path / "cibw_before_build.sh"
|
||||
before_build.write_text(
|
||||
dedent(
|
||||
"""\
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
openblas_dir=$(pwd)/openblas
|
||||
rm -rf $openblas_dir
|
||||
mkdir -p $openblas_dir
|
||||
pip install \\
|
||||
--target $openblas_dir \\
|
||||
--index-url https://chaquo.com/pypi-upstream/ \\
|
||||
chaquopy-openblas==0.3.33
|
||||
"""
|
||||
)
|
||||
)
|
||||
before_build.chmod(0o755)
|
||||
|
||||
# Add Fortran code.
|
||||
(tmp_path / "fortran.f90").write_text(
|
||||
@@ -652,7 +682,15 @@ def test_meson(tmp_path: Path, capfd: pytest.CaptureFixture[str]) -> None:
|
||||
script = 'import spam; print(f"result: {spam.filter("")}")'
|
||||
cibuildwheel_run(
|
||||
tmp_path,
|
||||
add_env={**cp313_env, "CIBW_TEST_COMMAND": f"python -c '{script}'"},
|
||||
add_env={
|
||||
**cp313_env,
|
||||
"CIBW_BEFORE_BUILD": str(before_build),
|
||||
"CIBW_ENVIRONMENT": (
|
||||
'PKG_CONFIG_PATH="$(pwd)/openblas/chaquopy/lib/pkgconfig" '
|
||||
'AUDITWHEEL_LD_LIBRARY_PATH="$(pwd)/openblas/chaquopy/lib"'
|
||||
),
|
||||
"CIBW_TEST_COMMAND": f"python -c '{script}'",
|
||||
},
|
||||
)
|
||||
assert "result: 42" in capfd.readouterr().out
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@ from cibuildwheel.oci_container import (
|
||||
TYPE_CHECKING = False
|
||||
if TYPE_CHECKING:
|
||||
from collections.abc import Iterator
|
||||
from typing import Any
|
||||
|
||||
# Test utilities
|
||||
|
||||
@@ -84,6 +85,18 @@ def test_no_lf(container_engine: OCIContainerEngineConfig) -> None:
|
||||
assert container.call(["printf", "hello"], capture_output=True) == "hello"
|
||||
|
||||
|
||||
def test_abnormal_exit(container_engine: OCIContainerEngineConfig) -> None:
|
||||
container = OCIContainer(
|
||||
engine=container_engine, image=DEFAULT_IMAGE, oci_platform=DEFAULT_OCI_PLATFORM
|
||||
)
|
||||
with container:
|
||||
# kill the shell without a newline, so the write below still goes
|
||||
# through the same buffer and the call fails on read, not on write
|
||||
container.bash_stdin.write(b"exit")
|
||||
with pytest.raises(RuntimeError):
|
||||
container.call(["echo", "hello"])
|
||||
|
||||
|
||||
def test_debug_info(container_engine: OCIContainerEngineConfig) -> None:
|
||||
container = OCIContainer(
|
||||
engine=container_engine, image=DEFAULT_IMAGE, oci_platform=DEFAULT_OCI_PLATFORM
|
||||
@@ -139,6 +152,7 @@ def test_container_removed(container_engine: OCIContainerEngineConfig) -> None:
|
||||
) as container:
|
||||
assert container.name is not None
|
||||
container_name = container.name
|
||||
docker_containers_listing = ""
|
||||
for _ in range(timeout):
|
||||
docker_containers_listing = subprocess.run(
|
||||
f"{container.engine.name} container ls",
|
||||
@@ -330,7 +344,7 @@ def test_podman_vfs(
|
||||
# This requires that we write configuration files and point to them
|
||||
# with environment variables before we run podman
|
||||
# https://github.com/containers/common/blob/main/docs/containers.conf.5.md
|
||||
vfs_containers_conf_data = {
|
||||
vfs_containers_conf_data: dict[str, dict[str, Any]] = {
|
||||
"containers": {
|
||||
"default_capabilities": [
|
||||
"CHOWN",
|
||||
@@ -348,6 +362,20 @@ def test_podman_vfs(
|
||||
},
|
||||
"engine": {"cgroup_manager": "cgroupfs", "events_logger": "file"},
|
||||
}
|
||||
|
||||
# Setting CONTAINERS_CONF makes podman ignore its usual config files, so
|
||||
# carry over the default OCI runtime; the fallback found on PATH can be
|
||||
# too old for the OCI spec version podman generates (e.g. Ubuntu 24.04's
|
||||
# crun 1.14.1 with podman 5.x).
|
||||
oci_runtime = subprocess.run(
|
||||
["podman", "info", "--format", "{{.Host.OCIRuntime.Path}}"],
|
||||
check=True,
|
||||
capture_output=True,
|
||||
text=True,
|
||||
).stdout.strip()
|
||||
runtime_name = Path(oci_runtime).name
|
||||
vfs_containers_conf_data["engine"]["runtime"] = runtime_name
|
||||
vfs_containers_conf_data["engine"]["runtimes"] = {runtime_name: [oci_runtime]}
|
||||
# https://github.com/containers/storage/blob/main/docs/containers-storage.conf.5.md
|
||||
storage_root = vfs_path / ".local/share/containers/vfs-storage"
|
||||
run_root = vfs_path / ".local/share/containers/vfs-runroot"
|
||||
|
||||
Reference in New Issue
Block a user