civicsetu / pyproject.toml
adeshboudh16
chore: bump to v1.0.0 + update docs with Vercel live URL
254db3e
[project]
name = "civicsetu"
version = "1.0.0"
description = "Add your description here"
readme = "README.md"
authors = [
{ name = "adeshboudh16", email = "adeshboudh1@gmail.com" }
]
requires-python = ">=3.11"
dependencies = [
# --- LLM & Orchestration ---
"langgraph>=0.3.0",
"langgraph-checkpoint-postgres>=2.0.0",
"langchain>=0.3.0",
"langchain-core>=0.3.0",
"langchain-google-genai>=2.0.0",
"litellm>=1.30.0",
# --- PDF Parsing & Ingestion ---
"pymupdf>=1.24.0",
"unstructured[pdf]>=0.16.0",
"httpx>=0.27.0",
# --- Embeddings (local, free) ---
"sentence-transformers>=3.0.0",
"ollama>=0.3.0",
# --- Vector Store (pgvector) ---
"pgvector>=0.3.0",
"psycopg[binary]>=3.1.0",
"sqlalchemy>=2.0.0",
"neo4j>=5.20.0",
# --- Reranker ---
"flashrank>=0.2.0",
# --- API Layer ---
"fastapi>=0.115.0",
"uvicorn[standard]>=0.30.0",
"pydantic>=2.7.0",
"pydantic-settings>=2.3.0",
# --- Guardrails ---
"presidio-analyzer>=2.2.0",
"presidio-anonymizer>=2.2.0",
# --- Observability ---
"arize-phoenix>=4.0.0",
"opentelemetry-api>=1.25.0",
"opentelemetry-sdk>=1.25.0",
# --- Utilities ---
"python-dotenv>=1.0.0",
"tenacity>=8.3.0",
"cachetools>=5.3.0",
"structlog>=24.0.0",
"einops>=0.8.2",
"huggingface-hub[cli]>=1.7.1",
]
[project.optional-dependencies]
# Phase 1 — add when starting Knowledge Graph
graph = [
"neo4j>=5.20.0",
]
# Phase 2 — add when scanned PDFs appear
ocr = [
"surya-ocr>=0.6.0",
]
# Evaluation suite
eval = [
"ragas>=0.2.0",
"datasets>=2.20.0",
]
# Dev tooling — not in prod
dev = [
"pytest>=8.0.0",
"pytest-asyncio>=0.23.0",
"pytest-cov>=5.0.0",
"httpx>=0.27.0",
"ruff>=0.5.0",
"mypy>=1.10.0",
"pre-commit>=3.7.0",
]
[project.scripts]
civicsetu = "civicsetu:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/civicsetu"]
[tool.ruff]
line-length = 120
target-version = "py311"
src = ["src"]
[tool.ruff.lint]
select = ["E", "F", "I", "UP"]
[tool.mypy]
python_version = "3.11"
strict = false
ignore_missing_imports = true
packages = ["civicsetu"]
[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "auto"
addopts = "--tb=short -q"
[dependency-groups]
dev = [
"pytest>=9.0.2",
"pytest-asyncio>=1.3.0",
]