[project] name = "letterfeed-backend" version = "0.1.0" description = "Backend for LetterFeed" readme = "README.md" requires-python = ">=3.13" dependencies = [ "alembic>=1.16.4", "apscheduler>=3.11.0", "fastapi>=0.116.0", "feedgen>=1.0.0", "nanoid>=2.0.0", "pydantic-settings>=2.10.1", "python-dotenv>=1.1.1", "sqlalchemy>=2.0.41", "trafilatura>=1.10.0", "uvicorn>=0.35.0", ] [tool.ruff] exclude = ["alembic"] lint.select = [ "E", # pycodestyle "F", # pyflakes "I", # isort "D", # pydocstyle "D401", # First line should be in imperative mood "T201", "UP", ] lint.ignore = [ "UP006", "UP007", # We actually do want to import from typing_extensions "UP035", # Relax the convention by _not_ requiring documentation for every function parameter. "D417", "D100", "E501", ] [tool.ruff.lint.per-file-ignores] "tests/*" = ["D", "UP"] [tool.ruff.lint.pydocstyle] convention = "google" [tool.mypy] python_executable=".venv/bin/python" [tool.pyright] venvPath='.' venv=".venv" include="app" [dependency-groups] test = [ "httpx>=0.28.1", "pre-commit>=4.2.0", "pytest>=8.4.1", "ruff>=0.12.3", ]