[tox]
envlist = lint, py3{8,9,10,11}-cov, htmlcov
skip_missing_interpreters = true

[testenv]
deps =
    -r requirements.txt
    -r dev-requirements.txt
; download the latest pip, setuptools and wheel when creating the venv
download = true
commands =
    # run the test suite against the package installed inside tox env.
    # We use parallel mode and then combine later so that coverage.py will take
    # paths like .tox/py37/lib/python3.7/site-packages/fontTools and collapse
    # them into Lib/fontTools.
    cov: coverage run --parallel-mode -m pytest {posargs}
    !cov: pytest {posargs}

[testenv:lint]
skip_install = true
deps =
    -r dev-requirements.txt
commands =
    black --check --diff .
    isort --gitignore --check-only --diff .
    flake8

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

[testenv:codecov]
passenv = *
deps =
    coverage
    codecov
skip_install = true
ignore_outcome = true
commands =
    coverage combine
    codecov --env TOXENV

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

[isort]
profile = black
known_first_party = ufo2ft
