Skip to content

Commit aca1b22

Browse files
committed
feat: add Python 3.13 beta 1
1 parent 30a0dec commit aca1b22

12 files changed

+91
-36
lines changed

.github/workflows/test.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
pipx run nox -s pylint
3434
3535
test:
36-
name: Test cibuildwheel on ${{ matrix.os }}
36+
name: Test cibuildwheel on ${{ matrix.os }} (${{ matrix.python_version }})
3737
needs: lint
3838
runs-on: ${{ matrix.os }}
3939
strategy:

.github/workflows/update-dependencies.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424

2525
- uses: wntrblm/[email protected]
2626
with:
27-
python-versions: "3.7, 3.8, 3.9, 3.10, 3.11, 3.12"
27+
python-versions: "3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13"
2828

2929
- name: "Run update: dependencies"
3030
run: nox --force-color -s update_constraints

README.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,24 @@ Python wheels are great. Building them across **Mac, Linux, Windows**, on **mult
2222
What does it do?
2323
----------------
2424

25-
| | macOS Intel | macOS Apple Silicon | Windows 64bit | Windows 32bit | Windows Arm64 | manylinux<br/>musllinux x86_64 | manylinux<br/>musllinux i686 | manylinux<br/>musllinux aarch64 | manylinux<br/>musllinux ppc64le | manylinux<br/>musllinux s390x |
25+
| | macOS Intel | macOS Apple Silicon | Windows 64bit | Windows 32bit | Windows Arm64 | manylinux<br/>musllinux x86_64 | manylinux<br/>musllinux i686 | manylinux<br/>musllinux aarch64 | manylinux<br/>musllinux ppc64le | manylinux<br/>musllinux s390x |
2626
|----------------|----|-----|-----|-----|-----|----|-----|----|-----|-----|
2727
| CPython 3.6 || N/A ||| N/A ||||||
2828
| CPython 3.7 || N/A ||| N/A ||||||
2929
| CPython 3.8 ||||| N/A ||||||
3030
| CPython 3.9 ||||| ✅² ||||||
3131
| CPython 3.10 ||||| ✅² ||||||
3232
| CPython 3.11 ||||| ✅² ||||||
33-
| CPython 3.12 ||||| ✅² ||||||
33+
| CPython 3.12 ||||| ✅² ||||||
34+
| CPython 3.13³ ||||| ✅² ||||||
3435
| PyPy 3.7 v7.3 || N/A || N/A | N/A | ✅¹ | ✅¹ | ✅¹ | N/A | N/A |
3536
| PyPy 3.8 v7.3 |||| N/A | N/A | ✅¹ | ✅¹ | ✅¹ | N/A | N/A |
3637
| PyPy 3.9 v7.3 |||| N/A | N/A | ✅¹ | ✅¹ | ✅¹ | N/A | N/A |
3738
| PyPy 3.10 v7.3 |||| N/A | N/A | ✅¹ | ✅¹ | ✅¹ | N/A | N/A |
3839

