"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL import pydantic from pydantic import model_serializer from typing import List from typing_extensions import Annotated, TypedDict class ChatTokenLogprobTopLogprobTypedDict(TypedDict): bytes_: Nullable[List[int]] logprob: float token: str class ChatTokenLogprobTopLogprob(BaseModel): bytes_: Annotated[Nullable[List[int]], pydantic.Field(alias="bytes")] logprob: float token: str @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = [] nullable_fields = ["bytes"] null_default_fields = [] serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): k = f.alias or n val = serialized.get(k) serialized.pop(k, None) optional_nullable = k in optional_fields and k in nullable_fields is_set = ( self.__pydantic_fields_set__.intersection({n}) or k in null_default_fields ) # pylint: disable=no-member if val is not None and val != UNSET_SENTINEL: m[k] = val elif val != UNSET_SENTINEL and ( not k in optional_fields or (optional_nullable and is_set) ): m[k] = val return m class ChatTokenLogprobTypedDict(TypedDict): r"""Token log probability information""" bytes_: Nullable[List[int]] r"""UTF-8 bytes of the token""" logprob: float r"""Log probability of the token""" token: str r"""The token""" top_logprobs: List[ChatTokenLogprobTopLogprobTypedDict] r"""Top alternative tokens with probabilities""" class ChatTokenLogprob(BaseModel): r"""Token log probability information""" bytes_: Annotated[Nullable[List[int]], pydantic.Field(alias="bytes")] r"""UTF-8 bytes of the token""" logprob: float r"""Log probability of the token""" token: str r"""The token""" top_logprobs: List[ChatTokenLogprobTopLogprob] r"""Top alternative tokens with probabilities""" @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = [] nullable_fields = ["bytes"] null_default_fields = [] serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): k = f.alias or n val = serialized.get(k) serialized.pop(k, None) optional_nullable = k in optional_fields and k in nullable_fields is_set = ( self.__pydantic_fields_set__.intersection({n}) or k in null_default_fields ) # pylint: disable=no-member if val is not None and val != UNSET_SENTINEL: m[k] = val elif val != UNSET_SENTINEL and ( not k in optional_fields or (optional_nullable and is_set) ): m[k] = val return m