robodock-cli 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. app/__init__.py +1 -0
  2. app/app.py +14 -0
  3. app/auth.py +58 -0
  4. app/task_management.py +97 -0
  5. config.py +9 -0
  6. fast_api_client/__init__.py +8 -0
  7. fast_api_client/api/__init__.py +1 -0
  8. fast_api_client/api/auth/__init__.py +1 -0
  9. fast_api_client/api/auth/change_password_api_p_v1_auth_change_password_post.py +172 -0
  10. fast_api_client/api/auth/forgot_password_api_p_v1_auth_forgot_password_post.py +172 -0
  11. fast_api_client/api/auth/login_api_p_v1_auth_login_post.py +172 -0
  12. fast_api_client/api/auth/logout_api_p_v1_auth_logout_post.py +172 -0
  13. fast_api_client/api/auth/me_api_p_v1_auth_me_get.py +85 -0
  14. fast_api_client/api/auth/refresh_token_api_p_v1_auth_refresh_post.py +172 -0
  15. fast_api_client/api/auth/reset_password_api_p_v1_auth_reset_password_post.py +172 -0
  16. fast_api_client/api/auth/switch_group_api_p_v1_auth_switch_group_post.py +176 -0
  17. fast_api_client/api/config/__init__.py +1 -0
  18. fast_api_client/api/config/get_config_api_p_v1_config_get.py +85 -0
  19. fast_api_client/api/default/__init__.py +1 -0
  20. fast_api_client/api/default/root_get.py +81 -0
  21. fast_api_client/api/groups/__init__.py +1 -0
  22. fast_api_client/api/groups/add_member_api_p_v1_groups_group_id_members_post.py +188 -0
  23. fast_api_client/api/groups/create_group_api_p_v1_groups_post.py +172 -0
  24. fast_api_client/api/groups/create_platform_role_binding_api_p_v1_admin_platform_roles_bindings_post.py +172 -0
  25. fast_api_client/api/groups/delete_group_api_p_v1_groups_group_id_delete.py +167 -0
  26. fast_api_client/api/groups/delete_platform_role_binding_api_p_v1_admin_platform_roles_bindings_user_id_delete.py +167 -0
  27. fast_api_client/api/groups/get_group_api_p_v1_groups_group_id_get.py +167 -0
  28. fast_api_client/api/groups/list_groups_api_p_v1_groups_get.py +85 -0
  29. fast_api_client/api/groups/list_members_api_p_v1_groups_group_id_members_get.py +167 -0
  30. fast_api_client/api/groups/list_platform_role_bindings_api_p_v1_admin_platform_roles_bindings_get.py +85 -0
  31. fast_api_client/api/groups/remove_member_api_p_v1_groups_group_id_members_user_id_delete.py +181 -0
  32. fast_api_client/api/groups/reset_member_password_api_p_v1_groups_group_id_members_user_id_reset_password_post.py +181 -0
  33. fast_api_client/api/groups/update_group_api_p_v1_groups_group_id_patch.py +188 -0
  34. fast_api_client/api/groups/update_member_role_api_p_v1_groups_group_id_members_user_id_patch.py +202 -0
  35. fast_api_client/api/post_train/__init__.py +1 -0
  36. fast_api_client/api/post_train/check_patch_duplicate_api_p_v1_singledata_patch_check_post.py +164 -0
  37. fast_api_client/api/post_train/check_patch_duplicate_batch_api_p_v1_singledata_patch_check_batch_post.py +164 -0
  38. fast_api_client/api/post_train/create_dataset_api_p_v1_dataset_post.py +172 -0
  39. fast_api_client/api/post_train/create_patch_upload_api_p_v1_singledata_patch_upload_post.py +164 -0
  40. fast_api_client/api/post_train/data_ops_overview_api_p_v1_data_ops_overview_get.py +624 -0
  41. fast_api_client/api/post_train/data_ops_patches_api_p_v1_data_ops_patches_get.py +474 -0
  42. fast_api_client/api/post_train/delete_dataset_api_p_v1_dataset_dataset_uuid_delete.py +167 -0
  43. fast_api_client/api/post_train/delete_singledata_api_p_v1_singledata_uuid_delete.py +167 -0
  44. fast_api_client/api/post_train/delete_singledata_by_patch_api_p_v1_singledata_patch_patch_id_delete.py +167 -0
  45. fast_api_client/api/post_train/delete_singledata_list_api_p_v1_singledata_delete.py +172 -0
  46. fast_api_client/api/post_train/download_singledata_api_p_v1_singledata_download_uuid_get.py +167 -0
  47. fast_api_client/api/post_train/download_singledata_list_api_p_v1_singledata_download_get.py +178 -0
  48. fast_api_client/api/post_train/get_singledata_api_p_v1_singledata_uuid_get.py +167 -0
  49. fast_api_client/api/post_train/link_singledata_api_p_v1_singledata_link_post.py +172 -0
  50. fast_api_client/api/post_train/list_dataset_api_p_v1_dataset_get.py +307 -0
  51. fast_api_client/api/post_train/list_singledata_api_p_v1_singledata_get.py +737 -0
  52. fast_api_client/api/post_train/trigger_process_api_p_v1_singledata_trigger_post.py +172 -0
  53. fast_api_client/api/post_train/unlink_singledata_api_p_v1_singledata_unlink_post.py +172 -0
  54. fast_api_client/api/post_train/update_dataset_add_api_p_v1_dataset_update_dataset_uuid_post.py +188 -0
  55. fast_api_client/api/post_train/update_dataset_all_fields_api_p_v1_dataset_uuid_patch.py +188 -0
  56. fast_api_client/api/post_train/update_dataset_info_api_p_v1_dataset_update_post.py +172 -0
  57. fast_api_client/api/post_train/update_dataset_reduce_api_p_v1_dataset_reduce_dataset_uuid_post.py +188 -0
  58. fast_api_client/api/post_train/update_singledata_api_p_v1_singledata_uuid_patch.py +188 -0
  59. fast_api_client/api/post_train/update_singledata_tag_api_p_v1_singledata_tag_post.py +176 -0
  60. fast_api_client/api/post_train/update_upload_status_api_p_v1_singledata_upload_status_patch.py +176 -0
  61. fast_api_client/api/post_train/upload_singledata_api_p_v1_singledata_post.py +172 -0
  62. fast_api_client/api/post_train/upload_singledata_list_api_p_v1_singledata_list_post.py +172 -0
  63. fast_api_client/api/task_management/__init__.py +1 -0
  64. fast_api_client/api/task_management/create_project_api_p_v1_project_project_name_post.py +204 -0
  65. fast_api_client/api/task_management/create_rl_stage_api_p_v1_run_run_uuid_stage_rl_post.py +180 -0
  66. fast_api_client/api/task_management/create_run_api_p_v1_run_post.py +172 -0
  67. fast_api_client/api/task_management/delete_project_api_p_v1_project_uuid_delete.py +159 -0
  68. fast_api_client/api/task_management/delete_run_api_p_v1_run_uuid_delete.py +159 -0
  69. fast_api_client/api/task_management/delete_run_stage_api_p_v1_run_run_uuid_stage_stage_name_delete.py +181 -0
  70. fast_api_client/api/task_management/get_checkpoint_download_url_api_p_v1_run_checkpoint_download_post.py +172 -0
  71. fast_api_client/api/task_management/get_project_api_p_v1_project_uuid_get.py +159 -0
  72. fast_api_client/api/task_management/get_run_api_p_v1_run_unique_id_get.py +180 -0
  73. fast_api_client/api/task_management/get_run_log_info_api_p_v1_run_log_get.py +206 -0
  74. fast_api_client/api/task_management/get_run_stage_api_p_v1_run_run_uuid_stage_stage_name_get.py +173 -0
  75. fast_api_client/api/task_management/get_run_status_api_p_v1_run_status_uuid_get.py +159 -0
  76. fast_api_client/api/task_management/list_projects_api_p_v1_project_get.py +359 -0
  77. fast_api_client/api/task_management/list_runs_api_p_v1_run_get.py +399 -0
  78. fast_api_client/api/task_management/open_artifact_api_p_v1_run_artifact_open_post.py +164 -0
  79. fast_api_client/api/task_management/proxy_argo_log_api_p_v1_run_log_proxy_get.py +85 -0
  80. fast_api_client/api/task_management/resubmit_run_api_p_v1_run_resubmit_unique_id_post.py +180 -0
  81. fast_api_client/api/task_management/retry_run_api_p_v1_run_retry_unique_id_post.py +180 -0
  82. fast_api_client/api/task_management/stop_run_api_p_v1_run_stop_uuid_post.py +159 -0
  83. fast_api_client/api/task_management/trigger_model_convert_api_p_v1_run_model_convert_trigger_post.py +172 -0
  84. fast_api_client/api/task_management/update_project_api_p_v1_project_uuid_patch.py +180 -0
  85. fast_api_client/api/task_management/update_run_api_p_v1_run_unique_id_patch.py +200 -0
  86. fast_api_client/api/task_mapping/__init__.py +1 -0
  87. fast_api_client/api/task_mapping/create_task_mapping_api_p_v1_task_mapping_post.py +164 -0
  88. fast_api_client/api/task_mapping/delete_task_mapping_api_p_v1_task_mapping_task_id_delete.py +159 -0
  89. fast_api_client/api/task_mapping/get_task_mapping_api_p_v1_task_mapping_task_id_get.py +159 -0
  90. fast_api_client/api/task_mapping/list_task_mapping_patches_api_p_v1_task_mapping_task_id_patches_get.py +195 -0
  91. fast_api_client/api/task_mapping/list_task_mappings_api_p_v1_task_mapping_get.py +279 -0
  92. fast_api_client/api/task_mapping/update_task_mapping_api_p_v1_task_mapping_task_id_patch.py +180 -0
  93. fast_api_client/client.py +268 -0
  94. fast_api_client/errors.py +16 -0
  95. fast_api_client/models/__init__.py +121 -0
  96. fast_api_client/models/add_member_request.py +89 -0
  97. fast_api_client/models/artifact_item.py +251 -0
  98. fast_api_client/models/artifact_item_extra_info_type_0.py +45 -0
  99. fast_api_client/models/artifact_open_request.py +93 -0
  100. fast_api_client/models/body_download_singledata_list_api_pv1_singledata_download_get.py +61 -0
  101. fast_api_client/models/change_password_request.py +69 -0
  102. fast_api_client/models/checkpoint_download_request.py +69 -0
  103. fast_api_client/models/create_group_request.py +72 -0
  104. fast_api_client/models/create_platform_role_binding_request.py +69 -0
  105. fast_api_client/models/dataset_add_request.py +165 -0
  106. fast_api_client/models/dataset_create_request.py +253 -0
  107. fast_api_client/models/dataset_full_update_request.py +133 -0
  108. fast_api_client/models/dataset_reduce_request.py +84 -0
  109. fast_api_client/models/dataset_update_request.py +123 -0
  110. fast_api_client/models/forgot_password_request.py +61 -0
  111. fast_api_client/models/http_validation_error.py +79 -0
  112. fast_api_client/models/login_request.py +69 -0
  113. fast_api_client/models/logout_request.py +61 -0
  114. fast_api_client/models/model_convert_trigger_request.py +69 -0
  115. fast_api_client/models/patch_duplicate_batch_item_request.py +69 -0
  116. fast_api_client/models/patch_duplicate_batch_request.py +75 -0
  117. fast_api_client/models/patch_duplicate_check_request.py +69 -0
  118. fast_api_client/models/patch_episode_create_request.py +547 -0
  119. fast_api_client/models/patch_episode_create_request_lable_info.py +47 -0
  120. fast_api_client/models/patch_upload_create_request.py +94 -0
  121. fast_api_client/models/project_create_request.py +174 -0
  122. fast_api_client/models/project_create_request_default_configs.py +47 -0
  123. fast_api_client/models/project_update_request.py +175 -0
  124. fast_api_client/models/project_update_request_default_configs_type_0.py +45 -0
  125. fast_api_client/models/refresh_request.py +61 -0
  126. fast_api_client/models/reset_password_request.py +69 -0
  127. fast_api_client/models/rl_stage_create_request.py +75 -0
  128. fast_api_client/models/rl_stage_create_request_configs.py +47 -0
  129. fast_api_client/models/run_create_request.py +243 -0
  130. fast_api_client/models/run_create_request_configs.py +47 -0
  131. fast_api_client/models/run_update_request.py +533 -0
  132. fast_api_client/models/run_update_request_artifacts_type_0.py +45 -0
  133. fast_api_client/models/run_update_request_configs_type_0.py +45 -0
  134. fast_api_client/models/run_update_request_stages_type_0_item.py +45 -0
  135. fast_api_client/models/single_data_create_request.py +189 -0
  136. fast_api_client/models/single_data_link_request.py +69 -0
  137. fast_api_client/models/single_data_list_request.py +169 -0
  138. fast_api_client/models/single_data_tag_request.py +69 -0
  139. fast_api_client/models/single_data_trigger_request.py +61 -0
  140. fast_api_client/models/single_data_unlink_request.py +69 -0
  141. fast_api_client/models/single_data_update_request.py +775 -0
  142. fast_api_client/models/single_data_update_request_lable_info_type_0.py +45 -0
  143. fast_api_client/models/stage_artifact_append.py +85 -0
  144. fast_api_client/models/stage_artifact_append_category.py +10 -0
  145. fast_api_client/models/switch_group_request.py +61 -0
  146. fast_api_client/models/task_mapping_create_request.py +111 -0
  147. fast_api_client/models/task_mapping_update_request.py +93 -0
  148. fast_api_client/models/update_group_request.py +93 -0
  149. fast_api_client/models/update_member_request.py +61 -0
  150. fast_api_client/models/upload_status_request.py +69 -0
  151. fast_api_client/models/validation_error.py +123 -0
  152. fast_api_client/models/validation_error_context.py +45 -0
  153. fast_api_client/py.typed +1 -0
  154. fast_api_client/types.py +54 -0
  155. robodock_cli-0.1.0.dist-info/METADATA +97 -0
  156. robodock_cli-0.1.0.dist-info/RECORD +167 -0
  157. robodock_cli-0.1.0.dist-info/WHEEL +5 -0
  158. robodock_cli-0.1.0.dist-info/entry_points.txt +2 -0
  159. robodock_cli-0.1.0.dist-info/top_level.txt +4 -0
  160. sdk/__init__.py +1 -0
  161. sdk/client/__init__.py +1 -0
  162. sdk/client/auth.py +171 -0
  163. sdk/client/client.py +9 -0
  164. sdk/client/task_management.py +29 -0
  165. sdk/exception.py +95 -0
  166. sdk/utils/__init__.py +1 -0
  167. sdk/utils/downloader.py +267 -0
