Skip to content

Commit 2b49978

Browse files
authored
Add support for 3.14 and drop 3.9 (#163)
1 parent 26472ca commit 2b49978

File tree

9 files changed

+33
-35
lines changed

9 files changed

+33
-35
lines changed
File renamed without changes.

.github/release.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
changelog:
2+
exclude:
3+
authors:
4+
- dependabot[bot]
5+
- pre-commit-ci[bot]

.github/release.yml

Lines changed: 0 additions & 5 deletions
This file was deleted.

.github/workflows/check.yaml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,11 @@ jobs:
1919
fail-fast: false
2020
matrix:
2121
env:
22+
- "3.14"
2223
- "3.13"
2324
- "3.12"
2425
- "3.11"
2526
- "3.10"
26-
- "3.9"
27-
- "3.8"
2827
- type
2928
- dev
3029
- pkg_meta
@@ -39,9 +38,9 @@ jobs:
3938
cache-dependency-glob: "pyproject.toml"
4039
github-token: ${{ secrets.GITHUB_TOKEN }}
4140
- name: Install tox
42-
run: uv tool install --python-preference only-managed --python 3.13 tox --with tox-uv
41+
run: uv tool install --python-preference only-managed --python 3.14 tox --with tox-uv
4342
- name: Install Python
44-
if: startsWith(matrix.env, '3.') && matrix.env != '3.13'
43+
if: startsWith(matrix.env, '3.') && matrix.env != '3.14'
4544
run: uv python install --python-preference only-managed ${{ matrix.env }}
4645
- name: Setup test suite
4746
run: tox run -vv --notest --skip-missing-interpreters false -e ${{ matrix.env }}

.github/workflows/release.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
cache-dependency-glob: "pyproject.toml"
2121
github-token: ${{ secrets.GITHUB_TOKEN }}
2222
- name: Build package
23-
run: uv build --python 3.13 --python-preference only-managed --sdist --wheel . --out-dir dist
23+
run: uv build --python 3.14 --python-preference only-managed --sdist --wheel . --out-dir dist
2424
- name: Store the distribution packages
2525
uses: actions/upload-artifact@v4
2626
with:

.pre-commit-config.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,18 @@ repos:
1313
rev: v2.4.1
1414
hooks:
1515
- id: codespell
16-
additional_dependencies: ["tomli>=2.0.1"]
16+
additional_dependencies: ["tomli>=2.2.1"]
1717
- repo: https://github.com/tox-dev/tox-ini-fmt
1818
rev: "1.6.0"
1919
hooks:
2020
- id: tox-ini-fmt
2121
args: ["-p", "fix"]
2222
- repo: https://github.com/tox-dev/pyproject-fmt
23-
rev: "v2.7.0"
23+
rev: "v2.10.0"
2424
hooks:
2525
- id: pyproject-fmt
2626
- repo: https://github.com/astral-sh/ruff-pre-commit
27-
rev: "v0.13.3"
27+
rev: "v0.14.0"
2828
hooks:
2929
- id: ruff-format
3030
- id: ruff
@@ -34,8 +34,8 @@ repos:
3434
hooks:
3535
- id: prettier
3636
additional_dependencies:
37-
- prettier@3.3.3
38-
- "@prettier/plugin-xml@3.4.1"
37+
- prettier@3.6.2
38+
- "@prettier/plugin-xml@3.4.2"
3939
- repo: meta
4040
hooks:
4141
- id: check-hooks-apply

pyproject.toml

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
[build-system]
22
build-backend = "hatchling.build"
33
requires = [
4-
"hatch-vcs>=0.4",
5-
"hatchling>=1.25",
4+
"hatch-vcs>=0.5",
5+
"hatchling>=1.27",
66
]
77

88
[project]
@@ -17,16 +17,14 @@ license.file = "LICENSE"
1717
maintainers = [
1818
{ name = "Bernát Gábor", email = "gaborjbernat@gmail.com" },
1919
]
20-
requires-python = ">=3.8"
20+
requires-python = ">=3.10"
2121
classifiers = [
2222
"Development Status :: 5 - Production/Stable",
2323
"Intended Audience :: Developers",
2424
"License :: OSI Approved :: MIT License",
2525
"Operating System :: OS Independent",
2626
"Programming Language :: Python",
2727
"Programming Language :: Python :: 3 :: Only",
28-
"Programming Language :: Python :: 3.8",
29-
"Programming Language :: Python :: 3.9",
3028
"Programming Language :: Python :: 3.10",
3129
"Programming Language :: Python :: 3.11",
3230
"Programming Language :: Python :: 3.12",
@@ -38,13 +36,13 @@ dynamic = [
3836
"version",
3937
]
4038
dependencies = [
41-
"pytest>=8.3.3",
42-
"tomli>=2.0.1; python_version<'3.11'",
39+
"pytest>=8.4.2",
40+
"tomli>=2.2.1; python_version<'3.11'",
4341
]
4442
optional-dependencies.testing = [
4543
"covdefaults>=2.3",
46-
"coverage>=7.6.1",
47-
"pytest-mock>=3.14",
44+
"coverage>=7.10.7",
45+
"pytest-mock>=3.15.1",
4846
]
4947
urls.Homepage = "https://github.com/pytest-dev/pytest-env"
5048
urls.Source = "https://github.com/pytest-dev/pytest-env"
@@ -56,7 +54,6 @@ build.hooks.vcs.version-file = "src/pytest_env/version.py"
5654
version.source = "vcs"
5755

5856
[tool.ruff]
59-
target-version = "py38"
6057
line-length = 120
6158
format.preview = true
6259
format.docstring-code-line-length = 100
@@ -66,7 +63,6 @@ lint.select = [
6663
]
6764
lint.ignore = [
6865
"ANN101", # no type annotation for self
69-
"ANN401", # allow Any as type annotation
7066
"COM812", # Conflict with formatter
7167
"CPY", # No copyright statements
7268
"D203", # `one-blank-line-before-class` (D203) and `no-blank-line-before-class` (D211) are incompatible

src/pytest_env/plugin.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,13 @@
66
import sys
77
from dataclasses import dataclass
88
from itertools import chain
9-
from typing import Iterator
9+
from typing import TYPE_CHECKING
1010

1111
import pytest
1212

13+
if TYPE_CHECKING:
14+
from collections.abc import Iterator
15+
1316
if sys.version_info >= (3, 11): # pragma: >=3.11 cover
1417
import tomllib
1518
else: # pragma: <3.11 cover

tox.ini

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
[tox]
22
requires =
3-
tox>=4.2
4-
tox-uv>=1.11.3
3+
tox>=4.30.3
4+
tox-uv>=1.28
55
env_list =
66
fix
7+
3.14
78
3.13
89
3.12
910
3.11
1011
3.10
11-
3.9
1212
type
1313
pkg_meta
1414
skip_missing_interpreters = true
@@ -37,7 +37,7 @@ commands =
3737
description = run static analysis and style check using flake8
3838
skip_install = true
3939
deps =
40-
pre-commit-uv>=4.1.1
40+
pre-commit-uv>=4.1.5
4141
pass_env =
4242
HOMEPATH
4343
PROGRAMDATA
@@ -47,7 +47,7 @@ commands =
4747
[testenv:type]
4848
description = run type check on code base
4949
deps =
50-
mypy==1.11.2
50+
mypy==1.18.2
5151
commands =
5252
mypy --strict src
5353
mypy --strict tests
@@ -56,9 +56,9 @@ commands =
5656
description = check that the long description is valid
5757
skip_install = true
5858
deps =
59-
check-wheel-contents>=0.6
60-
twine>=5.1.1
61-
uv>=0.4.10
59+
check-wheel-contents>=0.6.3
60+
twine>=6.2
61+
uv>=0.8.22
6262
commands =
6363
uv build --sdist --wheel --out-dir {env_tmp_dir} .
6464
twine check {env_tmp_dir}{/}*

0 commit comments

Comments
 (0)