from __future__ import annotations from dataclasses import dataclass, field import httpx __all__ = ["ClientOptions"] def _empty_header_dict() -> dict[str, str]: return {} @dataclass(frozen=True, kw_only=True, slots=True) class ClientOptions: """User-facing configuration for `OpenstatusClient` and `AsyncOpenstatusClient`. All fields are optional. Unset string fields fall back to environment variables (`OPENSTATUS_API_KEY`, `OPENSTATUS_API_URL`) at client construction time. """ api_key: str | None = None base_url: str | None = None timeout: float = 30.0 http_client: httpx.Client | None = None async_http_client: httpx.AsyncClient | None = None default_headers: dict[str, str] = field(default_factory=_empty_header_dict)