[project]
name = "servala"
version = "0.0.0"
description = "Servala portal server and frontend"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
    "argon2-cffi>=25.1.0",
    "cryptography>=46.0.3",
    "django==5.2.7",
    "django-allauth>=65.11.2",
    "django-auditlog>=3.2.1",
    "django-fernet-encrypted-fields>=0.3.0",
    "django-jsonform>=2.23.2",
    "django-scopes>=2.0.0",
    "django-storages[s3]>=1.14.6",
    "django-template-partials>=25.2",
    "jsonschema>=4.25.1",
    "kubernetes>=33.1.0",
    "pillow>=11.3.0",
    "psycopg2-binary>=2.9.10",
    "pyjwt>=2.10.1",
    "requests>=2.32.5",
    "rules>=3.5",
    "sentry-sdk[django]>=2.39.0",
    "urlman>=2.0.2",
]

[dependency-groups]
dev = [
    "black>=25.9.0",
    "bumpver>=2025.1131",
    "coverage>=7.10.7",
    "djlint>=1.36.4",
    "flake8>=7.3.0",
    "flake8-bugbear>=24.12.12",
    "flake8-pyproject>=1.2.3",
    "isort>=6.0.1",
    "pytest>=8.4.2",
    "pytest-cov>=6.3.0",
    "pytest-django>=4.11.1",
    "pytest-mock>=3.15.1",
]

[tool.isort]
profile = "black"
known_first_party = "servala"

[tool.flake8]
max-line-length = 160
exclude = ".venv"
ignore = "E203,W503"

[tool.djlint]
extend_exclude = "src/servala/static/mazer"

[tool.pytest.ini_options]
DJANGO_SETTINGS_MODULE = "servala.settings_test"
addopts = "-p no:doctest -p no:pastebin -p no:nose --cov=./ --cov-report=term-missing:skip-covered"
testpaths = "src/tests"
pythonpath = "src"

[tool.bumpver]
current_version = "2025.10.03-1"
version_pattern = "YYYY.0M.0D-INC0"
commit_message = "bump version {old_version} -> {new_version}"
tag_message = "{new_version}"
tag_scope = "default"
pre_commit_hook = ""
post_commit_hook = ""
commit = true
tag = true
push = true

[tool.bumpver.file_patterns]
"pyproject.toml" = ['current_version = "{version}"']
"src/servala/__about__.py" = ['^__version__ = "{version}"$']
"README.md" = ['{version}']
