tox.ini
[testenv:bootstrap]
deps =
jinja2
tox
skip_install = true
commands =
python ci/bootstrap.py --no-env
passenv =
*
; a generative tox configuration, see: https://tox.wiki/en/latest/user_guide.html#generative-environments
[tox]
envlist =
clean,
check,
docs,
{py38,py39,py310,py311,py312,pypy38,pypy39,pypy310}-{pure,cython}-{cover,nocov},
report
ignore_basepython_conflict = true
[testenv]
basepython =
pypy38: {env:TOXPYTHON:pypy3.8}
pypy39: {env:TOXPYTHON:pypy3.9}
pypy310: {env:TOXPYTHON:pypy3.10}
py38: {env:TOXPYTHON:python3.8}
py39: {env:TOXPYTHON:python3.9}
py310: {env:TOXPYTHON:python3.10}
py311: {env:TOXPYTHON:python3.11}
py312: {env:TOXPYTHON:python3.12}
{bootstrap,clean,check,report,docs,codecov}: {env:TOXPYTHON:python3}
setenv =
PYTHONPATH={toxinidir}/tests
PYTHONUNBUFFERED=yes
PYTHONHUNTERCONFIG=
{docs,pure}: PUREPYTHONHUNTER=yes
{docs,pure}: SETUPPY_FORCE_PURE=yes
cover: SETUPPY_EXT_COVERAGE=yes
passenv =
*
deps =
pytest
pytest-benchmark
cover: pytest-cov
cython==3.0.10
manhole
process-tests
setuptools-scm
aspectlib
six
py
tzdata
ipdb
commands =
{py38,py39,py310,py311,py312}: python tests/setup.py clean --all
{py38,py39,py310,py311,py312}: python tests/setup.py build_ext --force --inplace
cover: python setup.py clean --all build_ext --force --inplace
nocov: {posargs:pytest -vv --ignore=src}
cover: {posargs:pytest --cov --cov-report=term-missing -vv}
usedevelop =
nocov: false
cover: true
[testenv:check]
deps =
docutils
pre-commit
readme-renderer
pygments
isort
setuptools-scm
skip_install = true
commands =
python setup.py check --strict --metadata --restructuredtext
pre-commit run --all-files --show-diff-on-failure
[testenv:cythonize]
basepython = {env:TOXPYTHON:python}
pip_pre = true
deps =
cython==3.0.10
skip_install = true
commands =
{posargs:python setup.py clean --all build_ext --force}
[testenv:spell]
setenv =
SPELLCHECK=1
commands =
sphinx-build -b spelling docs dist/docs
skip_install = true
deps =
-r{toxinidir}/docs/requirements.txt
sphinxcontrib-spelling
pyenchant
[testenv:docs]
usedevelop = true
deps =
-r{toxinidir}/docs/requirements.txt
commands =
sphinx-build {posargs:-E} -b html docs dist/docs
sphinx-build -b linkcheck docs dist/docs
[testenv:codecov]
deps =
codecov
cython==3.0.10
skip_install = true
setenv =
PYTHONPATH={toxinidir}/src
commands =
codecov []
[testenv:report]
deps =
coverage
cython==3.0.10
skip_install = true
setenv =
PYTHONPATH={toxinidir}/src
commands =
coverage report
coverage html
[testenv:clean]
commands = coverage erase
skip_install = true
deps =
coverage
cython==3.0.10