Skip to content

Configuration

Configuration dataclasses used to construct an OxideHTTP client.

Source code in src/oxidehttp/config.py
@dataclass(slots=True, frozen=True)
class OxideHTTPConfig:
    base_url: str | None = None
    headers: Headers | None = None
    connection: ConnectionConfig = field(default_factory=ConnectionConfig)
    security: SecurityConfig = field(default_factory=SecurityConfig)
    request: RequestConfig = field(default_factory=RequestConfig)
    compression: CompressionConfig = field(default_factory=CompressionConfig)
    logging: LoggingConfig = field(default_factory=LoggingConfig)
Source code in src/oxidehttp/config.py
@dataclass(slots=True, frozen=True)
class ConnectionConfig:
    timeout: timedelta | None = None
    max_connections: int | None = None
    runtime_multithreaded: bool = True
    proxies: Mapping[ProxyType, str] = field(
        default_factory=dict[ProxyType, str]
    )

    def __post_init__(self) -> None:
        if self.timeout is not None and self.timeout <= timedelta(0):
            exc = 'timeout must be greater than zero'
            raise ValueError(exc)

        if self.max_connections is not None and self.max_connections <= 0:
            exc = 'max_connections must be greater than zero'
            raise ValueError(exc)
Source code in src/oxidehttp/config.py
@dataclass(slots=True, frozen=True)
class SecurityConfig:
    verify_ssl: bool = True
Source code in src/oxidehttp/config.py
@dataclass(slots=True, frozen=True)
class RequestConfig:
    user_agent: str | None = DEFAULT_USER_AGENT
    middlewares: Sequence[Middleware] = field(default_factory=tuple)
Source code in src/oxidehttp/config.py
@dataclass(slots=True, frozen=True)
class CompressionConfig:
    gzip: bool = True
    brotli: bool = True
    zstd: bool = True
    deflate: bool = True
Source code in src/oxidehttp/config.py
@dataclass(slots=True, frozen=True)
class LoggingConfig:
    enabled: bool = False
    logger: Logger | None = None
    log_requests: bool = True
    log_streams: bool = True
    log_sse_reconnects: bool = True