[tox]
envlist=linting,docs,py{36,37,38,39,py3},py{36,37}-pytest{main}

[testenv]
commands=
  {env:_PLUGGY_TOX_CMD:pytest} {posargs}
  coverage: coverage report -m
  coverage: coverage xml
setenv=
  _PYTEST_SETUP_SKIP_PLUGGY_DEP=1
  coverage: _PLUGGY_TOX_CMD=coverage run -m pytest
extras=testing
deps=
  coverage: coverage
  pytestmain: git+https://github.com/pytest-dev/pytest.git@main

[testenv:benchmark]
commands=pytest {posargs:testing/benchmark.py}
deps=
  pytest
  pytest-benchmark

[testenv:linting]
skip_install = true
basepython = python3
deps = pre-commit
commands = pre-commit run --all-files --show-diff-on-failure

[testenv:docs]
deps =
  sphinx
  pygments
commands =
  sphinx-build -W -b html {toxinidir}/docs {toxinidir}/build/html-docs

[pytest]
minversion=2.0
testpaths = testing
#--pyargs --doctest-modules --ignore=.tox
addopts=-r a
filterwarnings =
  error

[flake8]
max-line-length=99

[testenv:release]
decription = do a release, required posarg of the version number
basepython = python3
skipsdist = True
usedevelop = True
passenv = *
deps =
    colorama
    gitpython
    towncrier
commands = python scripts/release.py {posargs}
