From 6f2748d38b660dc8cb5a668cebd747e7b3a77961 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 24 May 2026 15:09:42 +0000 Subject: [PATCH] Move plotly + yfinance to core deps so the Streamlit Cloud deploy works Streamlit Cloud installs from pyproject/uv (uv sync, default group only), so the ui/data extras were skipped and the deployed app crashed with ModuleNotFoundError for plotly and yfinance. Promote both to [project.dependencies] so they install under any installer (pip requirements or uv/pyproject). Verified a no-extras `uv sync` now provides plotly + yfinance. https://claude.ai/code/session_011QQZCSnQXWFafw3MEnMCHe --- pyproject.toml | 4 ++++ uv.lock | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index c170aeb..8b464cc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,6 +25,10 @@ dependencies = [ "vollib>=1.0.7", "arch>=6.0", "QuantLib>=1.30", + # Included in core (not just extras) so the Streamlit app deploys correctly + # regardless of installer (pip requirements vs uv/pyproject). + "plotly>=5.22", + "yfinance>=0.2.40", ] [project.optional-dependencies] diff --git a/uv.lock b/uv.lock index 00a056f..f5a337b 100644 --- a/uv.lock +++ b/uv.lock @@ -732,6 +732,7 @@ dependencies = [ { name = "pandas" }, { name = "pandas-market-calendars" }, { name = "pandera" }, + { name = "plotly" }, { name = "pyarrow" }, { name = "pydantic" }, { name = "pydantic-settings" }, @@ -740,6 +741,7 @@ dependencies = [ { name = "scipy" }, { name = "structlog" }, { name = "vollib" }, + { name = "yfinance" }, { name = "zstandard" }, ] @@ -784,6 +786,7 @@ requires-dist = [ { name = "pandas-market-calendars", specifier = ">=4.3" }, { name = "pandas-stubs", marker = "extra == 'dev'" }, { name = "pandera", specifier = ">=0.20" }, + { name = "plotly", specifier = ">=5.22" }, { name = "plotly", marker = "extra == 'dev'", specifier = ">=5.22" }, { name = "plotly", marker = "extra == 'ui'", specifier = ">=5.22" }, { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=3.7" }, @@ -802,6 +805,7 @@ requires-dist = [ { name = "types-requests", marker = "extra == 'dev'" }, { name = "vollib", specifier = ">=1.0.7" }, { name = "weasyprint", marker = "extra == 'report'", specifier = ">=60" }, + { name = "yfinance", specifier = ">=0.2.40" }, { name = "yfinance", marker = "extra == 'data'", specifier = ">=0.2.40" }, { name = "zstandard", specifier = ">=0.22" }, ]