import os from dataclasses import dataclass from typing import Mapping @dataclass(frozen=True) class Config: api_key: str api_secret: str api_passphrase: str def load_config(env: Mapping[str, str] | None = None) -> Config: source = os.environ if env is None else env api_key = source.get("OKX_API_KEY") api_secret = source.get("OKX_API_SECRET") api_passphrase = source.get("OKX_API_PASSPHRASE") if not api_key or not api_secret or not api_passphrase: raise ValueError("OKX credentials are required") return Config( api_key=api_key, api_secret=api_secret, api_passphrase=api_passphrase, )