[project] name = "VKResenderAPI" version = "0.1.0" description = "API for the VK Resender" readme = "README.md" requires-python = ">=3.13" dependencies = [ # Server "celery==5.5.3", "fastapi==0.115.12", "gunicorn==23.0.0", "uvicorn-worker==0.3.0", "uvicorn[standard]==0.34.3", "orjson==3.10.18", "redis[hiredis]==6.2.0", # Logging & Metrics "python-logging-loki==0.3.1", # Requests "httpx==0.28.1", "aiohttp[speedups]==3.12.11", # Database "alembic==1.16.1", "asyncpg==0.30.0", "psycopg==3.2.9", "psycopg-c==3.2.9; sys_platform != 'win32'", "sqlmodel==0.0.24", # Types "pydantic[email]==2.11.5", "pydantic-extra-types==2.10.5", "pydantic-settings==2.9.1", "semver==3.0.4", # CLI "typer-slim==0.16.0", ] [dependency-groups] dev = [ "celery-types==0.23.0", "poethepoet==0.34.0", "pre-commit==4.2.0", "psycopg[binary]==3.2.9", "pyright==1.1.401", "ruff==0.11.13", "types-pyjwt==1.7.1", "types-redis==4.6.0.20241004", ] [tool.poe.tasks] _git = "git add ." _lint = "pre-commit run --all-files" lint = ["_git", "_lint"] check = "uv pip ls --outdated" run = "uv run --directory ./src/ server.py" manage = "uv run --directory ./src/ manage.py" migrate = "uv run --directory ./src/ alembic revision --autogenerate" [tool.uv] required-version = ">=0.7.0" dependency-metadata = [ { name = "psycopg-c", version = "3.2.9", python = ">=3.8", requires = [ "psycopg==3.2.9", ] }, ] [tool.typos.files] extend-exclude = ["**/migrations/versions"] [tool.pyright] venvPath = "." venv = ".venv" exclude = ["**/migrations/versions"] strictListInference = true strictDictionaryInference = true strictSetInference = true deprecateTypingAliases = true typeCheckingMode = "strict" pythonPlatform = "All" [tool.ruff] target-version = "py313" line-length = 79 fix = true [tool.ruff.lint] preview = true select = [ "E", "W", "F", "UP", "A", "B", "C4", "SIM", "I", "S", "G", "FAST", "ASYNC", "BLE", "INT", "ISC", "ICN", "PYI", "INP", "RSE", "PIE", "SLOT", "TID", "LOG", "FBT", "DTZ", "EM", "PERF", "RUF", ] ignore = ["RUF029", "S104"] [tool.ruff.format] quote-style = "single" indent-style = "space" docstring-code-format = true