# Dependencies map and recommended extras (Phase 1 authoritative) declared: - streamlit - duckdb - ibis-framework[duckdb] - plotly - scikit-learn - scipy - umap-learn - openai # note: declared but not observed imported; review usage - requests observed: - requests - duckdb (used but sometimes import guarded) - numpy - pytest grouped: core: - python >=3.13 - streamlit - duckdb - ibis-framework[duckdb] - requests ml: - scikit-learn - scipy - umap-learn - numpy viz: - plotly testing: - pytest recommended_extras: reproducibility: - poetry (poetry.lock) or pip-tools (requirements.txt + requirements.in) - pipx or virtualenv usage documented linting_and_formatting: - black - ruff - isort - mypy logging_and_monitoring: - structlog (optional) containerization: - docker (already used) heavy_analytics (optional): - pandas - altair - dash (if more interactive dashboards are needed) notes: - Because no lockfile was present during Phase 1, adding one is high priority for reproducible CI builds. - openai is declared but not imported anywhere in Phase 1 files; prefer to either remove or add an explicit adapter usage and tests.