3940
<sup>¹ PyPy is only supported for manylinux wheels.</sup><br>
4041
<sup>² Windows arm64 support is experimental.</sup><br>
42+
<sup>³ CPython 3.13 is available using the [CIBW_PRERELEASE_PYTHONS](https://cibuildwheel.pypa.io/en/stable/options/#prerelease-pythons) option.</sup><br>
4143

4244
- Builds manylinux, musllinux, macOS 10.9+, and Windows wheels for CPython and PyPy
4345
- Works on GitHub Actions, Azure Pipelines, Travis CI, AppVeyor, CircleCI, GitLab CI, and Cirrus CI

cibuildwheel/resources/build-platforms.toml

+16
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,15 @@ python_configurations = [
77
{ identifier = "cp310-manylinux_x86_64", version = "3.10", path_str = "/opt/python/cp310-cp310" },
88
{ identifier = "cp311-manylinux_x86_64", version = "3.11", path_str = "/opt/python/cp311-cp311" },
99
{ identifier = "cp312-manylinux_x86_64", version = "3.12", path_str = "/opt/python/cp312-cp312" },
10+
{ identifier = "cp313-manylinux_x86_64", version = "3.13", path_str = "/opt/python/cp313-cp313" },
1011
{ identifier = "cp36-manylinux_i686", version = "3.6", path_str = "/opt/python/cp36-cp36m" },
1112
{ identifier = "cp37-manylinux_i686", version = "3.7", path_str = "/opt/python/cp37-cp37m" },
1213
{ identifier = "cp38-manylinux_i686", version = "3.8", path_str = "/opt/python/cp38-cp38" },
1314
{ identifier = "cp39-manylinux_i686", version = "3.9", path_str = "/opt/python/cp39-cp39" },
1415
{ identifier = "cp310-manylinux_i686", version = "3.10", path_str = "/opt/python/cp310-cp310" },
1516
{ identifier = "cp311-manylinux_i686", version = "3.11", path_str = "/opt/python/cp311-cp311" },
1617
{ identifier = "cp312-manylinux_i686", version = "3.12", path_str = "/opt/python/cp312-cp312" },
18+
{ identifier = "cp313-manylinux_i686", version = "3.13", path_str = "/opt/python/cp313-cp313" },
1719
{ identifier = "pp37-manylinux_x86_64", version = "3.7", path_str = "/opt/python/pp37-pypy37_pp73" },
1820
{ identifier = "pp38-manylinux_x86_64", version = "3.8", path_str = "/opt/python/pp38-pypy38_pp73" },
1921
{ identifier = "pp39-manylinux_x86_64", version = "3.9", path_str = "/opt/python/pp39-pypy39_pp73" },
@@ -25,20 +27,23 @@ python_configurations = [
2527
{ identifier = "cp310-manylinux_aarch64", version = "3.10", path_str = "/opt/python/cp310-cp310" },
2628
{ identifier = "cp311-manylinux_aarch64", version = "3.11", path_str = "/opt/python/cp311-cp311" },
2729
{ identifier = "cp312-manylinux_aarch64", version = "3.12", path_str = "/opt/python/cp312-cp312" },
30+
{ identifier = "cp313-manylinux_aarch64", version = "3.13", path_str = "/opt/python/cp313-cp313" },
2831
{ identifier = "cp36-manylinux_ppc64le", version = "3.6", path_str = "/opt/python/cp36-cp36m" },
2932
{ identifier = "cp37-manylinux_ppc64le", version = "3.7", path_str = "/opt/python/cp37-cp37m" },
3033
{ identifier = "cp38-manylinux_ppc64le", version = "3.8", path_str = "/opt/python/cp38-cp38" },
3134
{ identifier = "cp39-manylinux_ppc64le", version = "3.9", path_str = "/opt/python/cp39-cp39" },
3235
{ identifier = "cp310-manylinux_ppc64le", version = "3.10", path_str = "/opt/python/cp310-cp310" },
3336
{ identifier = "cp311-manylinux_ppc64le", version = "3.11", path_str = "/opt/python/cp311-cp311" },
3437
{ identifier = "cp312-manylinux_ppc64le", version = "3.12", path_str = "/opt/python/cp312-cp312" },
38+
{ identifier = "cp313-manylinux_ppc64le", version = "3.13", path_str = "/opt/python/cp313-cp313" },
3539
{ identifier = "cp36-manylinux_s390x", version = "3.6", path_str = "/opt/python/cp36-cp36m" },
3640
{ identifier = "cp37-manylinux_s390x", version = "3.7", path_str = "/opt/python/cp37-cp37m" },
3741
{ identifier = "cp38-manylinux_s390x", version = "3.8", path_str = "/opt/python/cp38-cp38" },
3842
{ identifier = "cp39-manylinux_s390x", version = "3.9", path_str = "/opt/python/cp39-cp39" },
3943
{ identifier = "cp310-manylinux_s390x", version = "3.10", path_str = "/opt/python/cp310-cp310" },
4044
{ identifier = "cp311-manylinux_s390x", version = "3.11", path_str = "/opt/python/cp311-cp311" },
4145
{ identifier = "cp312-manylinux_s390x", version = "3.12", path_str = "/opt/python/cp312-cp312" },
46+
{ identifier = "cp313-manylinux_s390x", version = "3.13", path_str = "/opt/python/cp313-cp313" },
4247
{ identifier = "pp37-manylinux_aarch64", version = "3.7", path_str = "/opt/python/pp37-pypy37_pp73" },
4348
{ identifier = "pp38-manylinux_aarch64", version = "3.8", path_str = "/opt/python/pp38-pypy38_pp73" },
4449
{ identifier = "pp39-manylinux_aarch64", version = "3.9", path_str = "/opt/python/pp39-pypy39_pp73" },
@@ -54,34 +59,39 @@ python_configurations = [
5459
{ identifier = "cp310-musllinux_x86_64", version = "3.10", path_str = "/opt/python/cp310-cp310" },
5560
{ identifier = "cp311-musllinux_x86_64", version = "3.11", path_str = "/opt/python/cp311-cp311" },
5661
{ identifier = "cp312-musllinux_x86_64", version = "3.12", path_str = "/opt/python/cp312-cp312" },
62+
{ identifier = "cp313-musllinux_x86_64", version = "3.13", path_str = "/opt/python/cp313-cp313" },
5763
{ identifier = "cp36-musllinux_i686", version = "3.6", path_str = "/opt/python/cp36-cp36m" },
5864
{ identifier = "cp37-musllinux_i686", version = "3.7", path_str = "/opt/python/cp37-cp37m" },
5965
{ identifier = "cp38-musllinux_i686", version = "3.8", path_str = "/opt/python/cp38-cp38" },
6066
{ identifier = "cp39-musllinux_i686", version = "3.9", path_str = "/opt/python/cp39-cp39" },
6167
{ identifier = "cp310-musllinux_i686", version = "3.10", path_str = "/opt/python/cp310-cp310" },
6268
{ identifier = "cp311-musllinux_i686", version = "3.11", path_str = "/opt/python/cp311-cp311" },
6369
{ identifier = "cp312-musllinux_i686", version = "3.12", path_str = "/opt/python/cp312-cp312" },
70+
{ identifier = "cp313-musllinux_i686", version = "3.13", path_str = "/opt/python/cp313-cp313" },
6471
{ identifier = "cp36-musllinux_aarch64", version = "3.6", path_str = "/opt/python/cp36-cp36m" },
6572
{ identifier = "cp37-musllinux_aarch64", version = "3.7", path_str = "/opt/python/cp37-cp37m" },
6673
{ identifier = "cp38-musllinux_aarch64", version = "3.8", path_str = "/opt/python/cp38-cp38" },
6774
{ identifier = "cp39-musllinux_aarch64", version = "3.9", path_str = "/opt/python/cp39-cp39" },
6875
{ identifier = "cp310-musllinux_aarch64", version = "3.10", path_str = "/opt/python/cp310-cp310" },
6976
{ identifier = "cp311-musllinux_aarch64", version = "3.11", path_str = "/opt/python/cp311-cp311" },
7077
{ identifier = "cp312-musllinux_aarch64", version = "3.12", path_str = "/opt/python/cp312-cp312" },
78+
{ identifier = "cp313-musllinux_aarch64", version = "3.13", path_str = "/opt/python/cp313-cp313" },
7179
{ identifier = "cp36-musllinux_ppc64le", version = "3.6", path_str = "/opt/python/cp36-cp36m" },
7280
{ identifier = "cp37-musllinux_ppc64le", version = "3.7", path_str = "/opt/python/cp37-cp37m" },
7381
{ identifier = "cp38-musllinux_ppc64le", version = "3.8", path_str = "/opt/python/cp38-cp38" },
7482
{ identifier = "cp39-musllinux_ppc64le", version = "3.9", path_str = "/opt/python/cp39-cp39" },
7583
{ identifier = "cp310-musllinux_ppc64le", version = "3.10", path_str = "/opt/python/cp310-cp310" },
7684
{ identifier = "cp311-musllinux_ppc64le", version = "3.11", path_str = "/opt/python/cp311-cp311" },
7785
{ identifier = "cp312-musllinux_ppc64le", version = "3.12", path_str = "/opt/python/cp312-cp312" },
86+
{ identifier = "cp313-musllinux_ppc64le", version = "3.13", path_str = "/opt/python/cp313-cp313" },
7887
{ identifier = "cp36-musllinux_s390x", version = "3.6", path_str = "/opt/python/cp36-cp36m" },
7988
{ identifier = "cp37-musllinux_s390x", version = "3.7", path_str = "/opt/python/cp37-cp37m" },
8089
{ identifier = "cp38-musllinux_s390x", version = "3.8", path_str = "/opt/python/cp38-cp38" },
8190
{ identifier = "cp39-musllinux_s390x", version = "3.9", path_str = "/opt/python/cp39-cp39" },
8291
{ identifier = "cp310-musllinux_s390x", version = "3.10", path_str = "/opt/python/cp310-cp310" },
8392
{ identifier = "cp311-musllinux_s390x", version = "3.11", path_str = "/opt/python/cp311-cp311" },
8493
{ identifier = "cp312-musllinux_s390x", version = "3.12", path_str = "/opt/python/cp312-cp312" },
94+
{ identifier = "cp313-musllinux_s390x", version = "3.13", path_str = "/opt/python/cp313-cp313" },
8595
]
8696

8797
[macos]
@@ -103,6 +113,9 @@ python_configurations = [
103113
{ identifier = "cp312-macosx_x86_64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.3/python-3.12.3-macos11.pkg" },
104114
{ identifier = "cp312-macosx_arm64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.3/python-3.12.3-macos11.pkg" },
105115
{ identifier = "cp312-macosx_universal2", version = "3.12", url = "https://www.python.org/ftp/python/3.12.3/python-3.12.3-macos11.pkg" },
116+
{ identifier = "cp313-macosx_x86_64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0b1-macos11.pkg" },
117+
{ identifier = "cp313-macosx_arm64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0b1-macos11.pkg" },
118+
{ identifier = "cp313-macosx_universal2", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0b1-macos11.pkg" },
106119
{ identifier = "pp37-macosx_x86_64", version = "3.7", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.9-osx64.tar.bz2" },
107120
{ identifier = "pp38-macosx_x86_64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-macos_x86_64.tar.bz2" },
108121
{ identifier = "pp38-macosx_arm64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-macos_arm64.tar.bz2" },
@@ -128,10 +141,13 @@ python_configurations = [
128141
{ identifier = "cp311-win_amd64", version = "3.11.9", arch = "64" },
129142
{ identifier = "cp312-win32", version = "3.12.3", arch = "32" },
130143
{ identifier = "cp312-win_amd64", version = "3.12.3", arch = "64" },
144+
{ identifier = "cp313-win32", version = "3.13.0-b1", arch = "32" },
145+
{ identifier = "cp313-win_amd64", version = "3.13.0-b1", arch = "64" },
131146
{ identifier = "cp39-win_arm64", version = "3.9.10", arch = "ARM64" },
132147
{ identifier = "cp310-win_arm64", version = "3.10.11", arch = "ARM64" },
133148
{ identifier = "cp311-win_arm64", version = "3.11.9", arch = "ARM64" },
134149
{ identifier = "cp312-win_arm64", version = "3.12.3", arch = "ARM64" },
150+
{ identifier = "cp313-win_arm64", version = "3.13.0-b1", arch = "ARM64" },
135151
{ identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.9-win64.zip" },
136152
{ identifier = "pp38-win_amd64", version = "3.8", arch = "64", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-win64.zip" },
137153
{ identifier = "pp39-win_amd64", version = "3.9", arch = "64", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-win64.zip" },
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# This file was autogenerated by uv via the following command:
2+
# nox -s update_constraints
3+
altgraph==0.17.4
4+
# via macholib
5+
build==1.2.1
6+
delocate==0.11.0
7+
distlib==0.3.8
8+
# via virtualenv
9+
filelock==3.14.0
10+
# via virtualenv
11+
macholib==1.16.3
12+
# via delocate
13+
packaging==24.0
14+
# via
15+
# build
16+
# delocate
17+
pip==24.0
18+
platformdirs==4.2.1
19+
# via virtualenv
20+
pyproject-hooks==1.1.0
21+
# via build
22+
typing-extensions==4.11.0
23+
# via delocate
24+
virtualenv==20.26.1
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,54 @@
11
[x86_64]
22
manylinux1 = quay.io/pypa/manylinux1_x86_64:2024-04-29-76807b8
33
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177
4-
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2024-04-29-07d05a0
4+
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2024-05-09-1a2df19
55
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-12-26-0d38463
6-
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2024-04-29-07d05a0
7-
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2024-04-29-07d05a0
8-
musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2024-04-29-07d05a0
6+
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2024-05-09-1a2df19
7+
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2024-05-09-1a2df19
8+
musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2024-05-09-1a2df19
99

1010
[i686]
1111
manylinux1 = quay.io/pypa/manylinux1_i686:2024-04-29-76807b8
1212
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177
13-
manylinux2014 = quay.io/pypa/manylinux2014_i686:2024-04-29-07d05a0
13+
manylinux2014 = quay.io/pypa/manylinux2014_i686:2024-05-09-1a2df19
1414
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463
15-
musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2024-04-29-07d05a0
16-
musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2024-04-29-07d05a0
15+
musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2024-05-09-1a2df19
16+
musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2024-05-09-1a2df19
1717

1818
[pypy_x86_64]
1919
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177
20-
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2024-04-29-07d05a0
20+
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2024-05-09-1a2df19
2121
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-12-26-0d38463
22-
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2024-04-29-07d05a0
22+
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2024-05-09-1a2df19
2323

2424
[pypy_i686]
2525
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177
26-
manylinux2014 = quay.io/pypa/manylinux2014_i686:2024-04-29-07d05a0
26+
manylinux2014 = quay.io/pypa/manylinux2014_i686:2024-05-09-1a2df19
2727
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463
2828

2929
[aarch64]
30-
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2024-04-29-07d05a0
30+
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2024-05-09-1a2df19
3131
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463
32-
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2024-04-29-07d05a0
33-
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2024-04-29-07d05a0
34-
musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2024-04-29-07d05a0
32+
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2024-05-09-1a2df19
33+
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2024-05-09-1a2df19
34+
musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2024-05-09-1a2df19
3535

3636
[ppc64le]
37-
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2024-04-29-07d05a0
37+
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2024-05-09-1a2df19
3838
manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-12-26-0d38463
39-
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2024-04-29-07d05a0
40-
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2024-04-29-07d05a0
41-
musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2024-04-29-07d05a0
39+
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2024-05-09-1a2df19
40+
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2024-05-09-1a2df19
41+
musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2024-05-09-1a2df19
4242

4343
[s390x]
44-
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2024-04-29-07d05a0
44+
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2024-05-09-1a2df19
4545
manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-12-26-0d38463
46-
manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2024-04-29-07d05a0
47-
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2024-04-29-07d05a0
48-
musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2024-04-29-07d05a0
46+
manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2024-05-09-1a2df19
47+
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2024-05-09-1a2df19
48+
musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2024-05-09-1a2df19
4949

5050
[pypy_aarch64]
51-
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2024-04-29-07d05a0
51+
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2024-05-09-1a2df19
5252
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463
53-
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2024-04-29-07d05a0
53+
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2024-05-09-1a2df19
5454

cibuildwheel/util.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ class BuildSelector:
238238
requires_python: SpecifierSet | None = None
239239

240240
# a pattern that skips prerelease versions, when include_prereleases is False.
241-
PRERELEASE_SKIP: ClassVar[str] = ""
241+
PRERELEASE_SKIP: ClassVar[str] = "cp313-*"
242242
prerelease_pythons: bool = False
243243

244244
def __call__(self, build_id: str) -> bool:

0 commit comments

Comments
 (0)