@@ -13,16 +13,16 @@ looponfailroots =
1313# Keep docs in sync with docs env and .readthedocs.yml.
1414[gh]
1515python =
16- 3.8 = py38, py38-numpy
17- 3.9 = py39, py39-numpy
1816 3.10 = py310, py310-numpy
1917 3.11 = py311, py311-numpy
20- 3.12 = py312, py312-numpy, lint, changelog, typing, docs
21- pypy3.9 = pypy3
18+ 3.12 = py312, py312-numpy
19+ 3.13 = py313, py313-numpy
20+ 3.14 = py314, py314-numpy, lint, changelog, typing, docs
21+ pypy3.11 = pypy3
2222
2323
2424[tox]
25- envlist = typing,lint,py38 {,-numpy},py39 {,-numpy},py310 {,-numpy},py311 {,-numpy},py312 {,-numpy},pypy{,-numpy},pypy3{,-numpy},docs,pypi-description,changelog,coverage-report
25+ envlist = typing,lint,py310 {,-numpy},py311 {,-numpy},py312 {,-numpy},py313 {,-numpy},py314 {,-numpy},pypy{,-numpy},pypy3{,-numpy},docs,pypi-description,changelog,coverage-report
2626isolated_build = True
2727
2828
@@ -35,83 +35,83 @@ extras = {env:TOX_AP_TEST_EXTRAS:tests}
3535commands = python -m pytest {posargs}
3636
3737
38- [testenv:py38 -numpy]
38+ [testenv:py310 -numpy]
3939extras = tests-numpy
4040commands = python -m pytest {posargs}
4141
4242
43- [testenv:py39 -numpy]
43+ [testenv:py311 -numpy]
4444extras = tests-numpy
4545commands = python -m pytest {posargs}
4646
4747
48- [testenv:py310 -numpy]
48+ [testenv:py312 -numpy]
4949extras = tests-numpy
5050commands = python -m pytest {posargs}
5151
5252
53- [testenv:py311 -numpy]
53+ [testenv:py313 -numpy]
5454extras = tests-numpy
5555commands = python -m pytest {posargs}
5656
5757
58- [testenv:py312 -numpy]
58+ [testenv:py314 -numpy]
5959extras = tests-numpy
6060commands = python -m pytest {posargs}
6161
6262
63- [testenv:py38 ]
63+ [testenv:py310 ]
6464# Python 3.6+ has a number of compile-time warnings on invalid string escapes.
6565# PYTHONWARNINGS=d and --no-compile below make them visible during the Tox run.
66- basepython = python3.8
66+ basepython = python3.10
6767setenv =
6868 PYTHONWARNINGS =d
6969extras = {env:TOX_AP_TEST_EXTRAS:tests}
7070commands = coverage run -m pytest {posargs}
7171
7272
73- [testenv:py39 ]
73+ [testenv:py311 ]
7474# Python 3.6+ has a number of compile-time warnings on invalid string escapes.
7575# PYTHONWARNINGS=d and --no-compile below make them visible during the Tox run.
76- basepython = python3.9
76+ basepython = python3.11
7777setenv =
7878 PYTHONWARNINGS =d
7979extras = {env:TOX_AP_TEST_EXTRAS:tests}
8080commands = coverage run -m pytest {posargs}
8181
8282
83- [testenv:py310 ]
83+ [testenv:py312 ]
8484# Python 3.6+ has a number of compile-time warnings on invalid string escapes.
8585# PYTHONWARNINGS=d and --no-compile below make them visible during the Tox run.
86- basepython = python3.10
86+ basepython = python3.12
8787setenv =
8888 PYTHONWARNINGS =d
8989extras = {env:TOX_AP_TEST_EXTRAS:tests}
9090commands = coverage run -m pytest {posargs}
9191
9292
93- [testenv:py311 ]
93+ [testenv:py313 ]
9494# Python 3.6+ has a number of compile-time warnings on invalid string escapes.
9595# PYTHONWARNINGS=d and --no-compile below make them visible during the Tox run.
96- basepython = python3.11
96+ basepython = python3.13
9797setenv =
9898 PYTHONWARNINGS =d
9999extras = {env:TOX_AP_TEST_EXTRAS:tests}
100100commands = coverage run -m pytest {posargs}
101101
102102
103- [testenv:py312 ]
103+ [testenv:py314 ]
104104# Python 3.6+ has a number of compile-time warnings on invalid string escapes.
105105# PYTHONWARNINGS=d and --no-compile below make them visible during the Tox run.
106- basepython = python3.12
106+ basepython = python3.14
107107setenv =
108108 PYTHONWARNINGS =d
109109extras = {env:TOX_AP_TEST_EXTRAS:tests}
110110commands = coverage run -m pytest {posargs}
111111
112112
113113[testenv:coverage-report]
114- basepython = python3.12
114+ basepython = python3.14
115115skip_install = true
116116deps = coverage[toml]>=5.0.2
117117commands =
@@ -120,7 +120,7 @@ commands =
120120
121121
122122[testenv:lint]
123- basepython = python3.12
123+ basepython = python3.14
124124skip_install = true
125125deps =
126126 pre-commit
@@ -131,14 +131,14 @@ commands =
131131
132132[testenv:docs]
133133# Keep basepython in sync with gh-actions and .readthedocs.yml.
134- basepython = python3.12
134+ basepython = python3.14
135135extras = docs
136136commands =
137137 sphinx-build -n -T -b html -d {envtmpdir}/doctrees doc doc/_build/html
138138
139139
140140[testenv:pypi-description]
141- basepython = python3.12
141+ basepython = python3.14
142142skip_install = true
143143deps =
144144 twine
@@ -149,15 +149,15 @@ commands =
149149
150150
151151[testenv:changelog]
152- basepython = python3.12
152+ basepython = python3.14
153153deps =
154154 towncrier
155155skip_install = true
156156commands = towncrier --draft
157157
158158
159159[testenv:typing]
160- basepython = python3.12
160+ basepython = python3.14
161161deps =
162162 mypy <= 1.10.1
163163 types-mock
0 commit comments