@@ -13,6 +13,7 @@ runner = uv-venv-lock-runner
1313[testenv]
1414basepython = python3.14
1515uv_python = >=3.12
16+ dependency_groups = dev
1617allowlist_externals =
1718 pytest
1819 ruff
@@ -23,12 +24,6 @@ allowlist_externals =
2324
2425[testenv:all-checks]
2526description = Run all quality checks (lint, typecheck, spellcheck, mdformat)
26- extras =
27- lint
28- typecheck
29- test
30- docs
31- mdformat
3227commands =
3328 {[testenv:lint]commands}
3429 {[testenv:typecheck]commands}
@@ -37,52 +32,41 @@ commands =
3732
3833[testenv:lint]
3934description = Lint and code formatting checks (ruff)
40- extras = lint
4135commands =
4236 ruff check --no-fix --show-fixes src tests
4337 ruff format --check src tests
4438
4539[testenv:fix]
4640description = Auto-fix linting and formatting issues (ruff)
47- extras = lint
4841commands =
4942 ruff check --fix src tests
5043 ruff format src tests
5144
5245[testenv:typecheck]
5346description = Run type checking (mypy)
54- extras =
55- typecheck
56- test
5747commands = mypy src tests
5848
5949[testenv:spellcheck]
6050description = Run spell checking (codespell)
61- extras = docs
6251commands = codespell src tests docs README.md CLAUDE.md --skip =" *.lock,*.svg,.git,__pycache__,.mypy_cache,.pytest_cache" --ignore-words =.codespell-ignore-words.txt
6352
6453[testenv:mdformat]
6554description = Check markdown formatting for docs (mdformat)
66- extras = mdformat
6755commands = mdformat docs/
6856
6957[testenv:pytest]
7058description = Run tests (pytest)
71- extras = test
7259# parallelize with `auto` but keep max processes reasonable for CI
7360commands = pytest {posargs} tests -n auto --maxprocesses =10 --durations =10 --dist =worksteal
7461
7562[testenv:pytest-cov]
7663description = Run tests with coverage (pytest)
77- extras = test
7864commands = pytest --cov --cov-report =html --cov-report =term {posargs}
7965
8066[testenv:docs]
8167description = Serve documentation locally (mkdocs)
82- extras = docs
8368commands = mkdocs serve {posargs}
8469
8570[testenv:docs-build]
8671description = Build documentation (mkdocs)
87- extras = docs
8872commands = mkdocs build {posargs}
0 commit comments