[tox] envlist = isort flake8 bandit # Python/Django combinations that are officially supported py{36,37,38,39}-django{22} py{36,37,38,39,310}-django{32} py{38,39,310}-django{40} readme docs [gh-actions] python = 3.6: py36 3.7: py37 3.8: py38 3.9: py39 3.10: py310 [gh-actions:env] DJANGO = 2.2: django22 3.2: django32 4.0: django40 [testenv] description = Unit tests deps = coverage[toml] pytest-django django22: Django>=2.2,<3.0 django32: Django>=3.2,<4.0 django40: Django>=4.0,<4.1 commands = coverage run -m pytest {posargs} coverage xml [testenv:bandit] description = PyCQA security linter deps = bandit commands = -bandit {posargs:-r analytical} -v [testenv:docs] description = Build the HTML documentation deps = sphinx commands = sphinx-build -b html -d docs/_build/doctrees docs docs/_build/html [testenv:flake8] description = Static code analysis and code style deps = flake8 commands = flake8 {posargs} [testenv:isort] description = Ensure imports are ordered consistently deps = isort[colors] commands = isort --check-only --diff {posargs:analytical setup.py tests} [testenv:readme] description = Ensure README renders on PyPI deps = build twine commands = python -m build twine check dist/* [testenv:clean] description = Clean up bytecode and build artifacts deps = pyclean commands = pyclean {posargs:.} rm -rf .tox/ build/ dist/ django_analytical.egg-info/ .coverage coverage.xml tests/coverage-report.xml tests/unittests-report.xml allowlist_externals = rm [flake8] exclude = .cache,.git,.tox,build,dist max-line-length = 100