[tox]
requires =
    tox>=4.2
env_list =
    lint
    py{py3, 312, 311, 310, 39, 38}

[testenv]
deps =
    cffi
    numpy
extras =
    tests
commands =
    make clean
    {envpython} -m pip install .
    {envpython} selftest.py
    {envpython} -m pytest -W always {posargs}
allowlist_externals =
    make

[testenv:lint]
skip_install = true
deps =
    check-manifest
    pre-commit
pass_env =
    PRE_COMMIT_COLOR
commands =
    pre-commit run --all-files --show-diff-on-failure
    check-manifest

[testenv:mypy]
skip_install = true
deps =
    mypy==1.7.1
    numpy
extras =
    typing
commands =
    mypy src {posargs}