Add Python 3.14 preview (#2390)

* feat: add CPython 3.14 beta 1

* fix tests
This commit is contained in:
Matthieu Darbois
2025-05-12 12:54:02 -04:00
committed by GitHub
parent 54a4dccd62
commit 5622cc6988
21 changed files with 142 additions and 51 deletions
+2
View File
@@ -158,6 +158,8 @@ def install_cpython(_tmp: Path, version: str, url: str, free_threading: bool) ->
if version.startswith("3.13"):
# Python 3.13 is the first version to have a free-threading option
args += ["-applyChoiceChangesXML", str(resources.FREE_THREAD_ENABLE_313.resolve())]
elif version.startswith("3.14"):
args += ["-applyChoiceChangesXML", str(resources.FREE_THREAD_ENABLE_314.resolve())]
call("sudo", "installer", "-pkg", pkg_path, *args, "-target", "/")
pkg_path.unlink()
env = os.environ.copy()
@@ -7,6 +7,8 @@ python_configurations = [
{ identifier = "cp312-manylinux_x86_64", version = "3.12", path_str = "/opt/python/cp312-cp312" },
{ identifier = "cp313-manylinux_x86_64", version = "3.13", path_str = "/opt/python/cp313-cp313" },
{ identifier = "cp313t-manylinux_x86_64", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
{ identifier = "cp314-manylinux_x86_64", version = "3.14", path_str = "/opt/python/cp314-cp314" },
{ identifier = "cp314t-manylinux_x86_64", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
{ identifier = "cp38-manylinux_i686", version = "3.8", path_str = "/opt/python/cp38-cp38" },
{ identifier = "cp39-manylinux_i686", version = "3.9", path_str = "/opt/python/cp39-cp39" },
{ identifier = "cp310-manylinux_i686", version = "3.10", path_str = "/opt/python/cp310-cp310" },
@@ -14,6 +16,8 @@ python_configurations = [
{ identifier = "cp312-manylinux_i686", version = "3.12", path_str = "/opt/python/cp312-cp312" },
{ identifier = "cp313-manylinux_i686", version = "3.13", path_str = "/opt/python/cp313-cp313" },
{ identifier = "cp313t-manylinux_i686", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
{ identifier = "cp314-manylinux_i686", version = "3.14", path_str = "/opt/python/cp314-cp314" },
{ identifier = "cp314t-manylinux_i686", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
{ identifier = "pp38-manylinux_x86_64", version = "3.8", path_str = "/opt/python/pp38-pypy38_pp73" },
{ identifier = "pp39-manylinux_x86_64", version = "3.9", path_str = "/opt/python/pp39-pypy39_pp73" },
{ identifier = "pp310-manylinux_x86_64", version = "3.10", path_str = "/opt/python/pp310-pypy310_pp73" },
@@ -26,6 +30,8 @@ python_configurations = [
{ identifier = "cp312-manylinux_aarch64", version = "3.12", path_str = "/opt/python/cp312-cp312" },
{ identifier = "cp313-manylinux_aarch64", version = "3.13", path_str = "/opt/python/cp313-cp313" },
{ identifier = "cp313t-manylinux_aarch64", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
{ identifier = "cp314-manylinux_aarch64", version = "3.14", path_str = "/opt/python/cp314-cp314" },
{ identifier = "cp314t-manylinux_aarch64", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
{ identifier = "cp38-manylinux_ppc64le", version = "3.8", path_str = "/opt/python/cp38-cp38" },
{ identifier = "cp39-manylinux_ppc64le", version = "3.9", path_str = "/opt/python/cp39-cp39" },
{ identifier = "cp310-manylinux_ppc64le", version = "3.10", path_str = "/opt/python/cp310-cp310" },
@@ -33,6 +39,8 @@ python_configurations = [
{ identifier = "cp312-manylinux_ppc64le", version = "3.12", path_str = "/opt/python/cp312-cp312" },
{ identifier = "cp313-manylinux_ppc64le", version = "3.13", path_str = "/opt/python/cp313-cp313" },
{ identifier = "cp313t-manylinux_ppc64le", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
{ identifier = "cp314-manylinux_ppc64le", version = "3.14", path_str = "/opt/python/cp314-cp314" },
{ identifier = "cp314t-manylinux_ppc64le", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
{ identifier = "cp38-manylinux_s390x", version = "3.8", path_str = "/opt/python/cp38-cp38" },
{ identifier = "cp39-manylinux_s390x", version = "3.9", path_str = "/opt/python/cp39-cp39" },
{ identifier = "cp310-manylinux_s390x", version = "3.10", path_str = "/opt/python/cp310-cp310" },
@@ -40,6 +48,8 @@ python_configurations = [
{ identifier = "cp312-manylinux_s390x", version = "3.12", path_str = "/opt/python/cp312-cp312" },
{ identifier = "cp313-manylinux_s390x", version = "3.13", path_str = "/opt/python/cp313-cp313" },
{ identifier = "cp313t-manylinux_s390x", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
{ identifier = "cp314-manylinux_s390x", version = "3.14", path_str = "/opt/python/cp314-cp314" },
{ identifier = "cp314t-manylinux_s390x", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
{ identifier = "cp38-manylinux_armv7l", version = "3.8", path_str = "/opt/python/cp38-cp38" },
{ identifier = "cp39-manylinux_armv7l", version = "3.9", path_str = "/opt/python/cp39-cp39" },
{ identifier = "cp310-manylinux_armv7l", version = "3.10", path_str = "/opt/python/cp310-cp310" },
@@ -47,6 +57,8 @@ python_configurations = [
{ identifier = "cp312-manylinux_armv7l", version = "3.12", path_str = "/opt/python/cp312-cp312" },
{ identifier = "cp313-manylinux_armv7l", version = "3.13", path_str = "/opt/python/cp313-cp313" },
{ identifier = "cp313t-manylinux_armv7l", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
{ identifier = "cp314-manylinux_armv7l", version = "3.14", path_str = "/opt/python/cp314-cp314" },
{ identifier = "cp314t-manylinux_armv7l", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
{ identifier = "cp38-manylinux_riscv64", version = "3.8", path_str = "/opt/python/cp38-cp38" },
{ identifier = "cp39-manylinux_riscv64", version = "3.9", path_str = "/opt/python/cp39-cp39" },
{ identifier = "cp310-manylinux_riscv64", version = "3.10", path_str = "/opt/python/cp310-cp310" },
@@ -54,6 +66,8 @@ python_configurations = [
{ identifier = "cp312-manylinux_riscv64", version = "3.12", path_str = "/opt/python/cp312-cp312" },
{ identifier = "cp313-manylinux_riscv64", version = "3.13", path_str = "/opt/python/cp313-cp313" },
{ identifier = "cp313t-manylinux_riscv64", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
{ identifier = "cp314-manylinux_riscv64", version = "3.14", path_str = "/opt/python/cp314-cp314" },
{ identifier = "cp314t-manylinux_riscv64", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
{ identifier = "pp38-manylinux_aarch64", version = "3.8", path_str = "/opt/python/pp38-pypy38_pp73" },
{ identifier = "pp39-manylinux_aarch64", version = "3.9", path_str = "/opt/python/pp39-pypy39_pp73" },
{ identifier = "pp310-manylinux_aarch64", version = "3.10", path_str = "/opt/python/pp310-pypy310_pp73" },
@@ -70,6 +84,8 @@ python_configurations = [
{ identifier = "cp312-musllinux_x86_64", version = "3.12", path_str = "/opt/python/cp312-cp312" },
{ identifier = "cp313-musllinux_x86_64", version = "3.13", path_str = "/opt/python/cp313-cp313" },
{ identifier = "cp313t-musllinux_x86_64", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
{ identifier = "cp314-musllinux_x86_64", version = "3.14", path_str = "/opt/python/cp314-cp314" },
{ identifier = "cp314t-musllinux_x86_64", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
{ identifier = "cp38-musllinux_i686", version = "3.8", path_str = "/opt/python/cp38-cp38" },
{ identifier = "cp39-musllinux_i686", version = "3.9", path_str = "/opt/python/cp39-cp39" },
{ identifier = "cp310-musllinux_i686", version = "3.10", path_str = "/opt/python/cp310-cp310" },
@@ -77,6 +93,8 @@ python_configurations = [
{ identifier = "cp312-musllinux_i686", version = "3.12", path_str = "/opt/python/cp312-cp312" },
{ identifier = "cp313-musllinux_i686", version = "3.13", path_str = "/opt/python/cp313-cp313" },
{ identifier = "cp313t-musllinux_i686", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
{ identifier = "cp314-musllinux_i686", version = "3.14", path_str = "/opt/python/cp314-cp314" },
{ identifier = "cp314t-musllinux_i686", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
{ identifier = "cp38-musllinux_aarch64", version = "3.8", path_str = "/opt/python/cp38-cp38" },
{ identifier = "cp39-musllinux_aarch64", version = "3.9", path_str = "/opt/python/cp39-cp39" },
{ identifier = "cp310-musllinux_aarch64", version = "3.10", path_str = "/opt/python/cp310-cp310" },
@@ -84,6 +102,8 @@ python_configurations = [
{ identifier = "cp312-musllinux_aarch64", version = "3.12", path_str = "/opt/python/cp312-cp312" },
{ identifier = "cp313-musllinux_aarch64", version = "3.13", path_str = "/opt/python/cp313-cp313" },
{ identifier = "cp313t-musllinux_aarch64", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
{ identifier = "cp314-musllinux_aarch64", version = "3.14", path_str = "/opt/python/cp314-cp314" },
{ identifier = "cp314t-musllinux_aarch64", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
{ identifier = "cp38-musllinux_ppc64le", version = "3.8", path_str = "/opt/python/cp38-cp38" },
{ identifier = "cp39-musllinux_ppc64le", version = "3.9", path_str = "/opt/python/cp39-cp39" },
{ identifier = "cp310-musllinux_ppc64le", version = "3.10", path_str = "/opt/python/cp310-cp310" },
@@ -91,6 +111,8 @@ python_configurations = [
{ identifier = "cp312-musllinux_ppc64le", version = "3.12", path_str = "/opt/python/cp312-cp312" },
{ identifier = "cp313-musllinux_ppc64le", version = "3.13", path_str = "/opt/python/cp313-cp313" },
{ identifier = "cp313t-musllinux_ppc64le", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
{ identifier = "cp314-musllinux_ppc64le", version = "3.14", path_str = "/opt/python/cp314-cp314" },
{ identifier = "cp314t-musllinux_ppc64le", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
{ identifier = "cp38-musllinux_s390x", version = "3.8", path_str = "/opt/python/cp38-cp38" },
{ identifier = "cp39-musllinux_s390x", version = "3.9", path_str = "/opt/python/cp39-cp39" },
{ identifier = "cp310-musllinux_s390x", version = "3.10", path_str = "/opt/python/cp310-cp310" },
@@ -98,6 +120,8 @@ python_configurations = [
{ identifier = "cp312-musllinux_s390x", version = "3.12", path_str = "/opt/python/cp312-cp312" },
{ identifier = "cp313-musllinux_s390x", version = "3.13", path_str = "/opt/python/cp313-cp313" },
{ identifier = "cp313t-musllinux_s390x", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
{ identifier = "cp314-musllinux_s390x", version = "3.14", path_str = "/opt/python/cp314-cp314" },
{ identifier = "cp314t-musllinux_s390x", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
{ identifier = "cp38-musllinux_armv7l", version = "3.8", path_str = "/opt/python/cp38-cp38" },
{ identifier = "cp39-musllinux_armv7l", version = "3.9", path_str = "/opt/python/cp39-cp39" },
{ identifier = "cp310-musllinux_armv7l", version = "3.10", path_str = "/opt/python/cp310-cp310" },
@@ -105,6 +129,8 @@ python_configurations = [
{ identifier = "cp312-musllinux_armv7l", version = "3.12", path_str = "/opt/python/cp312-cp312" },
{ identifier = "cp313-musllinux_armv7l", version = "3.13", path_str = "/opt/python/cp313-cp313" },
{ identifier = "cp313t-musllinux_armv7l", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
{ identifier = "cp314-musllinux_armv7l", version = "3.14", path_str = "/opt/python/cp314-cp314" },
{ identifier = "cp314t-musllinux_armv7l", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
{ identifier = "cp38-musllinux_riscv64", version = "3.8", path_str = "/opt/python/cp38-cp38" },
{ identifier = "cp39-musllinux_ricv64", version = "3.9", path_str = "/opt/python/cp39-cp39" },
{ identifier = "cp310-musllinux_riscv64", version = "3.10", path_str = "/opt/python/cp310-cp310" },
@@ -112,6 +138,8 @@ python_configurations = [
{ identifier = "cp312-musllinux_riscv64", version = "3.12", path_str = "/opt/python/cp312-cp312" },
{ identifier = "cp313-musllinux_riscv64", version = "3.13", path_str = "/opt/python/cp313-cp313" },
{ identifier = "cp313t-musllinux_riscv64", version = "3.13", path_str = "/opt/python/cp313-cp313t" },
{ identifier = "cp314-musllinux_riscv64", version = "3.14", path_str = "/opt/python/cp314-cp314" },
{ identifier = "cp314t-musllinux_riscv64", version = "3.14", path_str = "/opt/python/cp314-cp314t" },
]
[macos]
@@ -137,6 +165,12 @@ python_configurations = [
{ identifier = "cp313t-macosx_x86_64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.3/python-3.13.3-macos11.pkg" },
{ identifier = "cp313t-macosx_arm64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.3/python-3.13.3-macos11.pkg" },
{ identifier = "cp313t-macosx_universal2", version = "3.13", url = "https://www.python.org/ftp/python/3.13.3/python-3.13.3-macos11.pkg" },
{ identifier = "cp314-macosx_x86_64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.0/python-3.14.0b1-macos11.pkg" },
{ identifier = "cp314-macosx_arm64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.0/python-3.14.0b1-macos11.pkg" },
{ identifier = "cp314-macosx_universal2", version = "3.14", url = "https://www.python.org/ftp/python/3.14.0/python-3.14.0b1-macos11.pkg" },
{ identifier = "cp314t-macosx_x86_64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.0/python-3.14.0b1-macos11.pkg" },
{ identifier = "cp314t-macosx_arm64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.0/python-3.14.0b1-macos11.pkg" },
{ identifier = "cp314t-macosx_universal2", version = "3.14", url = "https://www.python.org/ftp/python/3.14.0/python-3.14.0b1-macos11.pkg" },
{ identifier = "pp38-macosx_x86_64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-macos_x86_64.tar.bz2" },
{ identifier = "pp38-macosx_arm64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-macos_arm64.tar.bz2" },
{ identifier = "pp39-macosx_x86_64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-macos_x86_64.tar.bz2" },
@@ -165,12 +199,18 @@ python_configurations = [
{ identifier = "cp313t-win32", version = "3.13.3", arch = "32" },
{ identifier = "cp313-win_amd64", version = "3.13.3", arch = "64" },
{ identifier = "cp313t-win_amd64", version = "3.13.3", arch = "64" },
{ identifier = "cp314-win32", version = "3.14.0-b1", arch = "32" },
{ identifier = "cp314t-win32", version = "3.14.0-b1", arch = "32" },
{ identifier = "cp314-win_amd64", version = "3.14.0-b1", arch = "64" },
{ identifier = "cp314t-win_amd64", version = "3.14.0-b1", arch = "64" },
{ identifier = "cp39-win_arm64", version = "3.9.10", arch = "ARM64" },
{ identifier = "cp310-win_arm64", version = "3.10.11", arch = "ARM64" },
{ identifier = "cp311-win_arm64", version = "3.11.9", arch = "ARM64" },
{ identifier = "cp312-win_arm64", version = "3.12.10", arch = "ARM64" },
{ identifier = "cp313-win_arm64", version = "3.13.3", arch = "ARM64" },
{ identifier = "cp313t-win_arm64", version = "3.13.3", arch = "ARM64" },
{ identifier = "cp314-win_arm64", version = "3.14.0-b1", arch = "ARM64" },
{ identifier = "cp314t-win_arm64", version = "3.14.0-b1", arch = "ARM64" },
{ identifier = "pp38-win_amd64", version = "3.8", arch = "64", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-win64.zip" },
{ identifier = "pp39-win_amd64", version = "3.9", arch = "64", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-win64.zip" },
{ identifier = "pp310-win_amd64", version = "3.10", arch = "64", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.19-win64.zip" },
@@ -19,7 +19,7 @@ charset-normalizer==3.4.2
# via requests
click==8.1.8
# via typer
cmake==4.0.0
cmake==4.0.2
# via pyodide-build
distlib==0.3.9
# via virtualenv
@@ -50,7 +50,7 @@ packaging==25.0
# unearth
pip==25.1.1
# via -r .nox/update_constraints/tmp/constraints-pyodide.in
platformdirs==4.3.7
platformdirs==4.3.8
# via virtualenv
pydantic==2.11.4
# via
@@ -105,7 +105,7 @@ unearth==0.17.5
# via pyodide-build
urllib3==2.4.0
# via requests
virtualenv==20.30.0
virtualenv==20.31.2
# via
# build
# pyodide-build
@@ -20,7 +20,7 @@ packaging==25.0
# delocate
pip==25.1.1
# via -r cibuildwheel/resources/constraints.in
platformdirs==4.3.7
platformdirs==4.3.8
# via virtualenv
pyproject-hooks==1.2.0
# via build
@@ -28,7 +28,7 @@ tomli==2.2.1
# via build
typing-extensions==4.13.2
# via delocate
virtualenv==20.30.0
virtualenv==20.31.2
# via -r cibuildwheel/resources/constraints.in
zipp==3.21.0
# via importlib-metadata
@@ -18,11 +18,11 @@ packaging==25.0
# delocate
pip==25.1.1
# via -r cibuildwheel/resources/constraints.in
platformdirs==4.3.7
platformdirs==4.3.8
# via virtualenv
pyproject-hooks==1.2.0
# via build
typing-extensions==4.13.2
# via delocate
virtualenv==20.30.0
virtualenv==20.31.2
# via -r cibuildwheel/resources/constraints.in
@@ -18,11 +18,11 @@ packaging==25.0
# delocate
pip==25.1.1
# via -r cibuildwheel/resources/constraints.in
platformdirs==4.3.7
platformdirs==4.3.8
# via virtualenv
pyproject-hooks==1.2.0
# via build
typing-extensions==4.13.2
# via delocate
virtualenv==20.30.0
virtualenv==20.31.2
# via -r cibuildwheel/resources/constraints.in
@@ -18,11 +18,11 @@ packaging==25.0
# delocate
pip==25.1.1
# via -r cibuildwheel/resources/constraints.in
platformdirs==4.3.7
platformdirs==4.3.8
# via virtualenv
pyproject-hooks==1.2.0
# via build
typing-extensions==4.13.2
# via delocate
virtualenv==20.30.0
virtualenv==20.31.2
# via -r cibuildwheel/resources/constraints.in
@@ -0,0 +1,28 @@
# This file was autogenerated by uv via the following command:
# nox -s update_constraints
altgraph==0.17.4
# via macholib
build==1.2.2.post1
# via -r cibuildwheel/resources/constraints.in
delocate==0.13.0
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.9
# via virtualenv
filelock==3.18.0
# via virtualenv
macholib==1.16.3
# via delocate
packaging==25.0
# via
# build
# delocate
pip==25.1.1
# via -r cibuildwheel/resources/constraints.in
platformdirs==4.3.8
# via virtualenv
pyproject-hooks==1.2.0
# via build
typing-extensions==4.13.2
# via delocate
virtualenv==20.31.2
# via -r cibuildwheel/resources/constraints.in
@@ -28,7 +28,7 @@ tomli==2.2.1
# via build
typing-extensions==4.13.2
# via delocate
virtualenv==20.30.0
virtualenv==20.31.2
# via -r cibuildwheel/resources/constraints.in
zipp==3.20.2
# via importlib-metadata
@@ -20,7 +20,7 @@ packaging==25.0
# delocate
pip==25.1.1
# via -r cibuildwheel/resources/constraints.in
platformdirs==4.3.7
platformdirs==4.3.8
# via virtualenv
pyproject-hooks==1.2.0
# via build
@@ -28,7 +28,7 @@ tomli==2.2.1
# via build
typing-extensions==4.13.2
# via delocate
virtualenv==20.30.0
virtualenv==20.31.2
# via -r cibuildwheel/resources/constraints.in
zipp==3.21.0
# via importlib-metadata
+2 -2
View File
@@ -18,11 +18,11 @@ packaging==25.0
# delocate
pip==25.1.1
# via -r cibuildwheel/resources/constraints.in
platformdirs==4.3.7
platformdirs==4.3.8
# via virtualenv
pyproject-hooks==1.2.0
# via build
typing-extensions==4.13.2
# via delocate
virtualenv==20.30.0
virtualenv==20.31.2
# via -r cibuildwheel/resources/constraints.in
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>attributeSetting</key>
<integer>1</integer>
<key>choiceAttribute</key>
<string>selected</string>
<key>choiceIdentifier</key>
<string>org.python.Python.PythonTFramework-3.14</string>
</dict>
</array>
</plist>
+27 -27
View File
@@ -1,47 +1,47 @@
[x86_64]
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.05.03-1
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.05.03-1
manylinux_2_34 = quay.io/pypa/manylinux_2_34_x86_64:2025.04.26-0
musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2025.05.03-1
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.05.10-2
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.05.10-2
manylinux_2_34 = quay.io/pypa/manylinux_2_34_x86_64:2025.05.10-2
musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2025.05.10-2
[i686]
manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.05.03-1
musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2025.05.03-1
manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.05.10-2
musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2025.05.10-2
[aarch64]
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.05.03-1
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.05.03-1
manylinux_2_34 = quay.io/pypa/manylinux_2_34_aarch64:2025.04.26-0
musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2025.05.03-1
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.05.10-2
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.05.10-2
manylinux_2_34 = quay.io/pypa/manylinux_2_34_aarch64:2025.05.10-2
musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2025.05.10-2
[ppc64le]
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2025.05.03-1
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2025.05.03-1
manylinux_2_34 = quay.io/pypa/manylinux_2_34_ppc64le:2025.04.26-0
musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2025.05.03-1
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2025.05.10-2
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2025.05.10-2
manylinux_2_34 = quay.io/pypa/manylinux_2_34_ppc64le:2025.05.10-2
musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2025.05.10-2
[s390x]
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2025.05.03-1
manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2025.05.03-1
manylinux_2_34 = quay.io/pypa/manylinux_2_34_s390x:2025.04.26-0
musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2025.05.03-1
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2025.05.10-2
manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2025.05.10-2
manylinux_2_34 = quay.io/pypa/manylinux_2_34_s390x:2025.05.10-2
musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2025.05.10-2
[pypy_x86_64]
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.05.03-1
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.05.03-1
manylinux_2_34 = quay.io/pypa/manylinux_2_34_x86_64:2025.04.26-0
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.05.10-2
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.05.10-2
manylinux_2_34 = quay.io/pypa/manylinux_2_34_x86_64:2025.05.10-2
[pypy_i686]
manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.05.03-1
manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.05.10-2
[pypy_aarch64]
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.05.03-1
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.05.03-1
manylinux_2_34 = quay.io/pypa/manylinux_2_34_aarch64:2025.04.26-0
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.05.10-2
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.05.10-2
manylinux_2_34 = quay.io/pypa/manylinux_2_34_aarch64:2025.05.10-2
[armv7l]
manylinux_2_31 = quay.io/pypa/manylinux_2_31_armv7l:2025.05.03-1
musllinux_1_2 = quay.io/pypa/musllinux_1_2_armv7l:2025.05.03-1
manylinux_2_31 = quay.io/pypa/manylinux_2_31_armv7l:2025.05.10-2
musllinux_1_2 = quay.io/pypa/musllinux_1_2_armv7l:2025.05.10-2
[riscv64]
+1 -1
View File
@@ -1 +1 @@
default = { version = "20.30.0", url = "https://github.com/pypa/get-virtualenv/blob/20.30.0/public/virtualenv.pyz?raw=true" }
default = { version = "20.31.2", url = "https://github.com/pypa/get-virtualenv/blob/20.31.2/public/virtualenv.pyz?raw=true" }
+1
View File
@@ -8,6 +8,7 @@ from ..typing import PlatformName
PATH: Final[Path] = Path(__file__).parent.parent / "resources"
INSTALL_CERTIFI_SCRIPT: Final[Path] = PATH / "install_certifi.py"
FREE_THREAD_ENABLE_313: Final[Path] = PATH / "free-threaded-enable-313.xml"
FREE_THREAD_ENABLE_314: Final[Path] = PATH / "free-threaded-enable-314.xml"
NODEJS: Final[Path] = PATH / "nodejs.toml"
DEFAULTS: Final[Path] = PATH / "defaults.toml"
PINNED_DOCKER_IMAGES: Final[Path] = PATH / "pinned_docker_images.cfg"