[project] name = "kirche-einfach-backend" version = "0.1.0" description = "Kirche Einfach - KI-gestuetzte Verwaltungsplattform fuer Kirche" requires-python = ">=3.12" dependencies = [ "alembic>=1.14", "atomicwrites>=1.4.1", "fastapi[standard]>=0.115.0", "fastapi-mail>=1.4.1", "httpx>=0.28", "jinja2>=3.1", "pydantic-settings>=2.0", "pyjwt>=2.10", "python-slugify>=8.0", "secure>=1.0", "slowapi>=0.1.9", "sqlmodel>=0.0.24", "tenacity>=9.0", "typer>=0.15", "uvicorn[standard]>=0.30.0", "watchfiles>=0.24", ] [build-system] requires = ["uv_build>=0.12.3,<0.13"] build-backend = "uv_build" [tool.uv.build-backend] module-name = "app" module-root = "" [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] [dependency-groups] dev = [ # Pinned to the Langflow minor (contract: major.minor must match). # Bump together with LANGFLOW_VERSION (.env.example) + Dockerfile.lfx. "lfx~=1.12.0", "pytest>=8", "pytest-asyncio>=0.24", "pytest-cov>=6", "respx>=0.22", "ruff>=0.16,<0.17", ] [tool.ruff] target-version = "py312" line-length = 100 [tool.ruff.lint] # Default rule set minus EXE: Docker Desktop bind-mounts report every file as # executable (git index stays 100644), so EXE002 would fire on the dev mount # but never on Linux CI. Everything else is enforced as ruff's default. ignore = ["EXE002"]