[tox]
envlist = py{36,37,38,39,310,311,312,313,py3},flake8,docs,headers
skip_missing_interpreters = true

[testenv]
deps = pytest
       pytest-cov
commands = pytest
setenv=
    PYTHONWARNINGS=all

[testenv:flake8]
skip_install = true
deps = flake8<6.0
       flake8-author
       flake8-blind-except
       flake8-bugbear
       flake8-class-newline
       flake8-commas
       flake8-deprecated
       flake8-docstrings
       flake8-exact-pin
       flake8-isort
       flake8-print
       flake8-quotes
       flake8-tidy-imports
       flake8-tuple
       pep8-naming
commands = flake8 .
setenv=
    PYTHONWARNINGS=ignore

[testenv:docs]
use_develop = true
deps = Sphinx
commands = sphinx-build -N -b html docs {envtmpdir}/sphinx -W

[testenv:headers]
skip_install = true
deps =
commands = python scripts/check_headers.py

[testenv:update-dat]
use_develop = true
deps = -r update/requirements.txt
allowlist_externals = bash
commands =
  -bash -c 'update/at_postleitzahl.py > stdnum/at/postleitzahl.dat'
  -bash -c 'update/be_banks.py > stdnum/be/banks.dat'
  -bash -c 'update/cfi.py > stdnum/cfi.dat'
  -bash -c 'update/cn_loc.py > stdnum/cn/loc.dat'
  -bash -c 'update/gs1_ai.py > stdnum/gs1_ai.dat'
  -bash -c 'update/iban.py > stdnum/iban.dat'
  -bash -c 'update/imsi.py > stdnum/imsi.dat'
  -bash -c 'update/isbn.py > stdnum/isbn.dat'
  -bash -c 'update/isil.py > stdnum/isil.dat'
  -bash -c 'update/my_bp.py > stdnum/my/bp.dat'
  -bash -c 'update/nz_banks.py > stdnum/nz/banks.dat'
  -bash -c 'update/oui.py > stdnum/oui.dat'