Skip to content

Commit 9d387f8

Browse files
authored
Updates (#74)
2 parents eb92521 + b6ab8ff commit 9d387f8

File tree

9 files changed

+64
-42
lines changed

9 files changed

+64
-42
lines changed

.editorconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,7 @@ trim_trailing_whitespace = true
1010

1111
[{*.yml,*.yaml}]
1212
indent_size = 2
13+
14+
# The README contains YAML code that is indented with two spaces.
15+
[/README.rst]
16+
indent_size = unset

.github/workflows/test.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,14 @@ jobs:
3131
- "3.11"
3232
- "3.12"
3333
- "3.13"
34-
cpython-beta: "3.14"
34+
- "3.14"
3535
cache-paths:
3636
- ".mypy_cache/"
3737
cache-key-hash-files:
3838
- "pyproject.toml"
3939
- "requirements/*/*.txt"
40+
tox-skip-environments:
41+
- "coverage-html"
4042

4143
uses: "kurtmckee/github-workflows/.github/workflows/tox.yaml@a8716fc28daeb38133a50ef8dce70df9c65988ad" # v1.5
4244
with:

.pre-commit-config.yaml

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,19 @@ repos:
2323
- id: "trailing-whitespace"
2424

2525
- repo: "https://github.com/asottile/pyupgrade"
26-
rev: "v3.20.0"
26+
rev: "v3.21.2"
2727
hooks:
2828
- id: "pyupgrade"
2929
name: "Enforce Python 3.10+ idioms"
3030
args: ["--py310-plus"]
3131

3232
- repo: "https://github.com/psf/black-pre-commit-mirror"
33-
rev: "25.9.0"
33+
rev: "25.11.0"
3434
hooks:
3535
- id: "black"
3636

3737
- repo: "https://github.com/pycqa/isort"
38-
rev: "6.1.0"
38+
rev: "7.0.0"
3939
hooks:
4040
- id: "isort"
4141

@@ -45,24 +45,22 @@ repos:
4545
- id: "flake8"
4646
additional_dependencies:
4747
- "flake8-toml-config==1.0.0"
48-
- "flake8-bugbear==24.12.12"
48+
- "flake8-bugbear==25.10.21"
4949

5050
- repo: "https://github.com/editorconfig-checker/editorconfig-checker"
51-
rev: "v3.4.0"
51+
rev: "v3.5.0"
5252
hooks:
5353
- id: "editorconfig-checker"
54-
# The README contains YAML that isn't indented using 4 spaces.
55-
exclude: "README.rst"
5654

5755
- repo: "https://github.com/python-jsonschema/check-jsonschema"
58-
rev: "0.34.0"
56+
rev: "0.35.0"
5957
hooks:
6058
- id: "check-readthedocs"
6159
- id: "check-dependabot"
6260
- id: "check-github-workflows"
6361

6462
- repo: "https://github.com/rhysd/actionlint"
65-
rev: "v1.7.7"
63+
rev: "v1.7.9"
6664
hooks:
6765
- id: "actionlint"
6866

pyproject.toml

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,19 @@ strict = true
6565
sqlite_cache = true
6666

6767

68+
# pytest
69+
# ------
70+
71+
[tool.pytest]
72+
addopts = [
73+
"--color=yes",
74+
]
75+
filterwarnings = [
76+
"error",
77+
]
78+
strict = true
79+
80+
6881
# scriv
6982
# -----
7083

@@ -88,13 +101,3 @@ fragment_directory = "changelog.d"
88101
insert_marker = "scriv-insert-here"
89102
main_branches = ["main", "releases"]
90103
new_fragment_template = "file: fragment-template.rst.txt"
91-
92-
93-
# pytest
94-
# ------
95-
96-
[tool.pytest.ini_options]
97-
addopts = "--color=yes"
98-
filterwarnings = [
99-
"error",
100-
]

requirements/docs/requirements.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
alabaster==1.0.0 ; python_version >= "3.10"
22
babel==2.17.0 ; python_version >= "3.10"
3-
certifi==2025.8.3 ; python_version >= "3.10"
4-
charset-normalizer==3.4.3 ; python_version >= "3.10"
3+
certifi==2025.11.12 ; python_version >= "3.10"
4+
charset-normalizer==3.4.4 ; python_version >= "3.10"
55
colorama==0.4.6 ; python_version >= "3.10" and sys_platform == "win32"
66
docutils==0.21.2 ; python_version >= "3.10"
7-
idna==3.10 ; python_version >= "3.10"
7+
idna==3.11 ; python_version >= "3.10"
88
imagesize==1.4.1 ; python_version >= "3.10"
99
jinja2==3.1.6 ; python_version >= "3.10"
1010
markupsafe==3.0.3 ; python_version >= "3.10"
@@ -19,5 +19,5 @@ sphinxcontrib-htmlhelp==2.1.0 ; python_version >= "3.10"
1919
sphinxcontrib-jsmath==1.0.1 ; python_version >= "3.10"
2020
sphinxcontrib-qthelp==2.0.0 ; python_version >= "3.10"
2121
sphinxcontrib-serializinghtml==2.0.0 ; python_version >= "3.10"
22-
tomli==2.2.1 ; python_version == "3.10"
22+
tomli==2.3.0 ; python_version == "3.10"
2323
urllib3==2.5.0 ; python_version >= "3.10"

requirements/mypy/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
mypy-extensions==1.1.0 ; python_version >= "3.10"
22
mypy==1.18.2 ; python_version >= "3.10"
33
pathspec==0.12.1 ; python_version >= "3.10"
4-
tomli==2.2.1 ; python_version == "3.10"
4+
tomli==2.3.0 ; python_version == "3.10"
55
typing-extensions==4.15.0 ; python_version >= "3.10"
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
coverage==7.10.7 ; python_version >= "3.10"
2-
tomli==2.2.1 ; python_version >= "3.10" and python_full_version <= "3.11.0a6"
1+
coverage==7.12.0 ; python_version >= "3.10"
2+
tomli==2.3.0 ; python_version >= "3.10" and python_full_version <= "3.11.0a6"

requirements/test/requirements.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
colorama==0.4.6 ; python_version >= "3.10" and sys_platform == "win32"
2-
coverage==7.10.7 ; python_version >= "3.10"
2+
coverage==7.12.0 ; python_version >= "3.10"
33
exceptiongroup==1.3.0 ; python_version == "3.10"
4-
iniconfig==2.1.0 ; python_version >= "3.10"
4+
iniconfig==2.3.0 ; python_version >= "3.10"
55
packaging==25.0 ; python_version >= "3.10"
66
pluggy==1.6.0 ; python_version >= "3.10"
7-
pyfakefs==5.9.3 ; python_version >= "3.10"
7+
pyfakefs==5.10.2 ; python_version >= "3.10"
88
pygments==2.19.2 ; python_version >= "3.10"
99
pytest-randomly==4.0.1 ; python_version >= "3.10"
10-
pytest==8.4.2 ; python_version >= "3.10"
11-
tomli==2.2.1 ; python_version >= "3.10" and python_full_version <= "3.11.0a6"
10+
pytest==9.0.1 ; python_version >= "3.10"
11+
tomli==2.3.0 ; python_version >= "3.10" and python_full_version <= "3.11.0a6"
1212
typing-extensions==4.15.0 ; python_version == "3.10"

tox.ini

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,31 +11,43 @@ labels =
1111
prep-release=prep-release
1212

1313
[testenv]
14+
description = Test the code on Python {py_dot_ver}
1415
package = wheel
1516
wheel_build_env = build_wheel
1617
depends =
1718
py{3.14, 3.13, 3.12, 3.11, 3.10}: coverage-erase
1819
deps = -r requirements/test/requirements.txt
1920
commands = coverage run -m pytest {posargs}
2021

21-
[testenv:coverage-erase]
22+
[testenv:coverage-base]
23+
description = Base config for coverage-* environments
2224
deps = -r requirements/test/requirements-coverage.txt
2325
skip_install = true
26+
27+
[testenv:coverage-erase]
28+
description = Erase coverage data files
29+
base = coverage-base
2430
commands =
2531
coverage erase
2632

27-
[testenv:coverage-report{,-ci}]
33+
[testenv:coverage-report]
34+
description = Display a coverage report and verify the fail-under value
35+
base = coverage-base
2836
depends = py{3.14, 3.13, 3.12, 3.11, 3.10}
29-
deps = -r requirements/test/requirements-coverage.txt
30-
skip_install = true
3137
commands_pre =
3238
- coverage combine
3339
commands =
3440
coverage report
35-
commands_post =
36-
!ci: coverage html --fail-under=0
41+
42+
[testenv:coverage-html]
43+
description = Create an HTML coverage report
44+
base = coverage-base
45+
depends = py{3.14, 3.13, 3.12, 3.11, 3.10}, coverage-report
46+
commands =
47+
coverage html --fail-under=0
3748

3849
[testenv:build]
50+
description = Test building the project
3951
base_python = py3.13
4052
skip_install = true
4153
deps =
@@ -47,34 +59,37 @@ commands =
4759
twine check --strict dist/*
4860

4961
[testenv:mypy-py{3.14, 3.13, 3.12, 3.11, 3.10}]
62+
description = Test type annotations on Python {py_dot_ver}
5063
deps = -rrequirements/mypy/requirements.txt
5164
setenv =
5265
MYPY_FORCE_COLOR=1
5366
commands = mypy {posargs}
5467

5568
[testenv:docs]
69+
description = Test building the documentation
5670
base_python = py3.13
5771
skip_install = true
5872
deps = -rrequirements/docs/requirements.txt
5973
commands =
6074
sphinx-build -aWEnqb html docs/ build/docs
6175

62-
[testenv:update_base]
76+
[testenv:update-base]
77+
description = Base settings for update-* environments
6378
base_python = py3.13
6479
recreate = true
6580
skip_install = true
6681

6782
[testenv:update-headers]
68-
base = update_base
6983
description = Update headers
84+
base = update-base
7085
deps =
7186
chipshot
7287
commands =
7388
chipshot --update assets/ docs/ src/ tests/ requirements/README.rst CHANGELOG.rst README.rst
7489

7590
[testenv:update-pre-commit]
76-
base = update_base
7791
description = Update pre-commit hooks
92+
base = update-base
7893
deps =
7994
pre-commit
8095
upadup
@@ -83,8 +98,8 @@ commands =
8398
upadup
8499

85100
[testenv:update-requirements]
86-
base = update_base
87101
description = Update requirements files
102+
base = update-base
88103
deps =
89104
poetry
90105
poetry-plugin-export

0 commit comments

Comments
 (0)