everyrow 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 (183) hide show
  1. everyrow/__init__.py +4 -0
  2. everyrow/api_utils.py +45 -0
  3. everyrow/citations.py +46 -0
  4. everyrow/constants.py +4 -0
  5. everyrow/generated/__init__.py +8 -0
  6. everyrow/generated/api/__init__.py +1 -0
  7. everyrow/generated/api/default/__init__.py +1 -0
  8. everyrow/generated/api/default/continue_task_endpoint_tasks_continue_post.py +208 -0
  9. everyrow/generated/api/default/copy_artifacts_artifacts_copy_post.py +166 -0
  10. everyrow/generated/api/default/copy_workflow_endpoint_workflows_copy_post.py +166 -0
  11. everyrow/generated/api/default/create_api_key_endpoint_api_keys_create_post.py +186 -0
  12. everyrow/generated/api/default/create_session_endpoint_sessions_create_post.py +198 -0
  13. everyrow/generated/api/default/create_workflow_from_artifact_workflows_from_artifact_post.py +174 -0
  14. everyrow/generated/api/default/export_to_google_sheets_export_post.py +168 -0
  15. everyrow/generated/api/default/generate_feedback_endpoint_tasks_generate_feedback_post.py +186 -0
  16. everyrow/generated/api/default/get_artifacts_artifacts_get.py +260 -0
  17. everyrow/generated/api/default/get_default_timeout_seconds_models_default_timeout_seconds_get.py +165 -0
  18. everyrow/generated/api/default/get_job_progress_for_task_jobs_progress_get.py +167 -0
  19. everyrow/generated/api/default/get_metrics_metrics_get.py +80 -0
  20. everyrow/generated/api/default/get_queues_stats_jobs_queues_get.py +123 -0
  21. everyrow/generated/api/default/get_task_status_endpoint_tasks_task_id_status_get.py +193 -0
  22. everyrow/generated/api/default/get_user_usage_usage_get.py +123 -0
  23. everyrow/generated/api/default/healthz_healthz_get.py +127 -0
  24. everyrow/generated/api/default/import_from_google_sheets_import_post.py +170 -0
  25. everyrow/generated/api/default/interrupt_chat_task_tasks_chat_interrupt_post.py +172 -0
  26. everyrow/generated/api/default/list_api_keys_endpoint_api_keys_get.py +186 -0
  27. everyrow/generated/api/default/re_execute_task_endpoint_tasks_re_execute_post.py +192 -0
  28. everyrow/generated/api/default/revoke_api_key_endpoint_api_keys_key_id_revoke_post.py +181 -0
  29. everyrow/generated/api/default/revoke_jobs_for_task_jobs_revoke_post.py +164 -0
  30. everyrow/generated/api/default/rollback_to_message_endpoint_tasks_chat_rollback_post.py +186 -0
  31. everyrow/generated/api/default/submit_chat_task_tasks_chat_post.py +164 -0
  32. everyrow/generated/api/default/submit_task_tasks_post.py +172 -0
  33. everyrow/generated/api/default/task_resource_estimation_task_resource_estimation_post.py +319 -0
  34. everyrow/generated/api/default/trigger_workflow_execution_endpoint_workflows_trigger_post.py +166 -0
  35. everyrow/generated/api/default/whoami_whoami_get.py +127 -0
  36. everyrow/generated/client.py +268 -0
  37. everyrow/generated/errors.py +16 -0
  38. everyrow/generated/models/__init__.py +281 -0
  39. everyrow/generated/models/agent_improvement_instruction.py +69 -0
  40. everyrow/generated/models/agent_query_params.py +362 -0
  41. everyrow/generated/models/agent_query_params_system_prompt_kind_type_0.py +10 -0
  42. everyrow/generated/models/agent_task_args.py +163 -0
  43. everyrow/generated/models/agent_task_args_processing_mode.py +9 -0
  44. everyrow/generated/models/allowed_suggestions.py +8 -0
  45. everyrow/generated/models/api_key_info.py +163 -0
  46. everyrow/generated/models/artifact_changed_payload.py +89 -0
  47. everyrow/generated/models/artifact_group_record.py +330 -0
  48. everyrow/generated/models/artifact_group_record_metadata_type_0.py +46 -0
  49. everyrow/generated/models/artifact_group_record_trace_mapping_type_0.py +46 -0
  50. everyrow/generated/models/artifact_status.py +14 -0
  51. everyrow/generated/models/auto_cohort_conversation_message.py +533 -0
  52. everyrow/generated/models/aux_data.py +128 -0
  53. everyrow/generated/models/aux_data_source_bank.py +59 -0
  54. everyrow/generated/models/chat_completion_message_tool_call.py +46 -0
  55. everyrow/generated/models/chat_message_metadata.py +193 -0
  56. everyrow/generated/models/concatenate_query_params.py +46 -0
  57. everyrow/generated/models/concatenate_request.py +306 -0
  58. everyrow/generated/models/continue_reason.py +9 -0
  59. everyrow/generated/models/continue_task_request.py +133 -0
  60. everyrow/generated/models/controller_improvement_round.py +79 -0
  61. everyrow/generated/models/conversation_changed_payload.py +89 -0
  62. everyrow/generated/models/copy_artifacts_request.py +70 -0
  63. everyrow/generated/models/copy_artifacts_response.py +70 -0
  64. everyrow/generated/models/copy_workflow_request.py +62 -0
  65. everyrow/generated/models/copy_workflow_response.py +70 -0
  66. everyrow/generated/models/create_api_key_request.py +95 -0
  67. everyrow/generated/models/create_api_key_response.py +96 -0
  68. everyrow/generated/models/create_group_query_params.py +61 -0
  69. everyrow/generated/models/create_group_request.py +305 -0
  70. everyrow/generated/models/create_query_params.py +61 -0
  71. everyrow/generated/models/create_request.py +305 -0
  72. everyrow/generated/models/create_session_request.py +62 -0
  73. everyrow/generated/models/create_session_response.py +63 -0
  74. everyrow/generated/models/create_workflow_from_artifact_request.py +92 -0
  75. everyrow/generated/models/create_workflow_from_artifact_response.py +70 -0
  76. everyrow/generated/models/data_frame_method.py +18 -0
  77. everyrow/generated/models/date_cutoffs.py +145 -0
  78. everyrow/generated/models/dedupe_mode.py +9 -0
  79. everyrow/generated/models/dedupe_query_params.py +174 -0
  80. everyrow/generated/models/dedupe_request_params.py +311 -0
  81. everyrow/generated/models/deep_merge_public_params.py +143 -0
  82. everyrow/generated/models/deep_merge_request.py +313 -0
  83. everyrow/generated/models/deep_rank_public_params.py +99 -0
  84. everyrow/generated/models/deep_rank_request.py +313 -0
  85. everyrow/generated/models/deep_screen_public_params.py +122 -0
  86. everyrow/generated/models/deep_screen_request.py +313 -0
  87. everyrow/generated/models/derive_expression.py +69 -0
  88. everyrow/generated/models/derive_query_params.py +75 -0
  89. everyrow/generated/models/derive_request.py +307 -0
  90. everyrow/generated/models/document_query_tool.py +12 -0
  91. everyrow/generated/models/drop_columns_query_params.py +61 -0
  92. everyrow/generated/models/drop_columns_request.py +305 -0
  93. everyrow/generated/models/embedding_models.py +9 -0
  94. everyrow/generated/models/event_type.py +14 -0
  95. everyrow/generated/models/execution_metadata.py +146 -0
  96. everyrow/generated/models/export_request.py +75 -0
  97. everyrow/generated/models/export_request_token_data.py +46 -0
  98. everyrow/generated/models/export_to_google_sheets_export_post_response_export_to_google_sheets_export_post.py +46 -0
  99. everyrow/generated/models/filter_query_params.py +91 -0
  100. everyrow/generated/models/filter_request.py +305 -0
  101. everyrow/generated/models/flatten_query_params.py +46 -0
  102. everyrow/generated/models/flatten_request.py +305 -0
  103. everyrow/generated/models/generate_feedback_request.py +62 -0
  104. everyrow/generated/models/group_by_query_params.py +62 -0
  105. everyrow/generated/models/group_by_request.py +305 -0
  106. everyrow/generated/models/healthz_healthz_get_response_healthz_healthz_get.py +46 -0
  107. everyrow/generated/models/http_validation_error.py +79 -0
  108. everyrow/generated/models/image_chat_content_part.py +80 -0
  109. everyrow/generated/models/image_chat_content_part_image_url.py +46 -0
  110. everyrow/generated/models/import_from_google_sheets_import_post_response_import_from_google_sheets_import_post.py +46 -0
  111. everyrow/generated/models/import_request.py +83 -0
  112. everyrow/generated/models/import_request_token_data.py +46 -0
  113. everyrow/generated/models/insufficient_balance_error.py +81 -0
  114. everyrow/generated/models/join_query_params.py +73 -0
  115. everyrow/generated/models/join_request.py +305 -0
  116. everyrow/generated/models/llm_enum.py +54 -0
  117. everyrow/generated/models/map_agent_request_params.py +313 -0
  118. everyrow/generated/models/map_multi_agent_request_params.py +313 -0
  119. everyrow/generated/models/message_created_payload.py +98 -0
  120. everyrow/generated/models/multi_agent_effort_level.py +10 -0
  121. everyrow/generated/models/multi_agent_query_params.py +264 -0
  122. everyrow/generated/models/multi_modal_chat_message.py +160 -0
  123. everyrow/generated/models/multi_modal_chat_message_role.py +10 -0
  124. everyrow/generated/models/preview_metadata.py +144 -0
  125. everyrow/generated/models/processing_mode.py +10 -0
  126. everyrow/generated/models/progress_status.py +83 -0
  127. everyrow/generated/models/queue_stats.py +77 -0
  128. everyrow/generated/models/reduce_agent_request_params.py +305 -0
  129. everyrow/generated/models/reduce_multi_agent_request_params.py +305 -0
  130. everyrow/generated/models/resource_estimation_response.py +85 -0
  131. everyrow/generated/models/response_schema_type.py +9 -0
  132. everyrow/generated/models/revoke_api_key_response.py +61 -0
  133. everyrow/generated/models/rollback_to_message_request.py +62 -0
  134. everyrow/generated/models/rollback_to_message_response.py +77 -0
  135. everyrow/generated/models/session_changed_payload.py +69 -0
  136. everyrow/generated/models/simple_chat_message.py +121 -0
  137. everyrow/generated/models/simple_chat_message_role.py +10 -0
  138. everyrow/generated/models/simple_chat_message_with_tool_calls.py +156 -0
  139. everyrow/generated/models/source_database_entry.py +92 -0
  140. everyrow/generated/models/standalone_artifact_record.py +278 -0
  141. everyrow/generated/models/standalone_artifact_record_metadata_type_0.py +46 -0
  142. everyrow/generated/models/standalone_artifact_record_trace_mapping_type_0.py +46 -0
  143. everyrow/generated/models/status_count.py +71 -0
  144. everyrow/generated/models/status_count_status.py +13 -0
  145. everyrow/generated/models/submit_chat_task_body.py +497 -0
  146. everyrow/generated/models/submit_chat_task_body_selected_task_type_type_0.py +11 -0
  147. everyrow/generated/models/submit_task_body.py +745 -0
  148. everyrow/generated/models/task_changed_payload.py +105 -0
  149. everyrow/generated/models/task_effort.py +10 -0
  150. everyrow/generated/models/task_id_request.py +62 -0
  151. everyrow/generated/models/task_insert.py +725 -0
  152. everyrow/generated/models/task_insert_query_params.py +46 -0
  153. everyrow/generated/models/task_metadata.py +323 -0
  154. everyrow/generated/models/task_metadata_cols_to_rename_type_0.py +46 -0
  155. everyrow/generated/models/task_response.py +62 -0
  156. everyrow/generated/models/task_status.py +12 -0
  157. everyrow/generated/models/task_status_response.py +112 -0
  158. everyrow/generated/models/task_type.py +31 -0
  159. everyrow/generated/models/text_chat_content_part.py +74 -0
  160. everyrow/generated/models/tool_response_message.py +127 -0
  161. everyrow/generated/models/toolkit_constants.py +80 -0
  162. everyrow/generated/models/trace_changed_payload.py +94 -0
  163. everyrow/generated/models/trace_info.py +78 -0
  164. everyrow/generated/models/trigger_workflow_execution_request.py +112 -0
  165. everyrow/generated/models/trigger_workflow_execution_request_task_params.py +65 -0
  166. everyrow/generated/models/trigger_workflow_execution_request_task_params_additional_property.py +46 -0
  167. everyrow/generated/models/trigger_workflow_execution_response.py +69 -0
  168. everyrow/generated/models/upload_csv_payload.py +310 -0
  169. everyrow/generated/models/upload_csv_query_params.py +114 -0
  170. everyrow/generated/models/usage_response.py +77 -0
  171. everyrow/generated/models/validation_error.py +90 -0
  172. everyrow/generated/models/whoami_whoami_get_response_whoami_whoami_get.py +46 -0
  173. everyrow/generated/models/workflow_leaf_node_input.py +70 -0
  174. everyrow/generated/py.typed +1 -0
  175. everyrow/generated/types.py +54 -0
  176. everyrow/ops.py +672 -0
  177. everyrow/result.py +25 -0
  178. everyrow/session.py +53 -0
  179. everyrow/task.py +143 -0
  180. everyrow-0.1.0.dist-info/METADATA +238 -0
  181. everyrow-0.1.0.dist-info/RECORD +183 -0
  182. everyrow-0.1.0.dist-info/WHEEL +4 -0
  183. everyrow-0.1.0.dist-info/licenses/LICENSE.txt +21 -0
