Files
sdb2-backend/pyproject.toml

74 lines
2.0 KiB
TOML

[project]
name = "backend"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"aiosqlite==0.21.0",
"apscheduler==3.11.0",
"bcrypt==4.3.0",
"email-validator==2.2.0",
"fastapi[standard]==0.116.1",
"ffmpeg-python==0.2.0",
"httpx==0.28.1",
"pydantic-settings==2.10.1",
"pyjwt==2.10.1",
"python-socketio==5.13.0",
"python-vlc==3.0.21203",
"sqlmodel==0.0.24",
"uvicorn[standard]==0.35.0",
"yt-dlp==2025.7.21",
]
[tool.uv]
dev-dependencies = [
"coverage==7.10.3",
"faker==37.5.3",
"httpx==0.28.1",
"mypy==1.17.1",
"pytest==8.4.1",
"pytest-asyncio==1.1.0",
"ruff==0.12.8",
]
[tool.mypy]
strict = true
exclude = ["venv", ".venv", "alembic"]
[tool.ruff]
target-version = "py312"
exclude = ["alembic"]
[tool.ruff.lint]
select = ["ALL"]
ignore = ["D100", "D103", "TRY301"]
[tool.ruff.lint.per-file-ignores]
"tests/**/*.py" = [
"S101", # Use of assert detected
"S105", # Possible hardcoded password
"S106", # Possible hardcoded password
"ANN001", # Missing type annotation for function argument
"ANN003", # Missing type annotation for **kwargs
"ANN201", # Missing return type annotation for public function
"ANN202", # Missing return type annotation for private function
"ANN401", # Dynamically typed expressions (typing.Any) are disallowed
"ARG001", # Unused function argument
"ARG002", # Unused method argument
"ARG005", # Unused lambda argument
"BLE001", # Do not catch blind exception
"E501", # Line too long
"PLR2004", # Magic value used in comparison
"PLC0415", # `import` should be at top-level
"SLF001", # Private member accessed
"SIM117", # Use a single `if` statement
"PT011", # `pytest.raises()` is too broad
"PT012", # `pytest.raises()` block should contain a single simple statement
]
[tool.pytest.ini_options]
filterwarnings = [
"ignore:transaction already deassociated from connection:sqlalchemy.exc.SAWarning",
]