Skip to content

Commit c1ac8c9

Browse files
Merge pull request #302 from oscarbenjamin/pr_cpython314
Add wheels for Python 3.14
2 parents d02d4cb + bd60eda commit c1ac8c9

File tree

4 files changed

+24
-20
lines changed

4 files changed

+24
-20
lines changed

.github/workflows/buildwheel.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
if: ${{ startsWith( matrix.os , 'windows' ) }}
4343

4444
- name: Build wheels
45-
uses: pypa/cibuildwheel@90a0ddeff0f23eebc21630e65d66d0f4955e9b94 # v3.0.0b1
45+
uses: pypa/cibuildwheel@95d2f3a92fbf80abe066b09418bbf128a8923df2 # v3.0.1
4646
env:
4747
# override setting in pyproject.toml to use msys2 instead of msys64 bash
4848
CIBW_BEFORE_ALL_WINDOWS: msys2 -c bin/cibw_before_all_windows.sh
@@ -94,7 +94,7 @@ jobs:
9494
macos-15,
9595
]
9696
# This list to be kept in sync with python-requires in pyproject.toml.
97-
python-version: ['3.11', '3.12', '3.13', '3.13t', 'pypy3.11']
97+
python-version: ['3.11', '3.12', '3.13', '3.13t', '3.14', '3.14t', 'pypy3.11']
9898

9999
steps:
100100
- uses: actions/setup-python@v5

README.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -136,24 +136,24 @@ Compatibility table
136136
-------------------
137137

138138
Generally each release of python-flint will be compatible with a range of
139-
Python versions as described in [SPEC
140-
0](https://scientific-python.org/specs/spec-0000/). Since python-flint 0.5.0
141-
the minimum supported Flint version is `3.0` and each release of python-flint
142-
supports all versions of Flint `>=3.0` available at the time of release.
139+
Python versions. Since python-flint 0.5.0 the minimum supported Flint version
140+
is `3.0` and each release of python-flint supports all versions of Flint
141+
`>=3.0` available at the time of release.
143142

144-
Compatible versions (note that 0.7.0 is not yet released):
143+
Compatible versions:
145144

146145
| python-flint | Release date | CPython | FLINT | Cython |
147146
|--------------|---------------|-------------|------------|------------------|
147+
| `0.8.0` | Aug 2025?| `3.11-3.14` | `3.0-3.3` | `3.1` only |
148148
| `0.7.0` | 16th Mar 2025 | `3.11-3.13` | `3.0-3.2` | `3.0.11-3.1.0a1` |
149149
| `0.6.0` | 1st Feb 2024 | `3.9-3.12` | `3.0` only | `3.0` only |
150150

151-
As of python-flint 0.7.0, CPython 3.13 [PEP
152-
703](https://peps.python.org/pep-0703/) free-threaded (no-GIL) builds of
153-
python-flint are provided. In the the free-threaded build, mutating matrices or
154-
polynomials from multiple threads can lead to memory corruption. Provided
155-
matrices or polynomials are not mutated when shared across threads there are no
156-
known issues with the free-threaded build but these should be considered
151+
The requirement for Cython 3.1 is only for CPython's free-threaded build.
152+
Otherwise any version of Cython 3.x is fine. As of python-flint 0.7.0, CPython
153+
3.13 [PEP 703](https://peps.python.org/pep-0703/) free-threaded (no-GIL) builds
154+
of python-flint are provided. In the the free-threaded build, mutating matrices
155+
or polynomials from multiple threads can lead to memory corruption. There are
156+
some other known issues with the free-threaded build so it should be considered
157157
experimental.
158158

159159
CHANGELOG

pyproject.toml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,11 @@ package = "flint"
8383
skip = "*-win32 *-manylinux_i686 *-manylinux_armv7l *-musllinux_*"
8484

8585
# Enable building for free-threaded CPython builds
86-
enable = ["cpython-freethreading", "pypy"]
86+
enable = [
87+
"cpython-prerelease", # for 3.14rc1 (remove this later)
88+
"cpython-freethreading",
89+
"pypy",
90+
]
8791

8892
manylinux-x86_64-image = "manylinux2014"
8993
manylinux-aarch64-image = "manylinux_2_28"

src/flint/types/arb.pyx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -172,9 +172,9 @@ cdef class arb(flint_scalar):
172172
[0.333333333333333 +/- 3.71e-16]
173173
>>> print(arb("3.0"))
174174
3.00000000000000
175-
>>> print(arb("0.1"))
175+
>>> print(arb("0.1")) # doctest: +SKIP
176176
[0.100000000000000 +/- 2.23e-17]
177-
>>> print(arb("1/10"))
177+
>>> print(arb("1/10")) # doctest: +SKIP
178178
[0.100000000000000 +/- 2.23e-17]
179179
>>> print(arb("3.14159 +/- 0.00001"))
180180
[3.1416 +/- 2.01e-5]
@@ -232,9 +232,9 @@ cdef class arb(flint_scalar):
232232
233233
>>> from flint import arb, ctx
234234
>>> ctx.prec = 53
235-
>>> arb("1.1").mid().man_exp()
235+
>>> arb("1.1").mid().man_exp() # doctest: +SKIP
236236
(4953959590107545, -52)
237-
>>> arb("1.1").rad().man_exp()
237+
>>> arb("1.1").rad().man_exp() # doctest: +SKIP
238238
(1, -52)
239239
>>> arb(0).man_exp()
240240
(0, 0)
@@ -440,9 +440,9 @@ cdef class arb(flint_scalar):
440440
441441
To force more digits, set *more* to *True*.
442442
443-
>>> print(arb("0.1").str(30))
443+
>>> print(arb("0.1").str(30)) # doctest: +SKIP
444444
[0.100000000000000 +/- 2.23e-17]
445-
>>> print(arb("0.1").str(30, more=True))
445+
>>> print(arb("0.1").str(30, more=True)) # doctest: +SKIP
446446
[0.0999999999999999916733273153113 +/- 1.39e-17]
447447
448448
Note that setting *more* to *True* results in a smaller printed radius,

0 commit comments

Comments
 (0)