# Ten31 Signal Engine — pilot dependencies, grouped by pipeline layer. # Foundation (init-db, seed, spark client) needs only: requests, PyYAML, numpy. # --- core / foundation --- requests>=2.31 PyYAML>=6.0 numpy>=1.26 # --- ingestion (§4.1) --- feedparser>=6.0 # podcast RSS (conditional GET via etag/modified) yt-dlp>=2025.1 # YouTube audio (needs a PO-token provider sidecar; see README) edgartools>=3.0 # SEC EDGAR filings (sets UA, throttles ≤10 rps) # FMP earnings transcripts are plain REST via `requests` (no SDK) # --- scheduling + queue (§13.4) --- APScheduler>=3.10 # --- embeddings/vectors (§4.3) — vectors live in Qdrant behind Spark Control --- qdrant-client>=1.12 fastembed>=0.4 # client-side BM25 sparse vectors (Qdrant/bm25, modifier: idf) # --- frontier (§4.6), bounded final step --- anthropic>=0.40 # --- eval UI (§4.7 / human eval) --- fastapi>=0.110 uvicorn>=0.29