summaryrefslogtreecommitdiffhomepage
path: root/packages/sdk/python/src/opencode_ai/models/reasoning_part.py
blob: a91df274bba24baa36afddf008b176ce711e410f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
from collections.abc import Mapping
from typing import TYPE_CHECKING, Any, Literal, TypeVar, Union, cast

from attrs import define as _attrs_define
from attrs import field as _attrs_field

from ..types import UNSET, Unset

if TYPE_CHECKING:
    from ..models.reasoning_part_metadata import ReasoningPartMetadata
    from ..models.reasoning_part_time import ReasoningPartTime


T = TypeVar("T", bound="ReasoningPart")


@_attrs_define
class ReasoningPart:
    """
    Attributes:
        id (str):
        session_id (str):
        message_id (str):
        type_ (Literal['reasoning']):
        text (str):
        time (ReasoningPartTime):
        metadata (Union[Unset, ReasoningPartMetadata]):
    """

    id: str
    session_id: str
    message_id: str
    type_: Literal["reasoning"]
    text: str
    time: "ReasoningPartTime"
    metadata: Union[Unset, "ReasoningPartMetadata"] = UNSET
    additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)

    def to_dict(self) -> dict[str, Any]:
        id = self.id

        session_id = self.session_id

        message_id = self.message_id

        type_ = self.type_

        text = self.text

        time = self.time.to_dict()

        metadata: Union[Unset, dict[str, Any]] = UNSET
        if not isinstance(self.metadata, Unset):
            metadata = self.metadata.to_dict()

        field_dict: dict[str, Any] = {}
        field_dict.update(self.additional_properties)
        field_dict.update(
            {
                "id": id,
                "sessionID": session_id,
                "messageID": message_id,
                "type": type_,
                "text": text,
                "time": time,
            }
        )
        if metadata is not UNSET:
            field_dict["metadata"] = metadata

        return field_dict

    @classmethod
    def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
        from ..models.reasoning_part_metadata import ReasoningPartMetadata
        from ..models.reasoning_part_time import ReasoningPartTime

        d = dict(src_dict)
        id = d.pop("id")

        session_id = d.pop("sessionID")

        message_id = d.pop("messageID")

        type_ = cast(Literal["reasoning"], d.pop("type"))
        if type_ != "reasoning":
            raise ValueError(f"type must match const 'reasoning', got '{type_}'")

        text = d.pop("text")

        time = ReasoningPartTime.from_dict(d.pop("time"))

        _metadata = d.pop("metadata", UNSET)
        metadata: Union[Unset, ReasoningPartMetadata]
        if isinstance(_metadata, Unset):
            metadata = UNSET
        else:
            metadata = ReasoningPartMetadata.from_dict(_metadata)

        reasoning_part = cls(
            id=id,
            session_id=session_id,
            message_id=message_id,
            type_=type_,
            text=text,
            time=time,
            metadata=metadata,
        )

        reasoning_part.additional_properties = d
        return reasoning_part

    @property
    def additional_keys(self) -> list[str]:
        return list(self.additional_properties.keys())

    def __getitem__(self, key: str) -> Any:
        return self.additional_properties[key]

    def __setitem__(self, key: str, value: Any) -> None:
        self.additional_properties[key] = value

    def __delitem__(self, key: str) -> None:
        del self.additional_properties[key]

    def __contains__(self, key: str) -> bool:
        return key in self.additional_properties