From 1e349b8904c6fa52c6f0925453513354c1a4e392 Mon Sep 17 00:00:00 2001 From: Tyler Hoang Date: Mon, 18 May 2026 00:43:00 -0700 Subject: fix: give each statement fetcher its own cache to prevent key collisions --- backend/app/services/data_service.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'backend/app') diff --git a/backend/app/services/data_service.py b/backend/app/services/data_service.py index bf75bc7..9da9557 100644 --- a/backend/app/services/data_service.py +++ b/backend/app/services/data_service.py @@ -19,6 +19,9 @@ HISTORY_CACHE = TTLCache(maxsize=256, ttl=300) INTRADAY_CACHE = TTLCache(maxsize=128, ttl=60) MARKET_CACHE = TTLCache(maxsize=8, ttl=300) STATEMENT_CACHE = TTLCache(maxsize=256, ttl=3600) +INCOME_CACHE = TTLCache(maxsize=256, ttl=3600) +BALANCE_CACHE = TTLCache(maxsize=256, ttl=3600) +CF_CACHE = TTLCache(maxsize=256, ttl=3600) SHARES_CACHE = TTLCache(maxsize=256, ttl=3600) RATIO_CACHE = TTLCache(maxsize=256, ttl=3600) BETA_CACHE = TTLCache(maxsize=256, ttl=3600) @@ -445,7 +448,7 @@ def get_intraday_history(symbol: str, period: str, interval: str) -> list[dict[s return [] -@cached(STATEMENT_CACHE) +@cached(INCOME_CACHE) def get_income_statement(symbol: str, quarterly: bool = False) -> pd.DataFrame: try: ticker = yf.Ticker(normalize_symbol(symbol)) @@ -455,7 +458,7 @@ def get_income_statement(symbol: str, quarterly: bool = False) -> pd.DataFrame: return pd.DataFrame() -@cached(STATEMENT_CACHE) +@cached(BALANCE_CACHE) def get_balance_sheet(symbol: str, quarterly: bool = False) -> pd.DataFrame: try: ticker = yf.Ticker(normalize_symbol(symbol)) @@ -465,7 +468,7 @@ def get_balance_sheet(symbol: str, quarterly: bool = False) -> pd.DataFrame: return pd.DataFrame() -@cached(STATEMENT_CACHE) +@cached(CF_CACHE) def get_cash_flow(symbol: str, quarterly: bool = False) -> pd.DataFrame: try: ticker = yf.Ticker(normalize_symbol(symbol)) -- cgit v1.3-2-g0d8e