@@ -13,22 +13,10 @@ runner = uv-venv-lock-runner
1313[testenv]
1414basepython = python3.14
1515uv_python = >=3.12
16- allowlist_externals =
17- pytest
18- ruff
19- mypy
20- codespell
21- mdformat
22- mkdocs
16+ dependency_groups = dev
2317
2418[testenv:all-checks]
2519description = Run all quality checks (lint, typecheck, spellcheck, mdformat)
26- extras =
27- lint
28- typecheck
29- test
30- docs
31- mdformat
3220commands =
3321 {[testenv:lint]commands}
3422 {[testenv:typecheck]commands}
@@ -37,52 +25,41 @@ commands =
3725
3826[testenv:lint]
3927description = Lint and code formatting checks (ruff)
40- extras = lint
4128commands =
4229 ruff check --no-fix --show-fixes src tests
4330 ruff format --check src tests
4431
4532[testenv:fix]
4633description = Auto-fix linting and formatting issues (ruff)
47- extras = lint
4834commands =
4935 ruff check --fix src tests
5036 ruff format src tests
5137
5238[testenv:typecheck]
5339description = Run type checking (mypy)
54- extras =
55- typecheck
56- test
5740commands = mypy src tests
5841
5942[testenv:spellcheck]
6043description = Run spell checking (codespell)
61- extras = docs
6244commands = codespell src tests docs README.md CLAUDE.md --skip =" *.lock,*.svg,.git,__pycache__,.mypy_cache,.pytest_cache" --ignore-words =.codespell-ignore-words.txt
6345
6446[testenv:mdformat]
6547description = Check markdown formatting for docs (mdformat)
66- extras = mdformat
6748commands = mdformat docs/
6849
6950[testenv:pytest]
7051description = Run tests (pytest)
71- extras = test
7252# parallelize with `auto` but keep max processes reasonable for CI
7353commands = pytest {posargs} tests -n auto --maxprocesses =10 --durations =10 --dist =worksteal
7454
7555[testenv:pytest-cov]
7656description = Run tests with coverage (pytest)
77- extras = test
7857commands = pytest --cov --cov-report =html --cov-report =term {posargs}
7958
8059[testenv:docs]
8160description = Serve documentation locally (mkdocs)
82- extras = docs
8361commands = mkdocs serve {posargs}
8462
8563[testenv:docs-build]
8664description = Build documentation (mkdocs)
87- extras = docs
8865commands = mkdocs build {posargs}
0 commit comments