Source code for mgnipy.emgapi_v2_client.types

"""Contains some shared types for properties"""

from collections.abc import (
    Mapping,
    MutableMapping,
)
from http import HTTPStatus
from typing import (
    IO,
    BinaryIO,
    Generic,
    Literal,
    TypeVar,
)

from attrs import define


[docs] class Unset: def __bool__(self) -> Literal[False]: return False
UNSET: Unset = Unset() # The types that `httpx.Client(files=)` can accept, copied from that library. FileContent = IO[bytes] | bytes | str FileTypes = ( # (filename, file (or bytes), content_type) tuple[str | None, FileContent, str | None] # (filename, file (or bytes), content_type, headers) | tuple[str | None, FileContent, str | None, Mapping[str, str]] ) RequestFiles = list[tuple[str, FileTypes]]
[docs] @define class File: """Contains information for file uploads""" payload: BinaryIO file_name: str | None = None mime_type: str | None = None
[docs] def to_tuple(self) -> FileTypes: """Return a tuple representation that httpx will accept for multipart/form-data""" return self.file_name, self.payload, self.mime_type
T = TypeVar("T")
[docs] @define class Response(Generic[T]): """A response from an endpoint""" status_code: HTTPStatus content: bytes headers: MutableMapping[str, str] parsed: T | None
__all__ = ["UNSET", "File", "FileTypes", "RequestFiles", "Response", "Unset"]