@@ -0,0 +1,775 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import TYPE_CHECKING, Any, TypeVar, cast
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ from ..types import UNSET, Unset
10
+
11
+ if TYPE_CHECKING:
12
+ from ..models.single_data_update_request_lable_info_type_0 import SingleDataUpdateRequestLableInfoType0
13
+
14
+
15
+ T = TypeVar("T", bound="SingleDataUpdateRequest")
16
+
17
+
18
+ @_attrs_define
19
+ class SingleDataUpdateRequest:
20
+ """
21
+ Attributes:
22
+ alias (None | str | Unset): 别名
23
+ description (None | str | Unset): 描述
24
+ label (None | str | Unset): 标签
25
+ extra_info (None | str | Unset): 额外信息
26
+ uploaded (bool | None | Unset): 上传是否完成
27
+ patch_id (None | str | Unset): patch ID
28
+ patch_name (None | str | Unset): patch 名称
29
+ episode_id (None | str | Unset): episode ID
30
+ source_file_name (None | str | Unset): 源文件名
31
+ operator (None | str | Unset): 操作员
32
+ reviewer (None | str | Unset): 审核员
33
+ review_status (None | str | Unset): 审核状态
34
+ review_time (int | None | Unset): 审核时间
35
+ review_info (None | str | Unset): 审核备注
36
+ collection_method (None | str | Unset): 采集方式
37
+ collector_type (None | str | Unset): 采集设备类型
38
+ collector_id (None | str | Unset): 采集设备 ID
39
+ task_id (None | str | Unset): 任务 ID
40
+ task_actions (None | str | Unset): 任务步骤
41
+ task_description (None | str | Unset): 任务描述
42
+ task_success (int | None | Unset): 任务结果
43
+ finetune (int | None | Unset): 是否用于微调
44
+ isreal (int | None | Unset): 是否真实数据
45
+ lable_info (None | SingleDataUpdateRequestLableInfoType0 | Unset): 标签信息
46
+ scene_type (None | str | Unset): 场景类型
47
+ scene_id (None | str | Unset): 场景 ID
48
+ total_frames (int | None | Unset): 总帧数
49
+ duration_seconds (float | None | Unset): 时长
50
+ collection_time (int | None | Unset): 采集时间
51
+ checker_result (None | str | Unset): 检查结果
52
+ checker_info (None | str | Unset): 检查信息
53
+ ego_robot (None | str | Unset): 机器人类型
54
+ model (None | str | Unset): 模型
55
+ raw_type (None | str | Unset): 原始数据类型
56
+ raw_data_uuid (None | str | Unset): 原始数据UUID
57
+ """
58
+
59
+ alias: None | str | Unset = UNSET
60
+ description: None | str | Unset = UNSET
61
+ label: None | str | Unset = UNSET
62
+ extra_info: None | str | Unset = UNSET
63
+ uploaded: bool | None | Unset = UNSET
64
+ patch_id: None | str | Unset = UNSET
65
+ patch_name: None | str | Unset = UNSET
66
+ episode_id: None | str | Unset = UNSET
67
+ source_file_name: None | str | Unset = UNSET
68
+ operator: None | str | Unset = UNSET
69
+ reviewer: None | str | Unset = UNSET
70
+ review_status: None | str | Unset = UNSET
71
+ review_time: int | None | Unset = UNSET
72
+ review_info: None | str | Unset = UNSET
73
+ collection_method: None | str | Unset = UNSET
74
+ collector_type: None | str | Unset = UNSET
75
+ collector_id: None | str | Unset = UNSET
76
+ task_id: None | str | Unset = UNSET
77
+ task_actions: None | str | Unset = UNSET
78
+ task_description: None | str | Unset = UNSET
79
+ task_success: int | None | Unset = UNSET
80
+ finetune: int | None | Unset = UNSET
81
+ isreal: int | None | Unset = UNSET
82
+ lable_info: None | SingleDataUpdateRequestLableInfoType0 | Unset = UNSET
83
+ scene_type: None | str | Unset = UNSET
84
+ scene_id: None | str | Unset = UNSET
85
+ total_frames: int | None | Unset = UNSET
86
+ duration_seconds: float | None | Unset = UNSET
87
+ collection_time: int | None | Unset = UNSET
88
+ checker_result: None | str | Unset = UNSET
89
+ checker_info: None | str | Unset = UNSET
90
+ ego_robot: None | str | Unset = UNSET
91
+ model: None | str | Unset = UNSET
92
+ raw_type: None | str | Unset = UNSET
93
+ raw_data_uuid: None | str | Unset = UNSET
94
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
95
+
96
+ def to_dict(self) -> dict[str, Any]:
97
+ from ..models.single_data_update_request_lable_info_type_0 import (
98
+ SingleDataUpdateRequestLableInfoType0, # noqa: PLC0415
99
+ )
100
+
101
+ alias: None | str | Unset
102
+ if isinstance(self.alias, Unset):
103
+ alias = UNSET
104
+ else:
105
+ alias = self.alias
106
+
107
+ description: None | str | Unset
108
+ if isinstance(self.description, Unset):
109
+ description = UNSET
110
+ else:
111
+ description = self.description
112
+
113
+ label: None | str | Unset
114
+ if isinstance(self.label, Unset):
115
+ label = UNSET
116
+ else:
117
+ label = self.label
118
+
119
+ extra_info: None | str | Unset
120
+ if isinstance(self.extra_info, Unset):
121
+ extra_info = UNSET
122
+ else:
123
+ extra_info = self.extra_info
124
+
125
+ uploaded: bool | None | Unset
126
+ if isinstance(self.uploaded, Unset):
127
+ uploaded = UNSET
128
+ else:
129
+ uploaded = self.uploaded
130
+
131
+ patch_id: None | str | Unset
132
+ if isinstance(self.patch_id, Unset):
133
+ patch_id = UNSET
134
+ else:
135
+ patch_id = self.patch_id
136
+
137
+ patch_name: None | str | Unset
138
+ if isinstance(self.patch_name, Unset):
139
+ patch_name = UNSET
140
+ else:
141
+ patch_name = self.patch_name
142
+
143
+ episode_id: None | str | Unset
144
+ if isinstance(self.episode_id, Unset):
145
+ episode_id = UNSET
146
+ else:
147
+ episode_id = self.episode_id
148
+
149
+ source_file_name: None | str | Unset
150
+ if isinstance(self.source_file_name, Unset):
151
+ source_file_name = UNSET
152
+ else:
153
+ source_file_name = self.source_file_name
154
+
155
+ operator: None | str | Unset
156
+ if isinstance(self.operator, Unset):
157
+ operator = UNSET
158
+ else:
159
+ operator = self.operator
160
+
161
+ reviewer: None | str | Unset
162
+ if isinstance(self.reviewer, Unset):
163
+ reviewer = UNSET
164
+ else:
165
+ reviewer = self.reviewer
166
+
167
+ review_status: None | str | Unset
168
+ if isinstance(self.review_status, Unset):
169
+ review_status = UNSET
170
+ else:
171
+ review_status = self.review_status
172
+
173
+ review_time: int | None | Unset
174
+ if isinstance(self.review_time, Unset):
175
+ review_time = UNSET
176
+ else:
177
+ review_time = self.review_time
178
+
179
+ review_info: None | str | Unset
180
+ if isinstance(self.review_info, Unset):
181
+ review_info = UNSET
182
+ else:
183
+ review_info = self.review_info
184
+
185
+ collection_method: None | str | Unset
186
+ if isinstance(self.collection_method, Unset):
187
+ collection_method = UNSET
188
+ else:
189
+ collection_method = self.collection_method
190
+
191
+ collector_type: None | str | Unset
192
+ if isinstance(self.collector_type, Unset):
193
+ collector_type = UNSET
194
+ else:
195
+ collector_type = self.collector_type
196
+
197
+ collector_id: None | str | Unset
198
+ if isinstance(self.collector_id, Unset):
199
+ collector_id = UNSET
200
+ else:
201
+ collector_id = self.collector_id
202
+
203
+ task_id: None | str | Unset
204
+ if isinstance(self.task_id, Unset):
205
+ task_id = UNSET
206
+ else:
207
+ task_id = self.task_id
208
+
209
+ task_actions: None | str | Unset
210
+ if isinstance(self.task_actions, Unset):
211
+ task_actions = UNSET
212
+ else:
213
+ task_actions = self.task_actions
214
+
215
+ task_description: None | str | Unset
216
+ if isinstance(self.task_description, Unset):
217
+ task_description = UNSET
218
+ else:
219
+ task_description = self.task_description
220
+
221
+ task_success: int | None | Unset
222
+ if isinstance(self.task_success, Unset):
223
+ task_success = UNSET
224
+ else:
225
+ task_success = self.task_success
226
+
227
+ finetune: int | None | Unset
228
+ if isinstance(self.finetune, Unset):
229
+ finetune = UNSET
230
+ else:
231
+ finetune = self.finetune
232
+
233
+ isreal: int | None | Unset
234
+ if isinstance(self.isreal, Unset):
235
+ isreal = UNSET
236
+ else:
237
+ isreal = self.isreal
238
+
239
+ lable_info: dict[str, Any] | None | Unset
240
+ if isinstance(self.lable_info, Unset):
241
+ lable_info = UNSET
242
+ elif isinstance(self.lable_info, SingleDataUpdateRequestLableInfoType0):
243
+ lable_info = self.lable_info.to_dict()
244
+ else:
245
+ lable_info = self.lable_info
246
+
247
+ scene_type: None | str | Unset
248
+ if isinstance(self.scene_type, Unset):
249
+ scene_type = UNSET
250
+ else:
251
+ scene_type = self.scene_type
252
+
253
+ scene_id: None | str | Unset
254
+ if isinstance(self.scene_id, Unset):
255
+ scene_id = UNSET
256
+ else:
257
+ scene_id = self.scene_id
258
+
259
+ total_frames: int | None | Unset
260
+ if isinstance(self.total_frames, Unset):
261
+ total_frames = UNSET
262
+ else:
263
+ total_frames = self.total_frames
264
+
265
+ duration_seconds: float | None | Unset
266
+ if isinstance(self.duration_seconds, Unset):
267
+ duration_seconds = UNSET
268
+ else:
269
+ duration_seconds = self.duration_seconds
270
+
271
+ collection_time: int | None | Unset
272
+ if isinstance(self.collection_time, Unset):
273
+ collection_time = UNSET
274
+ else:
275
+ collection_time = self.collection_time
276
+
277
+ checker_result: None | str | Unset
278
+ if isinstance(self.checker_result, Unset):
279
+ checker_result = UNSET
280
+ else:
281
+ checker_result = self.checker_result
282
+
283
+ checker_info: None | str | Unset
284
+ if isinstance(self.checker_info, Unset):
285
+ checker_info = UNSET
286
+ else:
287
+ checker_info = self.checker_info
288
+
289
+ ego_robot: None | str | Unset
290
+ if isinstance(self.ego_robot, Unset):
291
+ ego_robot = UNSET
292
+ else:
293
+ ego_robot = self.ego_robot
294
+
295
+ model: None | str | Unset
296
+ if isinstance(self.model, Unset):
297
+ model = UNSET
298
+ else:
299
+ model = self.model
300
+
301
+ raw_type: None | str | Unset
302
+ if isinstance(self.raw_type, Unset):
303
+ raw_type = UNSET
304
+ else:
305
+ raw_type = self.raw_type
306
+
307
+ raw_data_uuid: None | str | Unset
308
+ if isinstance(self.raw_data_uuid, Unset):
309
+ raw_data_uuid = UNSET
310
+ else:
311
+ raw_data_uuid = self.raw_data_uuid
312
+
313
+ field_dict: dict[str, Any] = {}
314
+ field_dict.update(self.additional_properties)
315
+ field_dict.update({})
316
+ if alias is not UNSET:
317
+ field_dict["alias"] = alias
318
+ if description is not UNSET:
319
+ field_dict["description"] = description
320
+ if label is not UNSET:
321
+ field_dict["label"] = label
322
+ if extra_info is not UNSET:
323
+ field_dict["extra_info"] = extra_info
324
+ if uploaded is not UNSET:
325
+ field_dict["uploaded"] = uploaded
326
+ if patch_id is not UNSET:
327
+ field_dict["patch_id"] = patch_id
328
+ if patch_name is not UNSET:
329
+ field_dict["patch_name"] = patch_name
330
+ if episode_id is not UNSET:
331
+ field_dict["episode_id"] = episode_id
332
+ if source_file_name is not UNSET:
333
+ field_dict["source_file_name"] = source_file_name
334
+ if operator is not UNSET:
335
+ field_dict["operator"] = operator
336
+ if reviewer is not UNSET:
337
+ field_dict["reviewer"] = reviewer
338
+ if review_status is not UNSET:
339
+ field_dict["review_status"] = review_status
340
+ if review_time is not UNSET:
341
+ field_dict["review_time"] = review_time
342
+ if review_info is not UNSET:
343
+ field_dict["review_info"] = review_info
344
+ if collection_method is not UNSET:
345
+ field_dict["collection_method"] = collection_method
346
+ if collector_type is not UNSET:
347
+ field_dict["collector_type"] = collector_type
348
+ if collector_id is not UNSET:
349
+ field_dict["collector_id"] = collector_id
350
+ if task_id is not UNSET:
351
+ field_dict["task_id"] = task_id
352
+ if task_actions is not UNSET:
353
+ field_dict["task_actions"] = task_actions
354
+ if task_description is not UNSET:
355
+ field_dict["task_description"] = task_description
356
+ if task_success is not UNSET:
357
+ field_dict["task_success"] = task_success
358
+ if finetune is not UNSET:
359
+ field_dict["finetune"] = finetune
360
+ if isreal is not UNSET:
361
+ field_dict["isreal"] = isreal
362
+ if lable_info is not UNSET:
363
+ field_dict["lable_info"] = lable_info
364
+ if scene_type is not UNSET:
365
+ field_dict["scene_type"] = scene_type
366
+ if scene_id is not UNSET:
367
+ field_dict["scene_id"] = scene_id
368
+ if total_frames is not UNSET:
369
+ field_dict["total_frames"] = total_frames
370
+ if duration_seconds is not UNSET:
371
+ field_dict["duration_seconds"] = duration_seconds
372
+ if collection_time is not UNSET:
373
+ field_dict["collection_time"] = collection_time
374
+ if checker_result is not UNSET:
375
+ field_dict["checker_result"] = checker_result
376
+ if checker_info is not UNSET:
377
+ field_dict["checker_info"] = checker_info
378
+ if ego_robot is not UNSET:
379
+ field_dict["ego_robot"] = ego_robot
380
+ if model is not UNSET:
381
+ field_dict["model"] = model
382
+ if raw_type is not UNSET:
383
+ field_dict["raw_type"] = raw_type
384
+ if raw_data_uuid is not UNSET:
385
+ field_dict["raw_data_uuid"] = raw_data_uuid
386
+
387
+ return field_dict
388
+
389
+ @classmethod
390
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
391
+ from ..models.single_data_update_request_lable_info_type_0 import (
392
+ SingleDataUpdateRequestLableInfoType0, # noqa: PLC0415
393
+ )
394
+
395
+ d = dict(src_dict)
396
+
397
+ def _parse_alias(data: object) -> None | str | Unset:
398
+ if data is None:
399
+ return data
400
+ if isinstance(data, Unset):
401
+ return data
402
+ return cast(None | str | Unset, data)
403
+
404
+ alias = _parse_alias(d.pop("alias", UNSET))
405
+
406
+ def _parse_description(data: object) -> None | str | Unset:
407
+ if data is None:
408
+ return data
409
+ if isinstance(data, Unset):
410
+ return data
411
+ return cast(None | str | Unset, data)
412
+
413
+ description = _parse_description(d.pop("description", UNSET))
414
+
415
+ def _parse_label(data: object) -> None | str | Unset:
416
+ if data is None:
417
+ return data
418
+ if isinstance(data, Unset):
419
+ return data
420
+ return cast(None | str | Unset, data)
421
+
422
+ label = _parse_label(d.pop("label", UNSET))
423
+
424
+ def _parse_extra_info(data: object) -> None | str | Unset:
425
+ if data is None:
426
+ return data
427
+ if isinstance(data, Unset):
428
+ return data
429
+ return cast(None | str | Unset, data)
430
+
431
+ extra_info = _parse_extra_info(d.pop("extra_info", UNSET))
432
+
433
+ def _parse_uploaded(data: object) -> bool | None | Unset:
434
+ if data is None:
435
+ return data
436
+ if isinstance(data, Unset):
437
+ return data
438
+ return cast(bool | None | Unset, data)
439
+
440
+ uploaded = _parse_uploaded(d.pop("uploaded", UNSET))
441
+
442
+ def _parse_patch_id(data: object) -> None | str | Unset:
443
+ if data is None:
444
+ return data
445
+ if isinstance(data, Unset):
446
+ return data
447
+ return cast(None | str | Unset, data)
448
+
449
+ patch_id = _parse_patch_id(d.pop("patch_id", UNSET))
450
+
451
+ def _parse_patch_name(data: object) -> None | str | Unset:
452
+ if data is None:
453
+ return data
454
+ if isinstance(data, Unset):
455
+ return data
456
+ return cast(None | str | Unset, data)
457
+
458
+ patch_name = _parse_patch_name(d.pop("patch_name", UNSET))
459
+
460
+ def _parse_episode_id(data: object) -> None | str | Unset:
461
+ if data is None:
462
+ return data
463
+ if isinstance(data, Unset):
464
+ return data
465
+ return cast(None | str | Unset, data)
466
+
467
+ episode_id = _parse_episode_id(d.pop("episode_id", UNSET))
468
+
469
+ def _parse_source_file_name(data: object) -> None | str | Unset:
470
+ if data is None:
471
+ return data
472
+ if isinstance(data, Unset):
473
+ return data
474
+ return cast(None | str | Unset, data)
475
+
476
+ source_file_name = _parse_source_file_name(d.pop("source_file_name", UNSET))
477
+
478
+ def _parse_operator(data: object) -> None | str | Unset:
479
+ if data is None:
480
+ return data
481
+ if isinstance(data, Unset):
482
+ return data
483
+ return cast(None | str | Unset, data)
484
+
485
+ operator = _parse_operator(d.pop("operator", UNSET))
486
+
487
+ def _parse_reviewer(data: object) -> None | str | Unset:
488
+ if data is None:
489
+ return data
490
+ if isinstance(data, Unset):
491
+ return data
492
+ return cast(None | str | Unset, data)
493
+
494
+ reviewer = _parse_reviewer(d.pop("reviewer", UNSET))
495
+
496
+ def _parse_review_status(data: object) -> None | str | Unset:
497
+ if data is None:
498
+ return data
499
+ if isinstance(data, Unset):
500
+ return data
501
+ return cast(None | str | Unset, data)
502
+
503
+ review_status = _parse_review_status(d.pop("review_status", UNSET))
504
+
505
+ def _parse_review_time(data: object) -> int | None | Unset:
506
+ if data is None:
507
+ return data
508
+ if isinstance(data, Unset):
509
+ return data
510
+ return cast(int | None | Unset, data)
511
+
512
+ review_time = _parse_review_time(d.pop("review_time", UNSET))
513
+
514
+ def _parse_review_info(data: object) -> None | str | Unset:
515
+ if data is None:
516
+ return data
517
+ if isinstance(data, Unset):
518
+ return data
519
+ return cast(None | str | Unset, data)
520
+
521
+ review_info = _parse_review_info(d.pop("review_info", UNSET))
522
+
523
+ def _parse_collection_method(data: object) -> None | str | Unset:
524
+ if data is None:
525
+ return data
526
+ if isinstance(data, Unset):
527
+ return data
528
+ return cast(None | str | Unset, data)
529
+
530
+ collection_method = _parse_collection_method(d.pop("collection_method", UNSET))
531
+
532
+ def _parse_collector_type(data: object) -> None | str | Unset:
533
+ if data is None:
534
+ return data
535
+ if isinstance(data, Unset):
536
+ return data
537
+ return cast(None | str | Unset, data)
538
+
539
+ collector_type = _parse_collector_type(d.pop("collector_type", UNSET))
540
+
541
+ def _parse_collector_id(data: object) -> None | str | Unset:
542
+ if data is None:
543
+ return data
544
+ if isinstance(data, Unset):
545
+ return data
546
+ return cast(None | str | Unset, data)
547
+
548
+ collector_id = _parse_collector_id(d.pop("collector_id", UNSET))
549
+
550
+ def _parse_task_id(data: object) -> None | str | Unset:
551
+ if data is None:
552
+ return data
553
+ if isinstance(data, Unset):
554
+ return data
555
+ return cast(None | str | Unset, data)
556
+
557
+ task_id = _parse_task_id(d.pop("task_id", UNSET))
558
+
559
+ def _parse_task_actions(data: object) -> None | str | Unset:
560
+ if data is None:
561
+ return data
562
+ if isinstance(data, Unset):
563
+ return data
564
+ return cast(None | str | Unset, data)
565
+
566
+ task_actions = _parse_task_actions(d.pop("task_actions", UNSET))
567
+
568
+ def _parse_task_description(data: object) -> None | str | Unset:
569
+ if data is None:
570
+ return data
571
+ if isinstance(data, Unset):
572
+ return data
573
+ return cast(None | str | Unset, data)
574
+
575
+ task_description = _parse_task_description(d.pop("task_description", UNSET))
576
+
577
+ def _parse_task_success(data: object) -> int | None | Unset:
578
+ if data is None:
579
+ return data
580
+ if isinstance(data, Unset):
581
+ return data
582
+ return cast(int | None | Unset, data)
583
+
584
+ task_success = _parse_task_success(d.pop("task_success", UNSET))
585
+
586
+ def _parse_finetune(data: object) -> int | None | Unset:
587
+ if data is None:
588
+ return data
589
+ if isinstance(data, Unset):
590
+ return data
591
+ return cast(int | None | Unset, data)
592
+
593
+ finetune = _parse_finetune(d.pop("finetune", UNSET))
594
+
595
+ def _parse_isreal(data: object) -> int | None | Unset:
596
+ if data is None:
597
+ return data
598
+ if isinstance(data, Unset):
599
+ return data
600
+ return cast(int | None | Unset, data)
601
+
602
+ isreal = _parse_isreal(d.pop("isreal", UNSET))
603
+
604
+ def _parse_lable_info(data: object) -> None | SingleDataUpdateRequestLableInfoType0 | Unset:
605
+ if data is None:
606
+ return data
607
+ if isinstance(data, Unset):
608
+ return data
609
+ try:
610
+ if not isinstance(data, dict):
611
+ raise TypeError()
612
+ lable_info_type_0 = SingleDataUpdateRequestLableInfoType0.from_dict(data)
613
+
614
+ return lable_info_type_0
615
+ except (TypeError, ValueError, AttributeError, KeyError):
616
+ pass
617
+ return cast(None | SingleDataUpdateRequestLableInfoType0 | Unset, data)
618
+
619
+ lable_info = _parse_lable_info(d.pop("lable_info", UNSET))
620
+
621
+ def _parse_scene_type(data: object) -> None | str | Unset:
622
+ if data is None:
623
+ return data
624
+ if isinstance(data, Unset):
625
+ return data
626
+ return cast(None | str | Unset, data)
627
+
628
+ scene_type = _parse_scene_type(d.pop("scene_type", UNSET))
629
+
630
+ def _parse_scene_id(data: object) -> None | str | Unset:
631
+ if data is None:
632
+ return data
633
+ if isinstance(data, Unset):
634
+ return data
635
+ return cast(None | str | Unset, data)
636
+
637
+ scene_id = _parse_scene_id(d.pop("scene_id", UNSET))
638
+
639
+ def _parse_total_frames(data: object) -> int | None | Unset:
640
+ if data is None:
641
+ return data
642
+ if isinstance(data, Unset):
643
+ return data
644
+ return cast(int | None | Unset, data)
645
+
646
+ total_frames = _parse_total_frames(d.pop("total_frames", UNSET))
647
+
648
+ def _parse_duration_seconds(data: object) -> float | None | Unset:
649
+ if data is None:
650
+ return data
651
+ if isinstance(data, Unset):
652
+ return data
653
+ return cast(float | None | Unset, data)
654
+
655
+ duration_seconds = _parse_duration_seconds(d.pop("duration_seconds", UNSET))
656
+
657
+ def _parse_collection_time(data: object) -> int | None | Unset:
658
+ if data is None:
659
+ return data
660
+ if isinstance(data, Unset):
661
+ return data
662
+ return cast(int | None | Unset, data)
663
+
664
+ collection_time = _parse_collection_time(d.pop("collection_time", UNSET))
665
+
666
+ def _parse_checker_result(data: object) -> None | str | Unset:
667
+ if data is None:
668
+ return data
669
+ if isinstance(data, Unset):
670
+ return data
671
+ return cast(None | str | Unset, data)
672
+
673
+ checker_result = _parse_checker_result(d.pop("checker_result", UNSET))
674
+
675
+ def _parse_checker_info(data: object) -> None | str | Unset:
676
+ if data is None:
677
+ return data
678
+ if isinstance(data, Unset):
679
+ return data
680
+ return cast(None | str | Unset, data)
681
+
682
+ checker_info = _parse_checker_info(d.pop("checker_info", UNSET))
683
+
684
+ def _parse_ego_robot(data: object) -> None | str | Unset:
685
+ if data is None:
686
+ return data
687
+ if isinstance(data, Unset):
688
+ return data
689
+ return cast(None | str | Unset, data)
690
+
691
+ ego_robot = _parse_ego_robot(d.pop("ego_robot", UNSET))
692
+
693
+ def _parse_model(data: object) -> None | str | Unset:
694
+ if data is None:
695
+ return data
696
+ if isinstance(data, Unset):
697
+ return data
698
+ return cast(None | str | Unset, data)
699
+
700
+ model = _parse_model(d.pop("model", UNSET))
701
+
702
+ def _parse_raw_type(data: object) -> None | str | Unset:
703
+ if data is None:
704
+ return data
705
+ if isinstance(data, Unset):
706
+ return data
707
+ return cast(None | str | Unset, data)
708
+
709
+ raw_type = _parse_raw_type(d.pop("raw_type", UNSET))
710
+
711
+ def _parse_raw_data_uuid(data: object) -> None | str | Unset:
712
+ if data is None:
713
+ return data
714
+ if isinstance(data, Unset):
715
+ return data
716
+ return cast(None | str | Unset, data)
717
+
718
+ raw_data_uuid = _parse_raw_data_uuid(d.pop("raw_data_uuid", UNSET))
719
+
720
+ single_data_update_request = cls(
721
+ alias=alias,
722
+ description=description,
723
+ label=label,
724
+ extra_info=extra_info,
725
+ uploaded=uploaded,
726
+ patch_id=patch_id,
727
+ patch_name=patch_name,
728
+ episode_id=episode_id,
729
+ source_file_name=source_file_name,
730
+ operator=operator,
731
+ reviewer=reviewer,
732
+ review_status=review_status,
733
+ review_time=review_time,
734
+ review_info=review_info,
735
+ collection_method=collection_method,
736
+ collector_type=collector_type,
737
+ collector_id=collector_id,
738
+ task_id=task_id,
739
+ task_actions=task_actions,
740
+ task_description=task_description,
741
+ task_success=task_success,
742
+ finetune=finetune,
743
+ isreal=isreal,
744
+ lable_info=lable_info,
745
+ scene_type=scene_type,
746
+ scene_id=scene_id,
747
+ total_frames=total_frames,
748
+ duration_seconds=duration_seconds,
749
+ collection_time=collection_time,
750
+ checker_result=checker_result,
751
+ checker_info=checker_info,
752
+ ego_robot=ego_robot,
753
+ model=model,
754
+ raw_type=raw_type,
755
+ raw_data_uuid=raw_data_uuid,
756
+ )
757
+
758
+ single_data_update_request.additional_properties = d
759
+ return single_data_update_request
760
+
761
+ @property
762
+ def additional_keys(self) -> list[str]:
763
+ return list(self.additional_properties.keys())
764
+
765
+ def __getitem__(self, key: str) -> Any:
766
+ return self.additional_properties[key]
767
+
768
+ def __setitem__(self, key: str, value: Any) -> None:
769
+ self.additional_properties[key] = value
770
+
771
+ def __delitem__(self, key: str) -> None:
772
+ del self.additional_properties[key]
773
+
774
+ def __contains__(self, key: str) -> bool:
775
+ return key in self.additional_properties