; a generative tox configuration, see: https://tox.readthedocs.io/en/latest/config.html#generative-envlist [tox] envlist = clean, check, docs, {py38,py39,py310,py311,py312,py313,py314,pypy310,pypy311}, report ignore_basepython_conflict = true [testenv] basepython = pypy310: {env:TOXPYTHON:pypy3.10} pypy311: {env:TOXPYTHON:pypy3.11} py38: {env:TOXPYTHON:python3.8} py39: {env:TOXPYTHON:python3.9} py310: {env:TOXPYTHON:python3.10} py311: {env:TOXPYTHON:python3.11} py312: {env:TOXPYTHON:python3.12} py313: {env:TOXPYTHON:python3.13} py314: {env:TOXPYTHON:python3.14} {clean,check,report,docs,codecov}: {env:TOXPYTHON:python3} setenv = PYTHONPATH={toxinidir}/tests PYTHONUNBUFFERED=yes passenv = * usedevelop = false deps = pytest pytest-cov commands = {posargs:pytest --cov --cov-report=term-missing -vv tests} [testenv:check] deps = docutils check-manifest flake8 readme-renderer pygments isort skip_install = true commands = python setup.py check --strict --metadata --restructuredtext check-manifest {toxinidir} flake8 isort --verbose --check-only --diff --filter-files . [testenv:docs] usedevelop = true deps = -r{toxinidir}/docs/requirements.txt commands = sphinx-build {posargs:-E} -b html docs dist/docs sphinx-build -b linkcheck docs dist/docs [testenv:codecov] deps = codecov skip_install = true commands = codecov [] [testenv:report] deps = coverage skip_install = true commands = coverage report coverage html [testenv:clean] commands = coverage erase skip_install = true deps = coverage