Quillwright / pyproject.toml
Aarya2004
Deploy: sync hosted Space to local app (chat, document capture, Modal backends, pages, mobile/QR)
47b2a99
Raw
History Blame Contribute Delete
1.86 kB
[build-system]
requires = ["setuptools>=61"]
build-backend = "setuptools.build_meta"
[project]
name = "quillwright"
version = "0.1.0"
requires-python = ">=3.11"
dependencies = [
"gradio>=4.44",
"langgraph>=0.2",
"langchain-core>=0.3",
"pydantic>=2.7",
"reportlab>=4.2",
"uvicorn>=0.30",
"requests>=2.31",
]
[project.optional-dependencies]
dev = ["pytest>=8.0", "ruff>=0.15"]
# Semantic Recall embedder (ADR-0003): heavy (~2GB torch). Opt-in — NOT in the Space
# requirements.txt (stub mode has no torch). Install with: pip install -e ".[embed]"
embed = ["sentence-transformers>=3.0", "numpy>=1.26"]
# Spoken voice note via Cohere Transcribe (ADR-0009): on-device STT. Opt-in, heavy.
# Gated model — needs HF access + token. Install with: pip install -e ".[audio]"
audio = ["transformers>=5.4", "torch", "accelerate", "soundfile", "librosa", "sentencepiece", "protobuf"]
# Finalize & Send (S10): real SMS (Twilio) + email (SendGrid). Third-party APIs —
# deliberately NOT in the Space requirements.txt (the Space drafts only; creds can't
# live on a public Space — ADR-0005). Local/demo path only. Install: pip install -e ".[send]"
send = ["twilio>=9.0", "sendgrid>=6.11"]
# QR phone-capture (Tier 3): segno is a tiny pure-Python QR encoder, only needed on the
# local/tunnel demo path (the Space has no tunnel to pair against). Opt-in, lazy-imported,
# NOT in the Space requirements. Install with: pip install -e ".[capture]"
capture = ["segno>=1.6"]
# Flat layout with sibling dirs (data/, node_modules/) — scope discovery to the
# quillwright package (and its subpackages) so setuptools auto-discovery doesn't
# error on "multiple top-level packages".
[tool.setuptools.packages.find]
include = ["quillwright*"]
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "-v"
[tool.ruff]
line-length = 100
target-version = "py311"