[project] name = "qurio-backend" version = "0.1.0" description = "Qurio Backend with FastAPI + Agno" authors = [ {name = "Qurio", email = "info@qur.io"} ] requires-python = ">=3.11" dependencies = [ "fastapi>=0.134.0", "uvicorn[standard]>=0.41.0", "agno>=2.5.5", "pydantic>=2.12.5", "pydantic-settings>=2.13.1", "httpx>=0.28.1", "openai>=2.24.0", "google-generativeai>=0.8.6", "python-multipart>=0.0.22", "sse-starlette>=3.3.2", "aiofiles>=25.1.0", "supabase>=2.28.0", "python-dotenv>=1.2.1", "tavily-python>=0.7.22", "beautifulsoup4>=4.14.3", "pypdf>=6.7.4", "yfinance>=1.2.0", "arxiv>=2.4.0", "wikipedia>=1.4.0", "ddgs>=9.10.0", "google-genai>=1.65.0", "sqlalchemy>=2.0.47", "psycopg2-binary>=2.9.11", "mcp>=1.26.0", "duckduckgo-search>=8.1.1", "google-auth>=2.48.0", "google-auth-oauthlib>=1.3.0", "google-api-python-client>=2.190.0", "apscheduler>=3.11.2", "x-reader", "yt-dlp>=2026.2.21", "exa-py>=2.6.1", ] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src"] [tool.ruff] line-length = 100 target-version = "py311" [tool.ruff.lint] select = ["E", "F", "I", "N", "W", "UP"] ignore = ["E501"] [tool.mypy] python_version = "3.11" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = false [tool.uv.sources] x-reader = { url = "https://github.com/runesleo/x-reader/archive/d3760a55d7422acd8f1a54843331a5a4adfcbcfd.tar.gz" } [dependency-groups] dev = [ "mypy>=1.19.1", "pyinstaller>=6.19.0", "pytest>=9.0.2", "pytest-asyncio>=1.3.0", "ruff>=0.15.4", ]