[tox]
envlist = lint, py3{7,8,9}, pypy3, coverage-report
skip_missing_interpreters = true

[testenv]
deps =
    -r requirements.txt
    -r test_requirements.txt
; download the latest pip, setuptools and wheel when creating the venv
download = true
commands =
    coverage run --parallel-mode -m pytest {posargs}

[testenv:lint]
skip_install = true
deps =
    -r test_requirements.txt
commands =
    black --check --diff --extend-exclude "_version.py" .

[testenv:coverage-report]
skip_install = true
commands =
    coverage combine
    coverage xml
    coverage report
    coverage html

[flake8]
select = C, E, F, W, B, B9
ignore = E203, E266, E501, W503
max-line-length = 88
exclude = .git, __pycache__, build, dist, .eggs, .tox, venv, venv*, .venv, .venv*

[isort]
profile = black