""" Example: Integrating CCXT DataSource into main.py This shows how to register a CCXT exchange datasource in your application. """ # In your backend/src/main.py, add this to the lifespan function: """ from datasource.adapters.ccxt_adapter import CCXTDataSource @asynccontextmanager async def lifespan(app: FastAPI): global agent_executor # Initialize data sources demo_source = DemoDataSource() datasource_registry.register("demo", demo_source) subscription_manager.register_source("demo", demo_source) # Add CCXT Binance datasource binance_source = CCXTDataSource( exchange_id="binance", poll_interval=60, # Poll every 60 seconds for updates ) datasource_registry.register("binance", binance_source) subscription_manager.register_source("binance", binance_source) # Add CCXT Coinbase datasource coinbase_source = CCXTDataSource( exchange_id="coinbase", poll_interval=60, ) datasource_registry.register("coinbase", coinbase_source) subscription_manager.register_source("coinbase", coinbase_source) # Add CCXT Kraken datasource kraken_source = CCXTDataSource( exchange_id="kraken", poll_interval=60, ) datasource_registry.register("kraken", kraken_source) subscription_manager.register_source("kraken", kraken_source) logger.info("DataSource infrastructure initialized with demo + CCXT sources") # ... rest of initialization ... yield # Cleanup await binance_source.close() await coinbase_source.close() await kraken_source.close() # ... rest of cleanup ... """ # Usage examples: # 1. Connect to datafeed WebSocket and request Binance data: """ { "type": "request", "source": "binance", "method": "search_symbols", "params": { "query": "BTC" } } """ # 2. Get historical bars from Binance: """ { "type": "request", "source": "binance", "method": "get_bars", "params": { "symbol": "BTC/USDT", "resolution": "60", "from_time": 1234567890, "to_time": 1234567999 } } """ # 3. Subscribe to polling updates: """ { "type": "subscribe", "source": "binance", "symbol": "BTC/USDT", "resolution": "1" } """ print("See comments above for integration examples!")