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,243 @@
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.run_create_request_configs import RunCreateRequestConfigs
13
+
14
+
15
+ T = TypeVar("T", bound="RunCreateRequest")
16
+
17
+
18
+ @_attrs_define
19
+ class RunCreateRequest:
20
+ """
21
+ Attributes:
22
+ creator (str): 创建人
23
+ project_name (str): 项目名
24
+ run_name (str): 任务名
25
+ train_arc (str): 模型架构: Gr00t N1.6/Fii_FALCON_0/FII_FALCON_SMT
26
+ configs (RunCreateRequestConfigs): Run configurations
27
+ description (None | str | Unset): 任务描述
28
+ label (None | str | Unset): 标签
29
+ robot_type (None | str | Unset): 机器人类型: fii_w2/actibot/umi
30
+ check_points_path (list[str] | None | Unset): check_points 文件地址
31
+ check_points_onnx_path (list[str] | None | Unset): onnx/edge checkpoint 文件地址
32
+ extra_info (None | str | Unset): 额外信息
33
+ """
34
+
35
+ creator: str
36
+ project_name: str
37
+ run_name: str
38
+ train_arc: str
39
+ configs: RunCreateRequestConfigs
40
+ description: None | str | Unset = UNSET
41
+ label: None | str | Unset = UNSET
42
+ robot_type: None | str | Unset = UNSET
43
+ check_points_path: list[str] | None | Unset = UNSET
44
+ check_points_onnx_path: list[str] | None | Unset = UNSET
45
+ extra_info: None | str | Unset = UNSET
46
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
47
+
48
+ def to_dict(self) -> dict[str, Any]:
49
+ creator = self.creator
50
+
51
+ project_name = self.project_name
52
+
53
+ run_name = self.run_name
54
+
55
+ train_arc = self.train_arc
56
+
57
+ configs = self.configs.to_dict()
58
+
59
+ description: None | str | Unset
60
+ if isinstance(self.description, Unset):
61
+ description = UNSET
62
+ else:
63
+ description = self.description
64
+
65
+ label: None | str | Unset
66
+ if isinstance(self.label, Unset):
67
+ label = UNSET
68
+ else:
69
+ label = self.label
70
+
71
+ robot_type: None | str | Unset
72
+ if isinstance(self.robot_type, Unset):
73
+ robot_type = UNSET
74
+ else:
75
+ robot_type = self.robot_type
76
+
77
+ check_points_path: list[str] | None | Unset
78
+ if isinstance(self.check_points_path, Unset):
79
+ check_points_path = UNSET
80
+ elif isinstance(self.check_points_path, list):
81
+ check_points_path = self.check_points_path
82
+
83
+ else:
84
+ check_points_path = self.check_points_path
85
+
86
+ check_points_onnx_path: list[str] | None | Unset
87
+ if isinstance(self.check_points_onnx_path, Unset):
88
+ check_points_onnx_path = UNSET
89
+ elif isinstance(self.check_points_onnx_path, list):
90
+ check_points_onnx_path = self.check_points_onnx_path
91
+
92
+ else:
93
+ check_points_onnx_path = self.check_points_onnx_path
94
+
95
+ extra_info: None | str | Unset
96
+ if isinstance(self.extra_info, Unset):
97
+ extra_info = UNSET
98
+ else:
99
+ extra_info = self.extra_info
100
+
101
+ field_dict: dict[str, Any] = {}
102
+ field_dict.update(self.additional_properties)
103
+ field_dict.update(
104
+ {
105
+ "creator": creator,
106
+ "project_name": project_name,
107
+ "run_name": run_name,
108
+ "train_arc": train_arc,
109
+ "configs": configs,
110
+ }
111
+ )
112
+ if description is not UNSET:
113
+ field_dict["description"] = description
114
+ if label is not UNSET:
115
+ field_dict["label"] = label
116
+ if robot_type is not UNSET:
117
+ field_dict["robot_type"] = robot_type
118
+ if check_points_path is not UNSET:
119
+ field_dict["check_points_path"] = check_points_path
120
+ if check_points_onnx_path is not UNSET:
121
+ field_dict["check_points_onnx_path"] = check_points_onnx_path
122
+ if extra_info is not UNSET:
123
+ field_dict["extra_info"] = extra_info
124
+
125
+ return field_dict
126
+
127
+ @classmethod
128
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
129
+ from ..models.run_create_request_configs import RunCreateRequestConfigs # noqa: PLC0415
130
+
131
+ d = dict(src_dict)
132
+ creator = d.pop("creator")
133
+
134
+ project_name = d.pop("project_name")
135
+
136
+ run_name = d.pop("run_name")
137
+
138
+ train_arc = d.pop("train_arc")
139
+
140
+ configs = RunCreateRequestConfigs.from_dict(d.pop("configs"))
141
+
142
+ def _parse_description(data: object) -> None | str | Unset:
143
+ if data is None:
144
+ return data
145
+ if isinstance(data, Unset):
146
+ return data
147
+ return cast(None | str | Unset, data)
148
+
149
+ description = _parse_description(d.pop("description", UNSET))
150
+
151
+ def _parse_label(data: object) -> None | str | Unset:
152
+ if data is None:
153
+ return data
154
+ if isinstance(data, Unset):
155
+ return data
156
+ return cast(None | str | Unset, data)
157
+
158
+ label = _parse_label(d.pop("label", UNSET))
159
+
160
+ def _parse_robot_type(data: object) -> None | str | Unset:
161
+ if data is None:
162
+ return data
163
+ if isinstance(data, Unset):
164
+ return data
165
+ return cast(None | str | Unset, data)
166
+
167
+ robot_type = _parse_robot_type(d.pop("robot_type", UNSET))
168
+
169
+ def _parse_check_points_path(data: object) -> list[str] | None | Unset:
170
+ if data is None:
171
+ return data
172
+ if isinstance(data, Unset):
173
+ return data
174
+ try:
175
+ if not isinstance(data, list):
176
+ raise TypeError()
177
+ check_points_path_type_0 = cast(list[str], data)
178
+
179
+ return check_points_path_type_0
180
+ except (TypeError, ValueError, AttributeError, KeyError):
181
+ pass
182
+ return cast(list[str] | None | Unset, data)
183
+
184
+ check_points_path = _parse_check_points_path(d.pop("check_points_path", UNSET))
185
+
186
+ def _parse_check_points_onnx_path(data: object) -> list[str] | None | Unset:
187
+ if data is None:
188
+ return data
189
+ if isinstance(data, Unset):
190
+ return data
191
+ try:
192
+ if not isinstance(data, list):
193
+ raise TypeError()
194
+ check_points_onnx_path_type_0 = cast(list[str], data)
195
+
196
+ return check_points_onnx_path_type_0
197
+ except (TypeError, ValueError, AttributeError, KeyError):
198
+ pass
199
+ return cast(list[str] | None | Unset, data)
200
+
201
+ check_points_onnx_path = _parse_check_points_onnx_path(d.pop("check_points_onnx_path", UNSET))
202
+
203
+ def _parse_extra_info(data: object) -> None | str | Unset:
204
+ if data is None:
205
+ return data
206
+ if isinstance(data, Unset):
207
+ return data
208
+ return cast(None | str | Unset, data)
209
+
210
+ extra_info = _parse_extra_info(d.pop("extra_info", UNSET))
211
+
212
+ run_create_request = cls(
213
+ creator=creator,
214
+ project_name=project_name,
215
+ run_name=run_name,
216
+ train_arc=train_arc,
217
+ configs=configs,
218
+ description=description,
219
+ label=label,
220
+ robot_type=robot_type,
221
+ check_points_path=check_points_path,
222
+ check_points_onnx_path=check_points_onnx_path,
223
+ extra_info=extra_info,
224
+ )
225
+
226
+ run_create_request.additional_properties = d
227
+ return run_create_request
228
+
229
+ @property
230
+ def additional_keys(self) -> list[str]:
231
+ return list(self.additional_properties.keys())
232
+
233
+ def __getitem__(self, key: str) -> Any:
234
+ return self.additional_properties[key]
235
+
236
+ def __setitem__(self, key: str, value: Any) -> None:
237
+ self.additional_properties[key] = value
238
+
239
+ def __delitem__(self, key: str) -> None:
240
+ del self.additional_properties[key]
241
+
242
+ def __contains__(self, key: str) -> bool:
243
+ return key in self.additional_properties
@@ -0,0 +1,47 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ T = TypeVar("T", bound="RunCreateRequestConfigs")
10
+
11
+
12
+ @_attrs_define
13
+ class RunCreateRequestConfigs:
14
+ """Run configurations"""
15
+
16
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
17
+
18
+ def to_dict(self) -> dict[str, Any]:
19
+
20
+ field_dict: dict[str, Any] = {}
21
+ field_dict.update(self.additional_properties)
22
+
23
+ return field_dict
24
+
25
+ @classmethod
26
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
27
+ d = dict(src_dict)
28
+ run_create_request_configs = cls()
29
+
30
+ run_create_request_configs.additional_properties = d
31
+ return run_create_request_configs
32
+
33
+ @property
34
+ def additional_keys(self) -> list[str]:
35
+ return list(self.additional_properties.keys())
36
+
37
+ def __getitem__(self, key: str) -> Any:
38
+ return self.additional_properties[key]
39
+
40
+ def __setitem__(self, key: str, value: Any) -> None:
41
+ self.additional_properties[key] = value
42
+
43
+ def __delitem__(self, key: str) -> None:
44
+ del self.additional_properties[key]
45
+
46
+ def __contains__(self, key: str) -> bool:
47
+ return key in self.additional_properties