39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
|
|
"""
|
||
|
|
Exchange-specific data collectors.
|
||
|
|
|
||
|
|
This package contains implementations for different cryptocurrency exchanges,
|
||
|
|
each organized in its own subfolder with standardized interfaces.
|
||
|
|
"""
|
||
|
|
|
||
|
|
from .okx import OKXCollector, OKXWebSocketClient
|
||
|
|
from .factory import ExchangeFactory, ExchangeCollectorConfig, create_okx_collector
|
||
|
|
from .registry import get_supported_exchanges, get_exchange_info
|
||
|
|
|
||
|
|
__all__ = [
|
||
|
|
'OKXCollector',
|
||
|
|
'OKXWebSocketClient',
|
||
|
|
'ExchangeFactory',
|
||
|
|
'ExchangeCollectorConfig',
|
||
|
|
'create_okx_collector',
|
||
|
|
'get_supported_exchanges',
|
||
|
|
'get_exchange_info',
|
||
|
|
]
|
||
|
|
|
||
|
|
# Exchange registry for factory pattern
|
||
|
|
EXCHANGE_REGISTRY = {
|
||
|
|
'okx': {
|
||
|
|
'collector': 'data.exchanges.okx.collector.OKXCollector',
|
||
|
|
'websocket': 'data.exchanges.okx.websocket.OKXWebSocketClient',
|
||
|
|
'name': 'OKX',
|
||
|
|
'supported_pairs': ['BTC-USDT', 'ETH-USDT', 'SOL-USDT', 'DOGE-USDT', 'TON-USDT'],
|
||
|
|
'supported_data_types': ['trade', 'orderbook', 'ticker', 'candles']
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
def get_supported_exchanges():
|
||
|
|
"""Get list of supported exchange names."""
|
||
|
|
return list(EXCHANGE_REGISTRY.keys())
|
||
|
|
|
||
|
|
def get_exchange_info(exchange_name: str):
|
||
|
|
"""Get information about a specific exchange."""
|
||
|
|
return EXCHANGE_REGISTRY.get(exchange_name.lower())
|