[tox] env_list = py38,py39,py310,py311 minversion = 4.5.1 [gh-actions] # Map Github Actions Python version to environment factors # Requires tox-gh-actions 3.x is installed in the GitHub action python = 3.8: py38 3.9: py39 3.10: py310 3.11: py311 [testenv] description = Run the tests with pytest package = wheel extras = all set_env = # trick poetry into adopting the tox virtualenv POETRY_VIRTUALENVS_PATH = {[tox]work_dir} allowlist_externals = poetry commands_pre = poetry install --no-root --sync --all-extras commands = python -X dev -m pytest {tty:--color=yes} {posargs} [testenv:lint] description = Run the linters skip_install = true commands_pre = poetry install --no-root --with=linting --sync --all-extras commands = ruff check --show-source . mypy pyright [testenv:format] description = Format the code skip_install = true commands_pre = poetry install --no-root --sync --with=linting commands = ruff check --fix . [testenv:lint_distributions] description = Lint distribution files with Twine skip_install = true commands_pre = poetry install --no-root --sync --only=distributing commands = twine check dist/*