[tox]
isolated_build = True
envlist = clean,py{36,37},report

[gh-actions]
python =
  3.6: clean,py36,report
  3.7: clean,py37,report

[pytest]
addopts =
  --durations=5
  --cov --cov-append --cov-fail-under=100 --cov-report=
  --black
  --mypy
  --flake8
norecursedirs =
  docs

[coverage:paths]
source =
  qsim
  .tox/py*/lib/python*/site-packages/qsim/

[coverage:run]
branch = true
parallel = true
omit = tests/*
include = qsim/*

[coverage:report]
show_missing = true
precision = 2

[coverage:xml]
output = .coverage.xml

[testenv]
deps = .[test]
commands = pytest
depends =
  {py36,py37}: clean
  report: {py36,py37}

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

[testenv:clean]
deps = coverage
skip_install = true
commands = coverage erase

[testenv:docs]
changedir=docs
deps = .[docs]
commands = sphinx-build . _build

[flake8]
max-line-length = 100
ignore =
  E203,
  E266,
  E501,
  W503,
per-file-ignores =
  __init__.py: F401
-max-complexity = 18
select = B, C, E, F, W, T4, B9
exclude =
  .git,
  .tox,
  __pycache__,
  dist,