# To use tox, see https://tox.readthedocs.io
# Simply pip or conda install tox
# If you use conda, you may also want to install tox-conda
# then run `tox` or `tox -- {pytest args}`
# To run in parallel using `tox -p` (this does not appear to work for this repo)

# To rebuild the tox environment, for example when dependencies change, use
# `tox -r`

# Note: if the following error is encountered: `ImportError while loading conftest`
# then then deleting compiled files has been found to fix it: `find . -name \*.pyc -delete`

[tox]
envlist = py37-sphinx4

[testenv]
usedevelop = true

[testenv:py{37,38,39,310}-sphinx{3,4}]
deps =
    black
    flake8
extras =
    linkify
    testing
commands_pre =
    sphinx3: pip install --quiet --upgrade-strategy "only-if-needed" "sphinx==3.5.4"
commands = pytest {posargs}

[testenv:docs-{update,clean}]
extras =
    linkify
    rtd
whitelist_externals =
    rm
    echo
commands =
    clean: rm -rf docs/_build
    sphinx-build -nW --keep-going -b {posargs:html} docs/ docs/_build/{posargs:html}
commands_post = echo "open file://{toxinidir}/docs/_build/{posargs:html}/index.html"

[testenv:docs-live]
description = Build the documentation and launch browser
deps = sphinx-autobuild
extras =
    linkify
    rtd
commands =
    sphinx-autobuild \
        --re-ignore _build/.* \
        --port 0 --open-browser \
        -n -b {posargs:html} docs/ docs/_build/{posargs:html}


[pytest]
addopts = --ignore=setup.py
markers =
    sphinx: set parameters for the sphinx `app` fixture (see ipypublish/sphinx/tests/conftest.py)
filterwarnings =
    ignore::DeprecationWarning:sphinx.jinja2glue.*

[flake8]
max-line-length = 100
extend-ignore = E203
