[tox]
envlist = py27,py3

[testenv]
skipdist=True
skip_install=True
deps =
  -rrequirements.txt
  -rtest_requirements.txt
setenv =
  NGRAPH_CPP_BUILD_PATH = {env:NGRAPH_CPP_BUILD_PATH:{homedir}/ngraph_dist}
  NGRAPH_ONNX_IMPORT_ENABLE = {env:NGRAPH_ONNX_IMPORT_ENABLE:"FALSE"}
  LD_LIBRARY_PATH = {env:LD_LIBRARY_PATH:{homedir}/ngraph_dist/lib}
  DYLD_LIBRARY_PATH = {env:DYLD_LIBRARY_PATH:{homedir}/ngraph_dist/lib}
  PYBIND_HEADERS_PATH = {env:PYBIND_HEADERS_PATH:}

[testenv:py3]
deps =
  -rrequirements.txt
  -rtest_requirements.txt
  mypy
  flake8-bugbear
commands=
  {envbindir}/python setup.py develop
  flake8 {posargs:pyngraph/ ngraph/ examples/ setup.py}
  flake8 --ignore=D100,D101,D102,D103,D104,D105,D107,W503 test/  # ignore lack of docs in tests
  mypy --config-file=tox.ini {posargs:pyngraph/ ngraph/ examples/} # Use MyPy in Python 3 only
  pytest {posargs:test/}

[testenv:py27]
commands=
  {envbindir}/python setup.py develop
  flake8 {posargs:pyngraph/ ngraph/ examples/}
  flake8 --ignore=D100,D101,D102,D103,D104,D105,D107,W503 test/  # ignore lack of docs in tests
  pytest {posargs:test/}

[testenv:devenv]
envdir = devenv
usedevelop = True
deps = -rrequirements.txt

[flake8]
max-line-length=100
max-complexity=7
# ignore:
# D100 - Missing docstring in public module
# D104 - Missing docstring in public package
# D105 - Missing docstring in magic method
# D107 - Missing docstring in __init__
# F401 - module imported but unused
# W503 - line break before binary operator (prefer line breaks before op, not after)
ignore=D100,D104,D105,D107,F401,W503

[mypy]
strict_optional = True
ignore_missing_imports=True
follow_imports=normal
disallow_untyped_defs = True
disallow_untyped_calls = True
check_untyped_defs = True
show_error_context = False
show_column_numbers = True
show_none_errors  = True

# put custom per-file options here in sections that map their names into filenames, e.g. gta_workflow/filename.py is
# [mypy-ngraph/filename]

[mypy-test.*]
disallow_untyped_defs = False
