Source code for restpite._models

from __future__ import annotations

import typing
from dataclasses import dataclass

from httpx import URL as HttpxURL
from httpx import Limits
from httpx import Timeout as HttpxTimeout


@dataclass(frozen=True, repr=True)
class CertificateInfo:
    certfile: typing.Optional[str] = None
    keyfile: typing.Optional[str] = None
    password: typing.Optional[str] = None


class Timeout(HttpxTimeout):
    ...


[docs]class Connection(Limits):
[docs] @classmethod def from_tuple(cls, options: typing.Union[typing.Tuple[int, int], typing.Tuple[int, int, float]]) -> Connection: """ Class method for converting a length 2 OR 3 tuple into the appropriate `Connection` instance. """ if len(options) == 3: max_conns, max_keep, expiry = typing.cast(typing.Tuple[int, int, float], options) return cls(max_connections=max_conns, max_keepalive_connections=max_keep, keepalive_expiry=expiry) elif len(options) == 2: max_conns, max_keep = typing.cast(typing.Tuple[int, int], options) return cls(max_connections=max_conns, max_keepalive_connections=max_keep) else: raise ValueError("When using a tuple for connection=, at least two values must be provided.")
class URL(HttpxURL): ...