Spaces:
Running
Running
| import json | |
| import random | |
| def generate_synthetic_cache(): | |
| # Load Universe | |
| with open('data/sp500_universe.json', 'r') as f: | |
| universe = json.load(f) | |
| caps = {} | |
| # Known Mega Caps (approx Trillions) | |
| mega_caps = { | |
| "AAPL": 3.4e12, "MSFT": 3.1e12, "NVDA": 2.8e12, "GOOGL": 2.1e12, "GOOG": 2.1e12, | |
| "AMZN": 1.9e12, "META": 1.2e12, "BRK-B": 900e9, "LLY": 800e9, "TSLA": 700e9, | |
| "AVGO": 650e9, "JPM": 600e9, "V": 550e9, "XOM": 500e9, "WMT": 500e9 | |
| } | |
| for item in universe: | |
| t = item['ticker'] | |
| if t in mega_caps: | |
| caps[t] = mega_caps[t] | |
| else: | |
| # Random distribution for the rest: 10B to 400B | |
| # Generating a "Long Tail" distribution | |
| # 80% are between 10B and 100B (Small/Mid) | |
| # 20% are between 100B and 400B (Large) | |
| if random.random() < 0.8: | |
| caps[t] = random.uniform(10e9, 100e9) | |
| else: | |
| caps[t] = random.uniform(100e9, 400e9) | |
| with open('data/market_cap_cache.json', 'w') as f: | |
| json.dump(caps, f, indent=2) | |
| print(f"Generated synthetic caps for {len(caps)} tickers.") | |
| if __name__ == "__main__": | |
| generate_synthetic_cache() | |