Spaces:
Sleeping
Sleeping
| import yfinance as yf | |
| import json | |
| import concurrent.futures | |
| import os | |
| from data.data_manager import MarketDataEngine | |
| def generate_cache(): | |
| engine = MarketDataEngine() | |
| tickers = engine.fetch_sp500_tickers() | |
| print(f"Fetching caps for {len(tickers)} tickers...") | |
| caps = {} | |
| def get_cap(t): | |
| try: | |
| return t, yf.Ticker(t).fast_info['market_cap'] | |
| except: | |
| return t, 0 | |
| with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor: | |
| results = executor.map(get_cap, tickers) | |
| for t, c in results: | |
| if c > 0: | |
| caps[t] = c | |
| with open('data/market_cap_cache.json', 'w') as f: | |
| json.dump(caps, f, indent=2) | |
| print(f"Saved {len(caps)} caps to data/market_cap_cache.json") | |
| if __name__ == "__main__": | |
| generate_cache() | |