Source code for ds_protocol_http_py_lib.models

"""
**File:** ``models.py``
**Region:** ``ds_protocol_http_py_lib``

Typed helper models used by the HTTP dataset layer.
"""

from dataclasses import dataclass

from ds_common_serde_py_lib import Serializable


[docs] @dataclass(kw_only=True) class Files(Serializable): """ Multipart file descriptor for `HttpDatasetSettings.files`. """ field: str = "file" """Multipart form field name (e.g. ``"file"`` or ``"upload"``).""" filename: str """Filename sent as the multipart part name.""" content: bytes | str """File payload sent as multipart file content.""" content_type: str | None = None """Optional content-type for the multipart part."""
[docs] def to_requests_file_tuple( self, ) -> tuple[str, bytes | str] | tuple[str, bytes | str, str]: """ Convert into a `requests` multipart file tuple. Tuple shapes supported by `requests`: - ``(filename, fileobj)`` - ``(filename, fileobj, content_type)`` """ if self.content_type is not None: return (self.filename, self.content, self.content_type) return (self.filename, self.content)