feat: add market data architecture and complete migration through build 039
This commit is contained in:
49
app/tools/dzengi_probe/config.py
Normal file
49
app/tools/dzengi_probe/config.py
Normal file
@@ -0,0 +1,49 @@
|
||||
# app/tools/dzengi_probe/config.py
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
|
||||
from dotenv import load_dotenv
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class DzengiProbeConfig:
|
||||
base_url: str
|
||||
ws_url: str
|
||||
api_version: str
|
||||
symbol: str
|
||||
symbol_file_name: str
|
||||
interval: str
|
||||
depth_limit: str
|
||||
agg_trades_limit: str
|
||||
timeout_seconds: float
|
||||
output_dir: Path
|
||||
|
||||
|
||||
def load_config() -> DzengiProbeConfig:
|
||||
load_dotenv("app/.env")
|
||||
|
||||
base_url = os.getenv("EXCHANGE_BASE_URL", "").rstrip("/")
|
||||
ws_url = os.getenv("EXCHANGE_WS_URL", "").rstrip("/")
|
||||
|
||||
if not base_url:
|
||||
raise RuntimeError("EXCHANGE_BASE_URL is empty.")
|
||||
|
||||
symbol = os.getenv("PROBE_SYMBOL", "BTC/USD_LEVERAGE")
|
||||
symbol_file_name = symbol.replace("/", "_")
|
||||
|
||||
return DzengiProbeConfig(
|
||||
base_url=base_url,
|
||||
ws_url=ws_url,
|
||||
api_version=os.getenv("PROBE_API_VERSION", "v1"),
|
||||
symbol=symbol,
|
||||
symbol_file_name=symbol_file_name,
|
||||
interval=os.getenv("PROBE_KLINE_INTERVAL", "1m"),
|
||||
depth_limit=os.getenv("PROBE_DEPTH_LIMIT", "20"),
|
||||
agg_trades_limit=os.getenv("PROBE_AGG_TRADES_LIMIT", "20"),
|
||||
timeout_seconds=float(os.getenv("EXCHANGE_TIMEOUT_SEC", "10")),
|
||||
output_dir=Path("app/tools/dzengi_probe/runtime_samples"),
|
||||
)
|
||||
Reference in New Issue
Block a user