Files
openrouter-python-sdk-retry…/src/openrouter/components/openroutermetadata.py
T

73 lines
2.1 KiB
Python

"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from .endpointsmetadata import EndpointsMetadata, EndpointsMetadataTypedDict
from .pipelinestage import PipelineStage, PipelineStageTypedDict
from .routerattempt import RouterAttempt, RouterAttemptTypedDict
from .routerparams import RouterParams, RouterParamsTypedDict
from .routingstrategy import RoutingStrategy
from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL
from pydantic import model_serializer
from typing import List, Optional
from typing_extensions import NotRequired, TypedDict
class OpenRouterMetadataTypedDict(TypedDict):
attempt: int
endpoints: EndpointsMetadataTypedDict
is_byok: bool
region: Nullable[str]
requested: str
strategy: RoutingStrategy
summary: str
attempts: NotRequired[List[RouterAttemptTypedDict]]
params: NotRequired[RouterParamsTypedDict]
pipeline: NotRequired[List[PipelineStageTypedDict]]
class OpenRouterMetadata(BaseModel):
attempt: int
endpoints: EndpointsMetadata
is_byok: bool
region: Nullable[str]
requested: str
strategy: RoutingStrategy
summary: str
attempts: Optional[List[RouterAttempt]] = None
params: Optional[RouterParams] = None
pipeline: Optional[List[PipelineStage]] = None
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = set(["attempts", "params", "pipeline"])
nullable_fields = set(["region"])
serialized = handler(self)
m = {}
for n, f in type(self).model_fields.items():
k = f.alias or n
val = serialized.get(k, serialized.get(n))
is_nullable_and_explicitly_set = (
k in nullable_fields
and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
)
if val != UNSET_SENTINEL:
if (
val is not None
or k not in optional_fields
or is_nullable_and_explicitly_set
):
m[k] = val
return m