<commit_before>[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

[testenv]
description = Unit tests
deps =
    coverage
    pytest-django
    django22: Django>=2.2,<3.0
    django32: Django>=3.2,<4.0
    django40: Django>=4.0a1,<4.1

commands =
    coverage run -m pytest
    coverage xml

[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:bandit]
description = PyCQA security linter
deps = bandit<1.6
commands = - bandit -r --ini tox.ini
ignore_errors = true

[testenv:docs]
description = Build the HTML documentation
deps = sphinx
commands = sphinx-build -b html -d docs/_build/doctrees docs docs/_build/html
whitelist_externals = make

[testenv:flake8]
description = Static code analysis and code style
deps = flake8
commands = flake8

[testenv:isort]
description = Ensure imports are ordered
skip_install = True
deps = isort
commands = isort tests setup.py analytical --check --diff

[testenv:readme]
description = Ensure README renders on PyPI
deps = twine
commands =
    {envpython} setup.py -q sdist bdist_wheel
    twine check dist/*

[bandit]
exclude = .cache,.git,.tox,build,dist,docs,tests
targets = .

[flake8]
exclude = .cache,.git,.tox,build,dist<commit_msg>Add clean Tox target (run `tox -e clean`)<commit_after>[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

[testenv]
description = Unit tests
deps =
    coverage
    pytest-django
    django22: Django>=2.2,<3.0
    django32: Django>=3.2,<4.0
    django40: Django>=4.0a1,<4.1

commands =
    coverage run -m pytest
    coverage xml

[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:bandit]
description = PyCQA security linter
deps = bandit<1.6
commands = - bandit -r --ini tox.ini
ignore_errors = true

[testenv:docs]
description = Build the HTML documentation
deps = sphinx
commands = sphinx-build -b html -d docs/_build/doctrees docs docs/_build/html
whitelist_externals = make

[testenv:flake8]
description = Static code analysis and code style
deps = flake8
commands = flake8

[testenv:isort]
description = Ensure imports are ordered
skip_install = True
deps = isort
commands = isort tests setup.py analytical --check --diff

[testenv:readme]
description = Ensure README renders on PyPI
deps = twine
commands =
    {envpython} setup.py -q sdist bdist_wheel
    twine check dist/*

[testenv:clean]
description = Clean up bytecode and build artifacts
deps = pyclean
commands =
    pyclean -v {toxinidir}
    rm -rf .tox/ build/ dist/ django_analytical.egg-info/ .coverage coverage.xml
whitelist_externals =
    rm

[bandit]
exclude = .cache,.git,.tox,build,dist,docs,tests
targets = .

[flake8]
exclude = .cache,.git,.tox,build,dist
{'fraction_non_alphanumeric': 0.11121437422552664, 'fraction_numerical': 0.057001239157372985, 'mean_word_length': 3.4051841746248295, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 3}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5403321', 'n_tokens_mistral': 1291, 'n_tokens_neox': 1191, 'n_words': 314}