[tox]
envlist =
    # Ubuntu 22.04 Python
    py310-django42

    # Debian Bookworm Python
    py311-django42

    # Ubuntu 24.04 Python
    py312-django42

    linters
skipsdist = True

[testenv]
sitepackages = True
deps =
    -r{toxinidir}/requirements.txt
    coverage
commands =
    coverage run --omit='apps/scripts*,*_example.py,note_kfet/wsgi.py' --source=apps,note_kfet ./manage.py test apps/
    coverage report -m

[testenv:linters]
deps =
    flake8
    flake8-bugbear
    flake8-colors
    flake8-django
    flake8-import-order
    flake8-typing-imports
    pep8-naming
    pyflakes
commands =
    flake8 apps --extend-exclude apps/scripts,apps/wrapped/management/commands
    flake8 apps/wrapped/management/commands --extend-ignore=C901

[flake8]
ignore = W503, I100, I101, B019
exclude =
    .tox,
    .git,
    __pycache__,
    build,
    dist,
    *.pyc,
    *.egg-info,
    .cache,
    .eggs,
    *migrations*
max-complexity = 15
max-line-length = 160
import-order-style = google
application-import-names = flake8
format = %(cyan)s%(path)s%(reset)s:%(yellow)s%(bold)s%(row)d%(reset)s:%(green)s%(bold)s%(col)d%(reset)s: %(red)s%(bold)s%(code)s%(reset)s %(text)s