mirror of
https://github.com/Ladebeze66/llm_ticket3.git
synced 2025-12-18 07:27:46 +01:00
67 lines
2.1 KiB
Python
67 lines
2.1 KiB
Python
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
|
|
import io
|
|
from dataclasses import dataclass
|
|
import re
|
|
from typing import (
|
|
Any,
|
|
Optional,
|
|
)
|
|
|
|
from .forms import serialize_form_data, serialize_multipart_form
|
|
|
|
from .serializers import marshal_json
|
|
|
|
SERIALIZATION_METHOD_TO_CONTENT_TYPE = {
|
|
"json": "application/json",
|
|
"form": "application/x-www-form-urlencoded",
|
|
"multipart": "multipart/form-data",
|
|
"raw": "application/octet-stream",
|
|
"string": "text/plain",
|
|
}
|
|
|
|
|
|
@dataclass
|
|
class SerializedRequestBody:
|
|
media_type: Optional[str] = None
|
|
content: Optional[Any] = None
|
|
data: Optional[Any] = None
|
|
files: Optional[Any] = None
|
|
|
|
|
|
def serialize_request_body(
|
|
request_body: Any,
|
|
nullable: bool,
|
|
optional: bool,
|
|
serialization_method: str,
|
|
request_body_type,
|
|
) -> Optional[SerializedRequestBody]:
|
|
if request_body is None:
|
|
if not nullable and optional:
|
|
return None
|
|
|
|
media_type = SERIALIZATION_METHOD_TO_CONTENT_TYPE[serialization_method]
|
|
|
|
serialized_request_body = SerializedRequestBody(media_type)
|
|
|
|
if re.match(r"(application|text)\/.*?\+*json.*", media_type) is not None:
|
|
serialized_request_body.content = marshal_json(request_body, request_body_type)
|
|
elif re.match(r"multipart\/.*", media_type) is not None:
|
|
(
|
|
serialized_request_body.media_type,
|
|
serialized_request_body.data,
|
|
serialized_request_body.files,
|
|
) = serialize_multipart_form(media_type, request_body)
|
|
elif re.match(r"application\/x-www-form-urlencoded.*", media_type) is not None:
|
|
serialized_request_body.data = serialize_form_data(request_body)
|
|
elif isinstance(request_body, (bytes, bytearray, io.BytesIO, io.BufferedReader)):
|
|
serialized_request_body.content = request_body
|
|
elif isinstance(request_body, str):
|
|
serialized_request_body.content = request_body
|
|
else:
|
|
raise TypeError(
|
|
f"invalid request body type {type(request_body)} for mediaType {media_type}"
|
|
)
|
|
|
|
return serialized_request_body
|