@@ -0,0 +1,96 @@
1
+ from __future__ import annotations
2
+
3
+ import datetime
4
+ from collections.abc import Mapping
5
+ from typing import Any, TypeVar
6
+ from uuid import UUID
7
+
8
+ from attrs import define as _attrs_define
9
+ from attrs import field as _attrs_field
10
+ from dateutil.parser import isoparse
11
+
12
+ T = TypeVar("T", bound="CreateAPIKeyResponse")
13
+
14
+
15
+ @_attrs_define
16
+ class CreateAPIKeyResponse:
17
+ """
18
+ Attributes:
19
+ id (UUID):
20
+ key (str):
21
+ name (str):
22
+ key_prefix (str):
23
+ created_at (datetime.datetime):
24
+ """
25
+
26
+ id: UUID
27
+ key: str
28
+ name: str
29
+ key_prefix: str
30
+ created_at: datetime.datetime
31
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
32
+
33
+ def to_dict(self) -> dict[str, Any]:
34
+ id = str(self.id)
35
+
36
+ key = self.key
37
+
38
+ name = self.name
39
+
40
+ key_prefix = self.key_prefix
41
+
42
+ created_at = self.created_at.isoformat()
43
+
44
+ field_dict: dict[str, Any] = {}
45
+ field_dict.update(self.additional_properties)
46
+ field_dict.update(
47
+ {
48
+ "id": id,
49
+ "key": key,
50
+ "name": name,
51
+ "key_prefix": key_prefix,
52
+ "created_at": created_at,
53
+ }
54
+ )
55
+
56
+ return field_dict
57
+
58
+ @classmethod
59
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
60
+ d = dict(src_dict)
61
+ id = UUID(d.pop("id"))
62
+
63
+ key = d.pop("key")
64
+
65
+ name = d.pop("name")
66
+
67
+ key_prefix = d.pop("key_prefix")
68
+
69
+ created_at = isoparse(d.pop("created_at"))
70
+
71
+ create_api_key_response = cls(
72
+ id=id,
73
+ key=key,
74
+ name=name,
75
+ key_prefix=key_prefix,
76
+ created_at=created_at,
77
+ )
78
+
79
+ create_api_key_response.additional_properties = d
80
+ return create_api_key_response
81
+
82
+ @property
83
+ def additional_keys(self) -> list[str]:
84
+ return list(self.additional_properties.keys())
85
+
86
+ def __getitem__(self, key: str) -> Any:
87
+ return self.additional_properties[key]
88
+
89
+ def __setitem__(self, key: str, value: Any) -> None:
90
+ self.additional_properties[key] = value
91
+
92
+ def __delitem__(self, key: str) -> None:
93
+ del self.additional_properties[key]
94
+
95
+ def __contains__(self, key: str) -> bool:
96
+ return key in self.additional_properties
@@ -0,0 +1,61 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar, cast
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ T = TypeVar("T", bound="CreateGroupQueryParams")
10
+
11
+
12
+ @_attrs_define
13
+ class CreateGroupQueryParams:
14
+ """
15
+ Attributes:
16
+ data_to_create (list[Any]):
17
+ """
18
+
19
+ data_to_create: list[Any]
20
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
21
+
22
+ def to_dict(self) -> dict[str, Any]:
23
+ data_to_create = self.data_to_create
24
+
25
+ field_dict: dict[str, Any] = {}
26
+ field_dict.update(self.additional_properties)
27
+ field_dict.update(
28
+ {
29
+ "data_to_create": data_to_create,
30
+ }
31
+ )
32
+
33
+ return field_dict
34
+
35
+ @classmethod
36
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
37
+ d = dict(src_dict)
38
+ data_to_create = cast(list[Any], d.pop("data_to_create"))
39
+
40
+ create_group_query_params = cls(
41
+ data_to_create=data_to_create,
42
+ )
43
+
44
+ create_group_query_params.additional_properties = d
45
+ return create_group_query_params
46
+
47
+ @property
48
+ def additional_keys(self) -> list[str]:
49
+ return list(self.additional_properties.keys())
50
+
51
+ def __getitem__(self, key: str) -> Any:
52
+ return self.additional_properties[key]
53
+
54
+ def __setitem__(self, key: str, value: Any) -> None:
55
+ self.additional_properties[key] = value
56
+
57
+ def __delitem__(self, key: str) -> None:
58
+ del self.additional_properties[key]
59
+
60
+ def __contains__(self, key: str) -> bool:
61
+ return key in self.additional_properties
@@ -0,0 +1,305 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import TYPE_CHECKING, Any, Literal, TypeVar, cast
5
+ from uuid import UUID
6
+
7
+ from attrs import define as _attrs_define
8
+ from attrs import field as _attrs_field
9
+
10
+ from ..types import UNSET, Unset
11
+
12
+ if TYPE_CHECKING:
13
+ from ..models.create_group_query_params import CreateGroupQueryParams
14
+
15
+
16
+ T = TypeVar("T", bound="CreateGroupRequest")
17
+
18
+
19
+ @_attrs_define
20
+ class CreateGroupRequest:
21
+ """Request to create a group artifact from a list of data items.
22
+
23
+ Attributes:
24
+ query (CreateGroupQueryParams):
25
+ input_artifacts (list[UUID] | None | Unset):
26
+ context_artifacts (list[UUID] | None | Unset):
27
+ label (None | str | Unset): Short task label for use in the UI
28
+ description (None | str | Unset): Task description for use in the UI
29
+ task_id (None | Unset | UUID):
30
+ replaces_task_id (None | Unset | UUID): The ID of the task that this task replaces. Used e.g. by the full
31
+ version of a task that replaces a preview version.
32
+ twin_artifact_id (None | Unset | UUID): The ID of a reference artifact, e.g. the right table in Deep Merge
33
+ operation.
34
+ task_type (Literal['create_group'] | Unset): Default: 'create_group'.
35
+ processing_mode (Literal['transform'] | Unset): Default: 'transform'.
36
+ """
37
+
38
+ query: CreateGroupQueryParams
39
+ input_artifacts: list[UUID] | None | Unset = UNSET
40
+ context_artifacts: list[UUID] | None | Unset = UNSET
41
+ label: None | str | Unset = UNSET
42
+ description: None | str | Unset = UNSET
43
+ task_id: None | Unset | UUID = UNSET
44
+ replaces_task_id: None | Unset | UUID = UNSET
45
+ twin_artifact_id: None | Unset | UUID = UNSET
46
+ task_type: Literal["create_group"] | Unset = "create_group"
47
+ processing_mode: Literal["transform"] | Unset = "transform"
48
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
49
+
50
+ def to_dict(self) -> dict[str, Any]:
51
+ query = self.query.to_dict()
52
+
53
+ input_artifacts: list[str] | None | Unset
54
+ if isinstance(self.input_artifacts, Unset):
55
+ input_artifacts = UNSET
56
+ elif isinstance(self.input_artifacts, list):
57
+ input_artifacts = []
58
+ for componentsschemas_input_artifacts_ids_item_data in self.input_artifacts:
59
+ componentsschemas_input_artifacts_ids_item = str(componentsschemas_input_artifacts_ids_item_data)
60
+ input_artifacts.append(componentsschemas_input_artifacts_ids_item)
61
+
62
+ else:
63
+ input_artifacts = self.input_artifacts
64
+
65
+ context_artifacts: list[str] | None | Unset
66
+ if isinstance(self.context_artifacts, Unset):
67
+ context_artifacts = UNSET
68
+ elif isinstance(self.context_artifacts, list):
69
+ context_artifacts = []
70
+ for componentsschemas_context_artifacts_ids_item_data in self.context_artifacts:
71
+ componentsschemas_context_artifacts_ids_item = str(componentsschemas_context_artifacts_ids_item_data)
72
+ context_artifacts.append(componentsschemas_context_artifacts_ids_item)
73
+
74
+ else:
75
+ context_artifacts = self.context_artifacts
76
+
77
+ label: None | str | Unset
78
+ if isinstance(self.label, Unset):
79
+ label = UNSET
80
+ else:
81
+ label = self.label
82
+
83
+ description: None | str | Unset
84
+ if isinstance(self.description, Unset):
85
+ description = UNSET
86
+ else:
87
+ description = self.description
88
+
89
+ task_id: None | str | Unset
90
+ if isinstance(self.task_id, Unset):
91
+ task_id = UNSET
92
+ elif isinstance(self.task_id, UUID):
93
+ task_id = str(self.task_id)
94
+ else:
95
+ task_id = self.task_id
96
+
97
+ replaces_task_id: None | str | Unset
98
+ if isinstance(self.replaces_task_id, Unset):
99
+ replaces_task_id = UNSET
100
+ elif isinstance(self.replaces_task_id, UUID):
101
+ replaces_task_id = str(self.replaces_task_id)
102
+ else:
103
+ replaces_task_id = self.replaces_task_id
104
+
105
+ twin_artifact_id: None | str | Unset
106
+ if isinstance(self.twin_artifact_id, Unset):
107
+ twin_artifact_id = UNSET
108
+ elif isinstance(self.twin_artifact_id, UUID):
109
+ twin_artifact_id = str(self.twin_artifact_id)
110
+ else:
111
+ twin_artifact_id = self.twin_artifact_id
112
+
113
+ task_type = self.task_type
114
+
115
+ processing_mode = self.processing_mode
116
+
117
+ field_dict: dict[str, Any] = {}
118
+ field_dict.update(self.additional_properties)
119
+ field_dict.update(
120
+ {
121
+ "query": query,
122
+ }
123
+ )
124
+ if input_artifacts is not UNSET:
125
+ field_dict["input_artifacts"] = input_artifacts
126
+ if context_artifacts is not UNSET:
127
+ field_dict["context_artifacts"] = context_artifacts
128
+ if label is not UNSET:
129
+ field_dict["label"] = label
130
+ if description is not UNSET:
131
+ field_dict["description"] = description
132
+ if task_id is not UNSET:
133
+ field_dict["task_id"] = task_id
134
+ if replaces_task_id is not UNSET:
135
+ field_dict["replaces_task_id"] = replaces_task_id
136
+ if twin_artifact_id is not UNSET:
137
+ field_dict["twin_artifact_id"] = twin_artifact_id
138
+ if task_type is not UNSET:
139
+ field_dict["task_type"] = task_type
140
+ if processing_mode is not UNSET:
141
+ field_dict["processing_mode"] = processing_mode
142
+
143
+ return field_dict
144
+
145
+ @classmethod
146
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
147
+ from ..models.create_group_query_params import CreateGroupQueryParams
148
+
149
+ d = dict(src_dict)
150
+ query = CreateGroupQueryParams.from_dict(d.pop("query"))
151
+
152
+ def _parse_input_artifacts(data: object) -> list[UUID] | None | Unset:
153
+ if data is None:
154
+ return data
155
+ if isinstance(data, Unset):
156
+ return data
157
+ try:
158
+ if not isinstance(data, list):
159
+ raise TypeError()
160
+ input_artifacts_type_0 = []
161
+ _input_artifacts_type_0 = data
162
+ for componentsschemas_input_artifacts_ids_item_data in _input_artifacts_type_0:
163
+ componentsschemas_input_artifacts_ids_item = UUID(componentsschemas_input_artifacts_ids_item_data)
164
+
165
+ input_artifacts_type_0.append(componentsschemas_input_artifacts_ids_item)
166
+
167
+ return input_artifacts_type_0
168
+ except (TypeError, ValueError, AttributeError, KeyError):
169
+ pass
170
+ return cast(list[UUID] | None | Unset, data)
171
+
172
+ input_artifacts = _parse_input_artifacts(d.pop("input_artifacts", UNSET))
173
+
174
+ def _parse_context_artifacts(data: object) -> list[UUID] | None | Unset:
175
+ if data is None:
176
+ return data
177
+ if isinstance(data, Unset):
178
+ return data
179
+ try:
180
+ if not isinstance(data, list):
181
+ raise TypeError()
182
+ context_artifacts_type_0 = []
183
+ _context_artifacts_type_0 = data
184
+ for componentsschemas_context_artifacts_ids_item_data in _context_artifacts_type_0:
185
+ componentsschemas_context_artifacts_ids_item = UUID(
186
+ componentsschemas_context_artifacts_ids_item_data
187
+ )
188
+
189
+ context_artifacts_type_0.append(componentsschemas_context_artifacts_ids_item)
190
+
191
+ return context_artifacts_type_0
192
+ except (TypeError, ValueError, AttributeError, KeyError):
193
+ pass
194
+ return cast(list[UUID] | None | Unset, data)
195
+
196
+ context_artifacts = _parse_context_artifacts(d.pop("context_artifacts", UNSET))
197
+
198
+ def _parse_label(data: object) -> None | str | Unset:
199
+ if data is None:
200
+ return data
201
+ if isinstance(data, Unset):
202
+ return data
203
+ return cast(None | str | Unset, data)
204
+
205
+ label = _parse_label(d.pop("label", UNSET))
206
+
207
+ def _parse_description(data: object) -> None | str | Unset:
208
+ if data is None:
209
+ return data
210
+ if isinstance(data, Unset):
211
+ return data
212
+ return cast(None | str | Unset, data)
213
+
214
+ description = _parse_description(d.pop("description", UNSET))
215
+
216
+ def _parse_task_id(data: object) -> None | Unset | UUID:
217
+ if data is None:
218
+ return data
219
+ if isinstance(data, Unset):
220
+ return data
221
+ try:
222
+ if not isinstance(data, str):
223
+ raise TypeError()
224
+ task_id_type_0 = UUID(data)
225
+
226
+ return task_id_type_0
227
+ except (TypeError, ValueError, AttributeError, KeyError):
228
+ pass
229
+ return cast(None | Unset | UUID, data)
230
+
231
+ task_id = _parse_task_id(d.pop("task_id", UNSET))
232
+
233
+ def _parse_replaces_task_id(data: object) -> None | Unset | UUID:
234
+ if data is None:
235
+ return data
236
+ if isinstance(data, Unset):
237
+ return data
238
+ try:
239
+ if not isinstance(data, str):
240
+ raise TypeError()
241
+ replaces_task_id_type_0 = UUID(data)
242
+
243
+ return replaces_task_id_type_0
244
+ except (TypeError, ValueError, AttributeError, KeyError):
245
+ pass
246
+ return cast(None | Unset | UUID, data)
247
+
248
+ replaces_task_id = _parse_replaces_task_id(d.pop("replaces_task_id", UNSET))
249
+
250
+ def _parse_twin_artifact_id(data: object) -> None | Unset | UUID:
251
+ if data is None:
252
+ return data
253
+ if isinstance(data, Unset):
254
+ return data
255
+ try:
256
+ if not isinstance(data, str):
257
+ raise TypeError()
258
+ twin_artifact_id_type_0 = UUID(data)
259
+
260
+ return twin_artifact_id_type_0
261
+ except (TypeError, ValueError, AttributeError, KeyError):
262
+ pass
263
+ return cast(None | Unset | UUID, data)
264
+
265
+ twin_artifact_id = _parse_twin_artifact_id(d.pop("twin_artifact_id", UNSET))
266
+
267
+ task_type = cast(Literal["create_group"] | Unset, d.pop("task_type", UNSET))
268
+ if task_type != "create_group" and not isinstance(task_type, Unset):
269
+ raise ValueError(f"task_type must match const 'create_group', got '{task_type}'")
270
+
271
+ processing_mode = cast(Literal["transform"] | Unset, d.pop("processing_mode", UNSET))
272
+ if processing_mode != "transform" and not isinstance(processing_mode, Unset):
273
+ raise ValueError(f"processing_mode must match const 'transform', got '{processing_mode}'")
274
+
275
+ create_group_request = cls(
276
+ query=query,
277
+ input_artifacts=input_artifacts,
278
+ context_artifacts=context_artifacts,
279
+ label=label,
280
+ description=description,
281
+ task_id=task_id,
282
+ replaces_task_id=replaces_task_id,
283
+ twin_artifact_id=twin_artifact_id,
284
+ task_type=task_type,
285
+ processing_mode=processing_mode,
286
+ )
287
+
288
+ create_group_request.additional_properties = d
289
+ return create_group_request
290
+
291
+ @property
292
+ def additional_keys(self) -> list[str]:
293
+ return list(self.additional_properties.keys())
294
+
295
+ def __getitem__(self, key: str) -> Any:
296
+ return self.additional_properties[key]
297
+
298
+ def __setitem__(self, key: str, value: Any) -> None:
299
+ self.additional_properties[key] = value
300
+
301
+ def __delitem__(self, key: str) -> None:
302
+ del self.additional_properties[key]
303
+
304
+ def __contains__(self, key: str) -> bool:
305
+ return key in self.additional_properties
@@ -0,0 +1,61 @@
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="CreateQueryParams")
10
+
11
+
12
+ @_attrs_define
13
+ class CreateQueryParams:
14
+ """
15
+ Attributes:
16
+ data_to_create (Any):
17
+ """
18
+
19
+ data_to_create: Any
20
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
21
+
22
+ def to_dict(self) -> dict[str, Any]:
23
+ data_to_create = self.data_to_create
24
+
25
+ field_dict: dict[str, Any] = {}
26
+ field_dict.update(self.additional_properties)
27
+ field_dict.update(
28
+ {
29
+ "data_to_create": data_to_create,
30
+ }
31
+ )
32
+
33
+ return field_dict
34
+
35
+ @classmethod
36
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
37
+ d = dict(src_dict)
38
+ data_to_create = d.pop("data_to_create")
39
+
40
+ create_query_params = cls(
41
+ data_to_create=data_to_create,
42
+ )
43
+
44
+ create_query_params.additional_properties = d
45
+ return create_query_params
46
+
47
+ @property
48
+ def additional_keys(self) -> list[str]:
49
+ return list(self.additional_properties.keys())
50
+
51
+ def __getitem__(self, key: str) -> Any:
52
+ return self.additional_properties[key]
53
+
54
+ def __setitem__(self, key: str, value: Any) -> None:
55
+ self.additional_properties[key] = value
56
+
57
+ def __delitem__(self, key: str) -> None:
58
+ del self.additional_properties[key]
59
+
60
+ def __contains__(self, key: str) -> bool:
61
+ return key in self.additional_properties