[tox]
envlist=
    py{38,39,310,311,312,313}-core
    py{38,39,310,311,312,313}-lint
    py{38,39,310,311,312,313}-wheel
    windows-wheel
    docs

[flake8]
exclude=venv*,.tox,docs,build
extend-ignore=E203
max-line-length=88
per-file-ignores=__init__.py:F401

[blocklint]
max_issue_threshold=1

[testenv]
usedevelop=True
commands=
    core: pytest {posargs:tests/core}
    docs: make check-docs-ci
basepython=
    docs: python
    windows-wheel: python
    py38: python3.8
    py39: python3.9
    py310: python3.10
    py311: python3.11
    py312: python3.12
    py313: python3.13
extras=
    test
    docs
allowlist_externals=make,pre-commit

[testenv:py{38,39,310,311,312,313}-lint]
deps=pre-commit
extras=dev
commands=
    pre-commit install
    pre-commit run --all-files --show-diff-on-failure

[testenv:py{38,39,310,311,312,313}-wheel]
deps=
    wheel
    build[virtualenv]
allowlist_externals=
    /bin/rm
    /bin/bash
commands=
    python -m pip install --upgrade pip
    /bin/rm -rf build dist
    python -m build
    /bin/bash -c 'python -m pip install --upgrade "$(ls dist/eth_typing-*-py3-none-any.whl)" --progress-bar off'
    python -c "import eth_typing"
skip_install=true

[testenv:windows-wheel]
deps=
    wheel
    build[virtualenv]
allowlist_externals=
    bash.exe
commands=
    python --version
    python -m pip install --upgrade pip
    bash.exe -c "rm -rf build dist"
    python -m build
    bash.exe -c 'python -m pip install --upgrade "$(ls dist/eth_typing-*-py3-none-any.whl)" --progress-bar off'
    python -c "import eth_typing"
skip_install=true
