TradingAgents/tradingagents/dataflows
Youssef Aitousarrah ce2a6ef8fa fix(discovery): fix infinite hang when a scanner thread blocks indefinitely
Two issues caused the agent to get stuck after the last log message
from a completed scanner (e.g. "✓ reddit_trending: 11 candidates"):

1. `as_completed()` had no global timeout. If a scanner thread blocked
   in a non-interruptible I/O call, `as_completed()` waited forever
   because it only yields a future once it has finished — the per-future
   `future.result(timeout=N)` call was never even reached.
   Fixed by passing `timeout=global_timeout` to `as_completed()` so
   the outer iterator raises TimeoutError after a capped wall-clock
   budget, then logs which scanners didn't complete and continues.

2. `SectorRotationScanner` called `get_ticker_info()` (one HTTP request
   per ticker) in a serial loop for up to 100 tickers from a 592-ticker
   file, easily exceeding the 30 s per-scanner budget.
   Fixed by batch-downloading close prices for all tickers in a single
   `download_history()` call, computing 5-day returns locally, and only
   calling `get_ticker_info()` for the small subset of laggard tickers
   (<2% 5d move) that actually need a sector label.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-20 22:14:53 -08:00
..
discovery fix(discovery): fix infinite hang when a scanner thread blocks indefinitely 2026-02-20 22:14:53 -08:00
__init__.py WIP 2025-09-26 16:17:50 +08:00
alpha_vantage.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
alpha_vantage_analysts.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
alpha_vantage_common.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
alpha_vantage_fundamentals.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
alpha_vantage_indicator.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
alpha_vantage_news.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
alpha_vantage_stock.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
alpha_vantage_volume.py chore: linter formatting + ML scanner logging, prompt control, ranker reasoning 2026-02-09 23:04:38 -08:00
config.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
delisted_cache.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
finnhub_api.py chore: linter formatting + ML scanner logging, prompt control, ranker reasoning 2026-02-09 23:04:38 -08:00
finviz_scraper.py Update 2026-02-20 08:38:15 -08:00
fmp_api.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
google.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
googlenews_utils.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
interface.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
local.py chore: linter formatting + ML scanner logging, prompt control, ranker reasoning 2026-02-09 23:04:38 -08:00
market_data_utils.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
news_semantic_scanner.py Update 2026-02-20 08:39:37 -08:00
openai.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
reddit_api.py chore: linter formatting + ML scanner logging, prompt control, ranker reasoning 2026-02-09 23:04:38 -08:00
reddit_utils.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
semantic_discovery.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
stockstats_utils.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
technical_analyst.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
ticker_semantic_db.py Remore unused code and improve the UI 2026-02-16 14:17:43 -08:00
tradier_api.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
twitter_data.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
utils.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00
y_finance.py feat: discovery pipeline enhancements with ML signal scanner 2026-02-09 22:53:42 -08:00