[tox]
envlist=
lint
py{36,37,38,39}
py36-mindeps
py39-marshmallowdev
docs
[testenv]
extras = tests
deps =
!marshmallowdev: marshmallow>=3.0.0,<4.0.0
marshmallowdev: https://github.com/marshmallow-code/marshmallow/archive/dev.tar.gz
mindeps: Flask==0.12.5
mindeps: Django==2.2.0
mindeps: bottle==0.12.13
mindeps: tornado==4.5.2
mindeps: pyramid==1.9.1
mindeps: falcon==2.0.0
mindeps: aiohttp==3.0.8
commands = pytest {posargs}
[testenv:lint]
deps = pre-commit~=2.4
skip_install = true
commands = pre-commit run --all-files
# a separate `mypy` target which runs `mypy` in an environment with
# `webargs` and `marshmallow` both installed is a valuable safeguard against
# issues in which `mypy` running on every file standalone won't catch things
[testenv:mypy]
deps = mypy
extras = frameworks
commands = mypy src/
[testenv:docs]
extras = docs
commands = sphinx-build docs/ docs/_build {posargs}
; Below tasks are for development only (not run in CI)
[testenv:watch-docs]
deps =
sphinx-autobuild
extras = docs
commands = sphinx-autobuild --open-browser docs/ docs/_build {posargs} --watch src/webargs --delay 2
[testenv:watch-readme]
deps = restview
skip_install = true
commands = restview README.rst