[project]
name = "discovery-backend"
version = "0.1.0"
description = "LLM-driven music discovery on the Spotify Web API"
requires-python = "==3.13.*"
dependencies = [
    "anthropic==0.121.0",
    "fastapi>=0.116",
    "httpx>=0.28",
    "httpx2>=2.10",
    "pydantic-settings>=2.10",
    "pyyaml>=6.0",
    "structlog>=25.4",
    "uvicorn[standard]>=0.35",
]

[dependency-groups]
dev = [
    "mypy>=1.17",
    "pytest>=8.4",
    "ruff>=0.12",
    "types-pyyaml>=6.0",
]

[tool.ruff]
line-length = 100
target-version = "py313"

[tool.ruff.lint]
select = ["E", "F", "I", "N", "UP", "B", "SIM", "RUF"]

[tool.mypy]
python_version = "3.13"
strict = false
warn_unused_ignores = true

[[tool.mypy.overrides]]
module = ["app.domain.*", "app.ports.*", "app.pipeline.*"]
strict = true

[tool.pytest.ini_options]
pythonpath = [".", "../eval"]
testpaths = ["tests", "../eval/tests"]
