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

120 lines
3.4 KiB
Python

"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from .reasoningformat import ReasoningFormat
from .reasoningsummarytext import ReasoningSummaryText, ReasoningSummaryTextTypedDict
from .reasoningtextcontent import ReasoningTextContent, ReasoningTextContentTypedDict
from openrouter.types import (
BaseModel,
Nullable,
OptionalNullable,
UNSET,
UNSET_SENTINEL,
)
import pydantic
from pydantic import model_serializer
from typing import List, Literal, Optional, Union
from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
OutputReasoningItemStatusInProgress = Literal["in_progress",]
OutputReasoningItemStatusIncomplete = Literal["incomplete",]
OutputReasoningItemStatusCompleted = Literal["completed",]
OutputReasoningItemStatusUnionTypedDict = TypeAliasType(
"OutputReasoningItemStatusUnionTypedDict",
Union[
OutputReasoningItemStatusCompleted,
OutputReasoningItemStatusIncomplete,
OutputReasoningItemStatusInProgress,
],
)
OutputReasoningItemStatusUnion = TypeAliasType(
"OutputReasoningItemStatusUnion",
Union[
OutputReasoningItemStatusCompleted,
OutputReasoningItemStatusIncomplete,
OutputReasoningItemStatusInProgress,
],
)
OutputReasoningItemType = Literal["reasoning",]
class OutputReasoningItemTypedDict(TypedDict):
r"""An output item containing reasoning"""
id: str
summary: List[ReasoningSummaryTextTypedDict]
type: OutputReasoningItemType
content: NotRequired[Nullable[List[ReasoningTextContentTypedDict]]]
encrypted_content: NotRequired[Nullable[str]]
status: NotRequired[OutputReasoningItemStatusUnionTypedDict]
format_: NotRequired[Nullable[ReasoningFormat]]
signature: NotRequired[Nullable[str]]
r"""A signature for the reasoning content, used for verification"""
class OutputReasoningItem(BaseModel):
r"""An output item containing reasoning"""
id: str
summary: List[ReasoningSummaryText]
type: OutputReasoningItemType
content: OptionalNullable[List[ReasoningTextContent]] = UNSET
encrypted_content: OptionalNullable[str] = UNSET
status: Optional[OutputReasoningItemStatusUnion] = None
format_: Annotated[
OptionalNullable[ReasoningFormat], pydantic.Field(alias="format")
] = UNSET
signature: OptionalNullable[str] = UNSET
r"""A signature for the reasoning content, used for verification"""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = set(
["content", "encrypted_content", "status", "format", "signature"]
)
nullable_fields = set(["content", "encrypted_content", "format", "signature"])
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
try:
OutputReasoningItem.model_rebuild()
except NameError:
pass