[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 =
    -r .ci/requirements-mypy.txt
    IceSpringPySideStubs-PyQt6
    IceSpringPySideStubs-PySide6
    ipython
    numpy
    packaging
    types-cffi
    types-defusedxml
    types-olefile
extras =
    typing
commands =
    mypy src {posargs}