summaryrefslogtreecommitdiff
path: root/backend/app
diff options
context:
space:
mode:
authorTyler Hoang <tyler@tylerhoang.xyz>2026-05-18 00:43:00 -0700
committerTyler Hoang <tyler@tylerhoang.xyz>2026-05-18 00:43:00 -0700
commit1e349b8904c6fa52c6f0925453513354c1a4e392 (patch)
tree0a70d0aec366bc06cf31c61c31a904139b171963 /backend/app
parent7cb2492c748556af99f2b155a434b92f19461095 (diff)
fix: give each statement fetcher its own cache to prevent key collisions
Diffstat (limited to 'backend/app')
-rw-r--r--backend/app/services/data_service.py9
1 files changed, 6 insertions, 3 deletions
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))