config.py 664 B

123456789101112131415161718192021222324
  1. import os
  2. from dataclasses import dataclass
  3. from typing import Mapping
  4. @dataclass(frozen=True)
  5. class Config:
  6. api_key: str
  7. api_secret: str
  8. api_passphrase: str
  9. def load_config(env: Mapping[str, str] | None = None) -> Config:
  10. source = os.environ if env is None else env
  11. api_key = source.get("OKX_API_KEY")
  12. api_secret = source.get("OKX_API_SECRET")
  13. api_passphrase = source.get("OKX_API_PASSPHRASE")
  14. if not api_key or not api_secret or not api_passphrase:
  15. raise ValueError("OKX credentials are required")
  16. return Config(
  17. api_key=api_key,
  18. api_secret=api_secret,
  19. api_passphrase=api_passphrase,
  20. )