[project] name = "finrag" version = "0.1.0" description = "Add your description here" readme = "README.md" authors = [ { name = "Aryan Sharma", email = "aryan250403@gmail.com" } ] requires-python = ">=3.11" dependencies = [ "anthropic>=0.40", "cohere>=6.1.0", "duckdb>=1.5.3", "fastapi[standard]>=0.136.1", "google-genai>=2.8.0", "langgraph>=1.2.4", "openai>=1.50", "pydantic>=2.12.5", "pydantic-settings>=2.14.1", "qdrant-client>=1.18.0", "rank-bm25>=0.2.2", ] [build-system] requires = ["uv_build>=0.11.15,<0.12.0"] build-backend = "uv_build" [dependency-groups] dev = [ "pytest>=9.0.3", "pytest-asyncio>=1.3.0", "ruff>=0.15.13", ] # Offline ingestion only (parse.py). Pulls torch/transformers/onnxruntime via # unstructured[pdf] — multi-GB and slow — so it is deliberately OUT of the # runtime dependency set: the serving image (and `uv sync --no-dev`) skip it. # Build/refresh the corpus with: uv sync --group ingestion ingestion = [ "unstructured[pdf]>=0.22.29", ] [tool.ruff] line-length = 100 target-version = "py311" [tool.ruff.lint] select = ["E", "F", "I", "B", "UP", "N"] # E: pycodestyle errors # F: pyflakes (unused imports, undefined names) # I: isort (import order) # B: bugbear (likely bugs) # UP: pyupgrade (modernize syntax) # N: pep8-naming