[tox] isolated_build = true envlist = # Keep this in sync with .github/workflows/main.yml py{38,39,310,311,312} formatting typecheck lint docs release_notes [gh-actions] python = 3.8: py38 3.9: py39 3.10: py310 3.11: py311, formatting, typecheck, lint, docs, release_notes 3.12: py312 [testenv] deps = beautifulsoup4 pytest commands = pytest {posargs} [testenv:formatting] basepython = python312 skip_install = true deps = black commands = black --check --diff autoapi tests [testenv:lint] skip_install = true deps = ruff commands = ruff check {posargs:autoapi} [testenv:typecheck] deps = mypy types-docutils types-PyYAML commands = mypy {posargs:autoapi} [testenv:docs] extras = docs deps = changedir = {toxinidir}/docs commands = sphinx-build -b html -d {envtmpdir}/doctrees . {envtmpdir}/html [testenv:release_notes] deps = towncrier importlib-resources<6 # pinned due to https://github.com/twisted/towncrier/issues/528 commands = towncrier {posargs:check}