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
|