11from collections .abc import Mapping
22from typing import (
3+ TYPE_CHECKING ,
34 Any ,
45 TypeVar ,
56 Union ,
7+ cast ,
68)
79
810from attrs import define as _attrs_define
1113from ..models .track_type import TrackType
1214from ..types import UNSET , Unset
1315
16+ if TYPE_CHECKING :
17+ from ..models .track_metadata_type_0 import TrackMetadataType0
18+
19+
1420T = TypeVar ("T" , bound = "Track" )
1521
1622
@@ -20,19 +26,27 @@ class Track:
2026
2127 Attributes:
2228 id (Union[Unset, str]):
23- metadata (Union[Unset, Any ]):
29+ metadata (Union['TrackMetadataType0', None, Unset ]): Example: {'source': 'camera'}.
2430 type_ (Union[Unset, TrackType]):
2531 """
2632
2733 id : Union [Unset , str ] = UNSET
28- metadata : Union [Unset , Any ] = UNSET
34+ metadata : Union ["TrackMetadataType0" , None , Unset ] = UNSET
2935 type_ : Union [Unset , TrackType ] = UNSET
3036 additional_properties : dict [str , Any ] = _attrs_field (init = False , factory = dict )
3137
3238 def to_dict (self ) -> dict [str , Any ]:
39+ from ..models .track_metadata_type_0 import TrackMetadataType0
40+
3341 id = self .id
3442
35- metadata = self .metadata
43+ metadata : Union [None , Unset , dict [str , Any ]]
44+ if isinstance (self .metadata , Unset ):
45+ metadata = UNSET
46+ elif isinstance (self .metadata , TrackMetadataType0 ):
47+ metadata = self .metadata .to_dict ()
48+ else :
49+ metadata = self .metadata
3650
3751 type_ : Union [Unset , str ] = UNSET
3852 if not isinstance (self .type_ , Unset ):
@@ -52,10 +66,27 @@ def to_dict(self) -> dict[str, Any]:
5266
5367 @classmethod
5468 def from_dict (cls : type [T ], src_dict : Mapping [str , Any ]) -> T :
69+ from ..models .track_metadata_type_0 import TrackMetadataType0
70+
5571 d = dict (src_dict )
5672 id = d .pop ("id" , UNSET )
5773
58- metadata = d .pop ("metadata" , UNSET )
74+ def _parse_metadata (data : object ) -> Union ["TrackMetadataType0" , None , Unset ]:
75+ if data is None :
76+ return data
77+ if isinstance (data , Unset ):
78+ return data
79+ try :
80+ if not isinstance (data , dict ):
81+ raise TypeError ()
82+ metadata_type_0 = TrackMetadataType0 .from_dict (data )
83+
84+ return metadata_type_0
85+ except : # noqa: E722
86+ pass
87+ return cast (Union ["TrackMetadataType0" , None , Unset ], data )
88+
89+ metadata = _parse_metadata (d .pop ("metadata" , UNSET ))
5990
6091 _type_ = d .pop ("type" , UNSET )
6192 type_ : Union [Unset , TrackType ]
0 commit comments