everyrow 0.1.10__py3-none-any.whl → 0.2.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 (207) hide show
  1. everyrow/__init__.py +8 -1
  2. everyrow/api_utils.py +5 -1
  3. everyrow/billing.py +29 -0
  4. everyrow/constants.py +1 -1
  5. everyrow/generated/__init__.py +1 -1
  6. everyrow/generated/api/{default/interrupt_chat_task_tasks_chat_interrupt_post.py → artifacts/create_artifact_artifacts_post.py} +38 -32
  7. everyrow/generated/api/billing/__init__.py +1 -0
  8. everyrow/generated/api/{default/get_queues_stats_jobs_queues_get.py → billing/get_billing_balance_billing_get.py} +25 -17
  9. everyrow/generated/api/operations/__init__.py +1 -0
  10. everyrow/generated/api/{default/re_execute_task_endpoint_tasks_re_execute_post.py → operations/agent_map_operations_agent_map_post.py} +53 -41
  11. everyrow/generated/api/{default/create_workflow_from_artifact_workflows_from_artifact_post.py → operations/dedupe_operations_dedupe_post.py} +39 -33
  12. everyrow/generated/api/{default/submit_task_tasks_post.py → operations/merge_operations_merge_post.py} +37 -29
  13. everyrow/generated/api/{default/copy_workflow_endpoint_workflows_copy_post.py → operations/rank_operations_rank_post.py} +43 -29
  14. everyrow/generated/api/{default/export_to_google_sheets_export_post.py → operations/screen_operations_screen_post.py} +43 -31
  15. everyrow/generated/api/operations/single_agent_operations_single_agent_post.py +236 -0
  16. everyrow/generated/api/sessions/__init__.py +1 -0
  17. everyrow/generated/api/{default/copy_artifacts_artifacts_copy_post.py → sessions/create_session_endpoint_sessions_post.py} +35 -27
  18. everyrow/generated/api/tasks/__init__.py +1 -0
  19. everyrow/generated/api/{default/get_job_progress_for_task_jobs_progress_get.py → tasks/get_task_result_tasks_task_id_result_get.py} +45 -33
  20. everyrow/generated/api/{default/get_task_status_endpoint_tasks_task_id_status_get.py → tasks/get_task_status_tasks_task_id_status_get.py} +24 -42
  21. everyrow/generated/models/__init__.py +82 -266
  22. everyrow/generated/models/agent_map_operation.py +315 -0
  23. everyrow/generated/models/{artifact_group_record_metadata_type_0.py → agent_map_operation_input_type_1_item.py} +5 -5
  24. everyrow/generated/models/agent_map_operation_input_type_2.py +46 -0
  25. everyrow/generated/models/{standalone_artifact_record_analysis_type_0.py → agent_map_operation_response_schema_type_0.py} +5 -5
  26. everyrow/generated/models/{create_query_params.py → billing_response.py} +13 -12
  27. everyrow/generated/models/{continue_task_request.py → create_artifact_request.py} +43 -43
  28. everyrow/generated/models/create_artifact_request_data_type_0_item.py +46 -0
  29. everyrow/generated/models/{task_metadata_cols_to_rename_type_0.py → create_artifact_request_data_type_1.py} +5 -5
  30. everyrow/generated/models/{copy_artifacts_response.py → create_artifact_response.py} +12 -12
  31. everyrow/generated/models/{create_session_request.py → create_session.py} +6 -7
  32. everyrow/generated/models/dedupe_operation.py +151 -0
  33. everyrow/generated/models/dedupe_operation_input_type_1_item.py +46 -0
  34. everyrow/generated/models/{import_request_token_data.py → dedupe_operation_input_type_2.py} +5 -5
  35. everyrow/generated/models/error_response.py +109 -0
  36. everyrow/generated/models/{task_insert_query_params.py → error_response_details_type_0.py} +5 -5
  37. everyrow/generated/models/insufficient_balance_error.py +8 -0
  38. everyrow/generated/models/{llm_enum.py → llm_enum_public.py} +1 -20
  39. everyrow/generated/models/merge_operation.py +278 -0
  40. everyrow/generated/models/merge_operation_left_input_type_1_item.py +46 -0
  41. everyrow/generated/models/{chat_completion_message_tool_call.py → merge_operation_left_input_type_2.py} +5 -5
  42. everyrow/generated/models/merge_operation_right_input_type_1_item.py +46 -0
  43. everyrow/generated/models/merge_operation_right_input_type_2.py +46 -0
  44. everyrow/generated/models/merge_operation_use_web_search_type_0.py +10 -0
  45. everyrow/generated/models/operation_response.py +131 -0
  46. everyrow/generated/models/{multi_agent_effort_level.py → public_effort_level.py} +1 -1
  47. everyrow/generated/models/public_task_type.py +12 -0
  48. everyrow/generated/models/rank_operation.py +203 -0
  49. everyrow/generated/models/rank_operation_input_type_1_item.py +46 -0
  50. everyrow/generated/models/{export_request_token_data.py → rank_operation_input_type_2.py} +5 -5
  51. everyrow/generated/models/{artifact_group_record_analysis_type_0.py → rank_operation_response_schema_type_0.py} +5 -5
  52. everyrow/generated/models/screen_operation.py +186 -0
  53. everyrow/generated/models/screen_operation_input_type_1_item.py +46 -0
  54. everyrow/generated/models/screen_operation_input_type_2.py +46 -0
  55. everyrow/generated/models/screen_operation_response_schema_type_0.py +46 -0
  56. everyrow/generated/models/{create_session_response.py → session_response.py} +7 -8
  57. everyrow/generated/models/single_agent_operation.py +304 -0
  58. everyrow/generated/models/single_agent_operation_input_type_1_item.py +46 -0
  59. everyrow/generated/models/single_agent_operation_input_type_2.py +46 -0
  60. everyrow/generated/models/single_agent_operation_response_schema_type_0.py +46 -0
  61. everyrow/generated/models/task_result_response.py +185 -0
  62. everyrow/generated/models/task_result_response_data_type_0_item.py +46 -0
  63. everyrow/generated/models/task_result_response_data_type_1.py +46 -0
  64. everyrow/generated/models/task_status_response.py +99 -19
  65. everyrow/ops.py +360 -434
  66. everyrow/session.py +5 -7
  67. everyrow/task.py +68 -115
  68. {everyrow-0.1.10.dist-info → everyrow-0.2.0.dist-info}/METADATA +22 -8
  69. everyrow-0.2.0.dist-info/RECORD +81 -0
  70. everyrow/citations.py +0 -50
  71. everyrow/generated/api/default/continue_task_endpoint_tasks_continue_post.py +0 -208
  72. everyrow/generated/api/default/create_api_key_endpoint_api_keys_create_post.py +0 -186
  73. everyrow/generated/api/default/create_session_endpoint_sessions_create_post.py +0 -198
  74. everyrow/generated/api/default/generate_feedback_endpoint_tasks_generate_feedback_post.py +0 -186
  75. everyrow/generated/api/default/get_artifacts_artifacts_get.py +0 -260
  76. everyrow/generated/api/default/get_default_timeout_seconds_models_default_timeout_seconds_get.py +0 -165
  77. everyrow/generated/api/default/get_metrics_metrics_get.py +0 -80
  78. everyrow/generated/api/default/get_user_usage_usage_get.py +0 -123
  79. everyrow/generated/api/default/healthz_healthz_get.py +0 -127
  80. everyrow/generated/api/default/import_from_google_sheets_import_post.py +0 -170
  81. everyrow/generated/api/default/list_api_keys_endpoint_api_keys_get.py +0 -186
  82. everyrow/generated/api/default/revoke_api_key_endpoint_api_keys_key_id_revoke_post.py +0 -181
  83. everyrow/generated/api/default/revoke_jobs_for_task_jobs_revoke_post.py +0 -164
  84. everyrow/generated/api/default/rollback_to_message_endpoint_tasks_chat_rollback_post.py +0 -186
  85. everyrow/generated/api/default/submit_chat_task_tasks_chat_post.py +0 -164
  86. everyrow/generated/api/default/task_resource_estimation_task_resource_estimation_post.py +0 -319
  87. everyrow/generated/api/default/trigger_workflow_execution_endpoint_workflows_trigger_post.py +0 -166
  88. everyrow/generated/api/default/whoami_whoami_get.py +0 -127
  89. everyrow/generated/models/agent_improvement_instruction.py +0 -69
  90. everyrow/generated/models/agent_query_params.py +0 -383
  91. everyrow/generated/models/agent_query_params_system_prompt_kind_type_0.py +0 -10
  92. everyrow/generated/models/agent_task_args.py +0 -163
  93. everyrow/generated/models/agent_task_args_processing_mode.py +0 -9
  94. everyrow/generated/models/allowed_suggestions.py +0 -9
  95. everyrow/generated/models/api_key_info.py +0 -163
  96. everyrow/generated/models/artifact_changed_payload.py +0 -89
  97. everyrow/generated/models/artifact_group_record.py +0 -363
  98. everyrow/generated/models/artifact_group_record_trace_mapping_type_0.py +0 -46
  99. everyrow/generated/models/artifact_status.py +0 -14
  100. everyrow/generated/models/auto_cohort_conversation_message.py +0 -533
  101. everyrow/generated/models/aux_data.py +0 -128
  102. everyrow/generated/models/aux_data_source_bank.py +0 -59
  103. everyrow/generated/models/chat_message_metadata.py +0 -193
  104. everyrow/generated/models/concatenate_query_params.py +0 -46
  105. everyrow/generated/models/concatenate_request.py +0 -306
  106. everyrow/generated/models/continue_reason.py +0 -9
  107. everyrow/generated/models/controller_improvement_round.py +0 -79
  108. everyrow/generated/models/conversation_changed_payload.py +0 -89
  109. everyrow/generated/models/copy_artifacts_request.py +0 -70
  110. everyrow/generated/models/copy_workflow_request.py +0 -62
  111. everyrow/generated/models/copy_workflow_response.py +0 -70
  112. everyrow/generated/models/create_api_key_request.py +0 -95
  113. everyrow/generated/models/create_api_key_response.py +0 -96
  114. everyrow/generated/models/create_group_query_params.py +0 -61
  115. everyrow/generated/models/create_group_request.py +0 -305
  116. everyrow/generated/models/create_request.py +0 -305
  117. everyrow/generated/models/create_workflow_from_artifact_request.py +0 -92
  118. everyrow/generated/models/create_workflow_from_artifact_response.py +0 -70
  119. everyrow/generated/models/data_frame_method.py +0 -18
  120. everyrow/generated/models/date_cutoffs.py +0 -145
  121. everyrow/generated/models/dedupe_public_params.py +0 -64
  122. everyrow/generated/models/dedupe_request_params.py +0 -311
  123. everyrow/generated/models/deep_merge_public_params.py +0 -143
  124. everyrow/generated/models/deep_merge_request.py +0 -313
  125. everyrow/generated/models/deep_rank_public_params.py +0 -109
  126. everyrow/generated/models/deep_rank_request.py +0 -313
  127. everyrow/generated/models/deep_screen_public_params.py +0 -132
  128. everyrow/generated/models/deep_screen_request.py +0 -313
  129. everyrow/generated/models/derive_expression.py +0 -69
  130. everyrow/generated/models/derive_query_params.py +0 -75
  131. everyrow/generated/models/derive_request.py +0 -307
  132. everyrow/generated/models/document_query_tool.py +0 -12
  133. everyrow/generated/models/drop_columns_query_params.py +0 -61
  134. everyrow/generated/models/drop_columns_request.py +0 -305
  135. everyrow/generated/models/event_type.py +0 -14
  136. everyrow/generated/models/execution_metadata.py +0 -146
  137. everyrow/generated/models/export_request.py +0 -75
  138. everyrow/generated/models/export_to_google_sheets_export_post_response_export_to_google_sheets_export_post.py +0 -46
  139. everyrow/generated/models/filter_query_params.py +0 -91
  140. everyrow/generated/models/filter_request.py +0 -305
  141. everyrow/generated/models/flatten_query_params.py +0 -46
  142. everyrow/generated/models/flatten_request.py +0 -305
  143. everyrow/generated/models/generate_feedback_request.py +0 -62
  144. everyrow/generated/models/group_by_query_params.py +0 -62
  145. everyrow/generated/models/group_by_request.py +0 -305
  146. everyrow/generated/models/healthz_healthz_get_response_healthz_healthz_get.py +0 -46
  147. everyrow/generated/models/image_chat_content_part.py +0 -80
  148. everyrow/generated/models/image_chat_content_part_image_url.py +0 -46
  149. everyrow/generated/models/import_from_google_sheets_import_post_response_import_from_google_sheets_import_post.py +0 -46
  150. everyrow/generated/models/import_request.py +0 -83
  151. everyrow/generated/models/join_query_params.py +0 -73
  152. everyrow/generated/models/join_request.py +0 -305
  153. everyrow/generated/models/map_agent_request_params.py +0 -313
  154. everyrow/generated/models/map_multi_agent_request_params.py +0 -313
  155. everyrow/generated/models/message_created_payload.py +0 -98
  156. everyrow/generated/models/multi_agent_query_params.py +0 -264
  157. everyrow/generated/models/multi_modal_chat_message.py +0 -160
  158. everyrow/generated/models/multi_modal_chat_message_role.py +0 -10
  159. everyrow/generated/models/preview_metadata.py +0 -144
  160. everyrow/generated/models/processing_mode.py +0 -10
  161. everyrow/generated/models/progress_status.py +0 -83
  162. everyrow/generated/models/queue_stats.py +0 -77
  163. everyrow/generated/models/reduce_agent_request_params.py +0 -305
  164. everyrow/generated/models/reduce_multi_agent_request_params.py +0 -305
  165. everyrow/generated/models/resource_estimation_response.py +0 -85
  166. everyrow/generated/models/response_schema_type.py +0 -9
  167. everyrow/generated/models/revoke_api_key_response.py +0 -61
  168. everyrow/generated/models/rollback_to_message_request.py +0 -62
  169. everyrow/generated/models/rollback_to_message_response.py +0 -77
  170. everyrow/generated/models/session_changed_payload.py +0 -69
  171. everyrow/generated/models/simple_chat_message.py +0 -121
  172. everyrow/generated/models/simple_chat_message_role.py +0 -10
  173. everyrow/generated/models/simple_chat_message_with_tool_calls.py +0 -156
  174. everyrow/generated/models/source_database_entry.py +0 -92
  175. everyrow/generated/models/standalone_artifact_record.py +0 -311
  176. everyrow/generated/models/standalone_artifact_record_metadata_type_0.py +0 -46
  177. everyrow/generated/models/standalone_artifact_record_trace_mapping_type_0.py +0 -46
  178. everyrow/generated/models/status_count.py +0 -71
  179. everyrow/generated/models/status_count_status.py +0 -13
  180. everyrow/generated/models/submit_chat_task_body.py +0 -497
  181. everyrow/generated/models/submit_chat_task_body_selected_task_type_type_0.py +0 -11
  182. everyrow/generated/models/submit_task_body.py +0 -745
  183. everyrow/generated/models/task_changed_payload.py +0 -105
  184. everyrow/generated/models/task_effort.py +0 -10
  185. everyrow/generated/models/task_id_request.py +0 -62
  186. everyrow/generated/models/task_insert.py +0 -725
  187. everyrow/generated/models/task_metadata.py +0 -323
  188. everyrow/generated/models/task_response.py +0 -62
  189. everyrow/generated/models/task_type.py +0 -31
  190. everyrow/generated/models/text_chat_content_part.py +0 -74
  191. everyrow/generated/models/tool_response_message.py +0 -127
  192. everyrow/generated/models/toolkit_constants.py +0 -80
  193. everyrow/generated/models/trace_changed_payload.py +0 -94
  194. everyrow/generated/models/trace_info.py +0 -78
  195. everyrow/generated/models/trigger_workflow_execution_request.py +0 -112
  196. everyrow/generated/models/trigger_workflow_execution_request_task_params.py +0 -65
  197. everyrow/generated/models/trigger_workflow_execution_request_task_params_additional_property.py +0 -46
  198. everyrow/generated/models/trigger_workflow_execution_response.py +0 -69
  199. everyrow/generated/models/upload_csv_payload.py +0 -310
  200. everyrow/generated/models/upload_csv_query_params.py +0 -114
  201. everyrow/generated/models/usage_response.py +0 -77
  202. everyrow/generated/models/whoami_whoami_get_response_whoami_whoami_get.py +0 -46
  203. everyrow/generated/models/workflow_leaf_node_input.py +0 -70
  204. everyrow-0.1.10.dist-info/RECORD +0 -183
  205. /everyrow/generated/api/{default → artifacts}/__init__.py +0 -0
  206. {everyrow-0.1.10.dist-info → everyrow-0.2.0.dist-info}/WHEEL +0 -0
  207. {everyrow-0.1.10.dist-info → everyrow-0.2.0.dist-info}/licenses/LICENSE.txt +0 -0
@@ -6,11 +6,11 @@ from typing import Any, TypeVar
6
6
  from attrs import define as _attrs_define
7
7
  from attrs import field as _attrs_field
8
8
 
9
- T = TypeVar("T", bound="TaskMetadataColsToRenameType0")
9
+ T = TypeVar("T", bound="CreateArtifactRequestDataType1")
10
10
 
11
11
 
12
12
  @_attrs_define
13
- class TaskMetadataColsToRenameType0:
13
+ class CreateArtifactRequestDataType1:
14
14
  """ """
15
15
 
16
16
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
@@ -24,10 +24,10 @@ class TaskMetadataColsToRenameType0:
24
24
  @classmethod
25
25
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
26
26
  d = dict(src_dict)
27
- task_metadata_cols_to_rename_type_0 = cls()
27
+ create_artifact_request_data_type_1 = cls()
28
28
 
29
- task_metadata_cols_to_rename_type_0.additional_properties = d
30
- return task_metadata_cols_to_rename_type_0
29
+ create_artifact_request_data_type_1.additional_properties = d
30
+ return create_artifact_request_data_type_1
31
31
 
32
32
  @property
33
33
  def additional_keys(self) -> list[str]:
@@ -7,32 +7,32 @@ from uuid import UUID
7
7
  from attrs import define as _attrs_define
8
8
  from attrs import field as _attrs_field
9
9
 
10
- T = TypeVar("T", bound="CopyArtifactsResponse")
10
+ T = TypeVar("T", bound="CreateArtifactResponse")
11
11
 
12
12
 
13
13
  @_attrs_define
14
- class CopyArtifactsResponse:
14
+ class CreateArtifactResponse:
15
15
  """
16
16
  Attributes:
17
- artifact_id (UUID):
18
- task_id (UUID):
17
+ artifact_id (UUID): The ID of the created artifact
18
+ session_id (UUID): The session ID (auto-created if not provided)
19
19
  """
20
20
 
21
21
  artifact_id: UUID
22
- task_id: UUID
22
+ session_id: UUID
23
23
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
24
24
 
25
25
  def to_dict(self) -> dict[str, Any]:
26
26
  artifact_id = str(self.artifact_id)
27
27
 
28
- task_id = str(self.task_id)
28
+ session_id = str(self.session_id)
29
29
 
30
30
  field_dict: dict[str, Any] = {}
31
31
  field_dict.update(self.additional_properties)
32
32
  field_dict.update(
33
33
  {
34
34
  "artifact_id": artifact_id,
35
- "task_id": task_id,
35
+ "session_id": session_id,
36
36
  }
37
37
  )
38
38
 
@@ -43,15 +43,15 @@ class CopyArtifactsResponse:
43
43
  d = dict(src_dict)
44
44
  artifact_id = UUID(d.pop("artifact_id"))
45
45
 
46
- task_id = UUID(d.pop("task_id"))
46
+ session_id = UUID(d.pop("session_id"))
47
47
 
48
- copy_artifacts_response = cls(
48
+ create_artifact_response = cls(
49
49
  artifact_id=artifact_id,
50
- task_id=task_id,
50
+ session_id=session_id,
51
51
  )
52
52
 
53
- copy_artifacts_response.additional_properties = d
54
- return copy_artifacts_response
53
+ create_artifact_response.additional_properties = d
54
+ return create_artifact_response
55
55
 
56
56
  @property
57
57
  def additional_keys(self) -> list[str]:
@@ -6,13 +6,12 @@ from typing import Any, TypeVar
6
6
  from attrs import define as _attrs_define
7
7
  from attrs import field as _attrs_field
8
8
 
9
- T = TypeVar("T", bound="CreateSessionRequest")
9
+ T = TypeVar("T", bound="CreateSession")
10
10
 
11
11
 
12
12
  @_attrs_define
13
- class CreateSessionRequest:
14
- """Request to create a new session.
15
-
13
+ class CreateSession:
14
+ """
16
15
  Attributes:
17
16
  name (str): Name of the session
18
17
  """
@@ -38,12 +37,12 @@ class CreateSessionRequest:
38
37
  d = dict(src_dict)
39
38
  name = d.pop("name")
40
39
 
41
- create_session_request = cls(
40
+ create_session = cls(
42
41
  name=name,
43
42
  )
44
43
 
45
- create_session_request.additional_properties = d
46
- return create_session_request
44
+ create_session.additional_properties = d
45
+ return create_session
47
46
 
48
47
  @property
49
48
  def additional_keys(self) -> list[str]:
@@ -0,0 +1,151 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import TYPE_CHECKING, Any, 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.dedupe_operation_input_type_1_item import DedupeOperationInputType1Item
14
+ from ..models.dedupe_operation_input_type_2 import DedupeOperationInputType2
15
+
16
+
17
+ T = TypeVar("T", bound="DedupeOperation")
18
+
19
+
20
+ @_attrs_define
21
+ class DedupeOperation:
22
+ """
23
+ Attributes:
24
+ input_ (DedupeOperationInputType2 | list[DedupeOperationInputType1Item] | UUID): The input data as a) the ID of
25
+ an existing artifact, b) a single record in the form of a JSON object, or c) a table of records in the form of a
26
+ list of JSON objects
27
+ equivalence_relation (str): Description of what makes two rows equivalent/duplicates
28
+ session_id (None | Unset | UUID): Session ID. If not provided, a new session is auto-created for this task.
29
+ """
30
+
31
+ input_: DedupeOperationInputType2 | list[DedupeOperationInputType1Item] | UUID
32
+ equivalence_relation: str
33
+ session_id: None | Unset | UUID = UNSET
34
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
35
+
36
+ def to_dict(self) -> dict[str, Any]:
37
+ input_: dict[str, Any] | list[dict[str, Any]] | str
38
+ if isinstance(self.input_, UUID):
39
+ input_ = str(self.input_)
40
+ elif isinstance(self.input_, list):
41
+ input_ = []
42
+ for input_type_1_item_data in self.input_:
43
+ input_type_1_item = input_type_1_item_data.to_dict()
44
+ input_.append(input_type_1_item)
45
+
46
+ else:
47
+ input_ = self.input_.to_dict()
48
+
49
+ equivalence_relation = self.equivalence_relation
50
+
51
+ session_id: None | str | Unset
52
+ if isinstance(self.session_id, Unset):
53
+ session_id = UNSET
54
+ elif isinstance(self.session_id, UUID):
55
+ session_id = str(self.session_id)
56
+ else:
57
+ session_id = self.session_id
58
+
59
+ field_dict: dict[str, Any] = {}
60
+ field_dict.update(self.additional_properties)
61
+ field_dict.update(
62
+ {
63
+ "input": input_,
64
+ "equivalence_relation": equivalence_relation,
65
+ }
66
+ )
67
+ if session_id is not UNSET:
68
+ field_dict["session_id"] = session_id
69
+
70
+ return field_dict
71
+
72
+ @classmethod
73
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
74
+ from ..models.dedupe_operation_input_type_1_item import DedupeOperationInputType1Item
75
+ from ..models.dedupe_operation_input_type_2 import DedupeOperationInputType2
76
+
77
+ d = dict(src_dict)
78
+
79
+ def _parse_input_(data: object) -> DedupeOperationInputType2 | list[DedupeOperationInputType1Item] | UUID:
80
+ try:
81
+ if not isinstance(data, str):
82
+ raise TypeError()
83
+ input_type_0 = UUID(data)
84
+
85
+ return input_type_0
86
+ except (TypeError, ValueError, AttributeError, KeyError):
87
+ pass
88
+ try:
89
+ if not isinstance(data, list):
90
+ raise TypeError()
91
+ input_type_1 = []
92
+ _input_type_1 = data
93
+ for input_type_1_item_data in _input_type_1:
94
+ input_type_1_item = DedupeOperationInputType1Item.from_dict(input_type_1_item_data)
95
+
96
+ input_type_1.append(input_type_1_item)
97
+
98
+ return input_type_1
99
+ except (TypeError, ValueError, AttributeError, KeyError):
100
+ pass
101
+ if not isinstance(data, dict):
102
+ raise TypeError()
103
+ input_type_2 = DedupeOperationInputType2.from_dict(data)
104
+
105
+ return input_type_2
106
+
107
+ input_ = _parse_input_(d.pop("input"))
108
+
109
+ equivalence_relation = d.pop("equivalence_relation")
110
+
111
+ def _parse_session_id(data: object) -> None | Unset | UUID:
112
+ if data is None:
113
+ return data
114
+ if isinstance(data, Unset):
115
+ return data
116
+ try:
117
+ if not isinstance(data, str):
118
+ raise TypeError()
119
+ session_id_type_0 = UUID(data)
120
+
121
+ return session_id_type_0
122
+ except (TypeError, ValueError, AttributeError, KeyError):
123
+ pass
124
+ return cast(None | Unset | UUID, data)
125
+
126
+ session_id = _parse_session_id(d.pop("session_id", UNSET))
127
+
128
+ dedupe_operation = cls(
129
+ input_=input_,
130
+ equivalence_relation=equivalence_relation,
131
+ session_id=session_id,
132
+ )
133
+
134
+ dedupe_operation.additional_properties = d
135
+ return dedupe_operation
136
+
137
+ @property
138
+ def additional_keys(self) -> list[str]:
139
+ return list(self.additional_properties.keys())
140
+
141
+ def __getitem__(self, key: str) -> Any:
142
+ return self.additional_properties[key]
143
+
144
+ def __setitem__(self, key: str, value: Any) -> None:
145
+ self.additional_properties[key] = value
146
+
147
+ def __delitem__(self, key: str) -> None:
148
+ del self.additional_properties[key]
149
+
150
+ def __contains__(self, key: str) -> bool:
151
+ return key in self.additional_properties
@@ -0,0 +1,46 @@
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="DedupeOperationInputType1Item")
10
+
11
+
12
+ @_attrs_define
13
+ class DedupeOperationInputType1Item:
14
+ """ """
15
+
16
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
17
+
18
+ def to_dict(self) -> dict[str, Any]:
19
+ field_dict: dict[str, Any] = {}
20
+ field_dict.update(self.additional_properties)
21
+
22
+ return field_dict
23
+
24
+ @classmethod
25
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
26
+ d = dict(src_dict)
27
+ dedupe_operation_input_type_1_item = cls()
28
+
29
+ dedupe_operation_input_type_1_item.additional_properties = d
30
+ return dedupe_operation_input_type_1_item
31
+
32
+ @property
33
+ def additional_keys(self) -> list[str]:
34
+ return list(self.additional_properties.keys())
35
+
36
+ def __getitem__(self, key: str) -> Any:
37
+ return self.additional_properties[key]
38
+
39
+ def __setitem__(self, key: str, value: Any) -> None:
40
+ self.additional_properties[key] = value
41
+
42
+ def __delitem__(self, key: str) -> None:
43
+ del self.additional_properties[key]
44
+
45
+ def __contains__(self, key: str) -> bool:
46
+ return key in self.additional_properties
@@ -6,11 +6,11 @@ from typing import Any, TypeVar
6
6
  from attrs import define as _attrs_define
7
7
  from attrs import field as _attrs_field
8
8
 
9
- T = TypeVar("T", bound="ImportRequestTokenData")
9
+ T = TypeVar("T", bound="DedupeOperationInputType2")
10
10
 
11
11
 
12
12
  @_attrs_define
13
- class ImportRequestTokenData:
13
+ class DedupeOperationInputType2:
14
14
  """ """
15
15
 
16
16
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
@@ -24,10 +24,10 @@ class ImportRequestTokenData:
24
24
  @classmethod
25
25
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
26
26
  d = dict(src_dict)
27
- import_request_token_data = cls()
27
+ dedupe_operation_input_type_2 = cls()
28
28
 
29
- import_request_token_data.additional_properties = d
30
- return import_request_token_data
29
+ dedupe_operation_input_type_2.additional_properties = d
30
+ return dedupe_operation_input_type_2
31
31
 
32
32
  @property
33
33
  def additional_keys(self) -> list[str]:
@@ -0,0 +1,109 @@
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.error_response_details_type_0 import ErrorResponseDetailsType0
13
+
14
+
15
+ T = TypeVar("T", bound="ErrorResponse")
16
+
17
+
18
+ @_attrs_define
19
+ class ErrorResponse:
20
+ """
21
+ Attributes:
22
+ error_code (str): Machine-readable error code
23
+ message (str): Human-readable error message
24
+ details (ErrorResponseDetailsType0 | None | Unset): Additional error details
25
+ """
26
+
27
+ error_code: str
28
+ message: str
29
+ details: ErrorResponseDetailsType0 | None | Unset = UNSET
30
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
31
+
32
+ def to_dict(self) -> dict[str, Any]:
33
+ from ..models.error_response_details_type_0 import ErrorResponseDetailsType0
34
+
35
+ error_code = self.error_code
36
+
37
+ message = self.message
38
+
39
+ details: dict[str, Any] | None | Unset
40
+ if isinstance(self.details, Unset):
41
+ details = UNSET
42
+ elif isinstance(self.details, ErrorResponseDetailsType0):
43
+ details = self.details.to_dict()
44
+ else:
45
+ details = self.details
46
+
47
+ field_dict: dict[str, Any] = {}
48
+ field_dict.update(self.additional_properties)
49
+ field_dict.update(
50
+ {
51
+ "error_code": error_code,
52
+ "message": message,
53
+ }
54
+ )
55
+ if details is not UNSET:
56
+ field_dict["details"] = details
57
+
58
+ return field_dict
59
+
60
+ @classmethod
61
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
62
+ from ..models.error_response_details_type_0 import ErrorResponseDetailsType0
63
+
64
+ d = dict(src_dict)
65
+ error_code = d.pop("error_code")
66
+
67
+ message = d.pop("message")
68
+
69
+ def _parse_details(data: object) -> ErrorResponseDetailsType0 | None | Unset:
70
+ if data is None:
71
+ return data
72
+ if isinstance(data, Unset):
73
+ return data
74
+ try:
75
+ if not isinstance(data, dict):
76
+ raise TypeError()
77
+ details_type_0 = ErrorResponseDetailsType0.from_dict(data)
78
+
79
+ return details_type_0
80
+ except (TypeError, ValueError, AttributeError, KeyError):
81
+ pass
82
+ return cast(ErrorResponseDetailsType0 | None | Unset, data)
83
+
84
+ details = _parse_details(d.pop("details", UNSET))
85
+
86
+ error_response = cls(
87
+ error_code=error_code,
88
+ message=message,
89
+ details=details,
90
+ )
91
+
92
+ error_response.additional_properties = d
93
+ return error_response
94
+
95
+ @property
96
+ def additional_keys(self) -> list[str]:
97
+ return list(self.additional_properties.keys())
98
+
99
+ def __getitem__(self, key: str) -> Any:
100
+ return self.additional_properties[key]
101
+
102
+ def __setitem__(self, key: str, value: Any) -> None:
103
+ self.additional_properties[key] = value
104
+
105
+ def __delitem__(self, key: str) -> None:
106
+ del self.additional_properties[key]
107
+
108
+ def __contains__(self, key: str) -> bool:
109
+ return key in self.additional_properties
@@ -6,11 +6,11 @@ from typing import Any, TypeVar
6
6
  from attrs import define as _attrs_define
7
7
  from attrs import field as _attrs_field
8
8
 
9
- T = TypeVar("T", bound="TaskInsertQueryParams")
9
+ T = TypeVar("T", bound="ErrorResponseDetailsType0")
10
10
 
11
11
 
12
12
  @_attrs_define
13
- class TaskInsertQueryParams:
13
+ class ErrorResponseDetailsType0:
14
14
  """ """
15
15
 
16
16
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
@@ -24,10 +24,10 @@ class TaskInsertQueryParams:
24
24
  @classmethod
25
25
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
26
26
  d = dict(src_dict)
27
- task_insert_query_params = cls()
27
+ error_response_details_type_0 = cls()
28
28
 
29
- task_insert_query_params.additional_properties = d
30
- return task_insert_query_params
29
+ error_response_details_type_0.additional_properties = d
30
+ return error_response_details_type_0
31
31
 
32
32
  @property
33
33
  def additional_keys(self) -> list[str]:
@@ -18,11 +18,13 @@ class InsufficientBalanceError:
18
18
  Attributes:
19
19
  message (str):
20
20
  current_balance_dollars (float):
21
+ minimum_required_dollars (float):
21
22
  error (str | Unset): Default: 'INSUFFICIENT_BALANCE'.
22
23
  """
23
24
 
24
25
  message: str
25
26
  current_balance_dollars: float
27
+ minimum_required_dollars: float
26
28
  error: str | Unset = "INSUFFICIENT_BALANCE"
27
29
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
28
30
 
@@ -31,6 +33,8 @@ class InsufficientBalanceError:
31
33
 
32
34
  current_balance_dollars = self.current_balance_dollars
33
35
 
36
+ minimum_required_dollars = self.minimum_required_dollars
37
+
34
38
  error = self.error
35
39
 
36
40
  field_dict: dict[str, Any] = {}
@@ -39,6 +43,7 @@ class InsufficientBalanceError:
39
43
  {
40
44
  "message": message,
41
45
  "current_balance_dollars": current_balance_dollars,
46
+ "minimum_required_dollars": minimum_required_dollars,
42
47
  }
43
48
  )
44
49
  if error is not UNSET:
@@ -53,11 +58,14 @@ class InsufficientBalanceError:
53
58
 
54
59
  current_balance_dollars = d.pop("current_balance_dollars")
55
60
 
61
+ minimum_required_dollars = d.pop("minimum_required_dollars")
62
+
56
63
  error = d.pop("error", UNSET)
57
64
 
58
65
  insufficient_balance_error = cls(
59
66
  message=message,
60
67
  current_balance_dollars=current_balance_dollars,
68
+ minimum_required_dollars=minimum_required_dollars,
61
69
  error=error,
62
70
  )
63
71
 
@@ -1,12 +1,7 @@
1
1
  from enum import Enum
2
2
 
3
3
 
4
- class LLMEnum(str, Enum):
5
- AUTOCOHORT_MODEL = "AUTOCOHORT_MODEL"
6
- CLAUDE_3_7_SONNET = "CLAUDE_3_7_SONNET"
7
- CLAUDE_3_7_SONNET_THINKING = "CLAUDE_3_7_SONNET_THINKING"
8
- CLAUDE_4_1_OPUS = "CLAUDE_4_1_OPUS"
9
- CLAUDE_4_1_OPUS_THINKING = "CLAUDE_4_1_OPUS_THINKING"
4
+ class LLMEnumPublic(str, Enum):
10
5
  CLAUDE_4_5_HAIKU = "CLAUDE_4_5_HAIKU"
11
6
  CLAUDE_4_5_HAIKU_MINIMAL = "CLAUDE_4_5_HAIKU_MINIMAL"
12
7
  CLAUDE_4_5_HAIKU_THINKING = "CLAUDE_4_5_HAIKU_THINKING"
@@ -18,17 +13,6 @@ class LLMEnum(str, Enum):
18
13
  CLAUDE_4_5_SONNET_HIGH = "CLAUDE_4_5_SONNET_HIGH"
19
14
  CLAUDE_4_5_SONNET_MINIMAL = "CLAUDE_4_5_SONNET_MINIMAL"
20
15
  CLAUDE_4_5_SONNET_THINKING = "CLAUDE_4_5_SONNET_THINKING"
21
- CLAUDE_4_OPUS = "CLAUDE_4_OPUS"
22
- CLAUDE_4_OPUS_THINKING = "CLAUDE_4_OPUS_THINKING"
23
- CLAUDE_4_SONNET = "CLAUDE_4_SONNET"
24
- CLAUDE_4_SONNET_THINKING = "CLAUDE_4_SONNET_THINKING"
25
- DEEPSEEK_R1_0528 = "DEEPSEEK_R1_0528"
26
- DEFAULT_LARGE = "DEFAULT_LARGE"
27
- DEFAULT_SMALL = "DEFAULT_SMALL"
28
- GEMINI_2_5_FLASH = "GEMINI_2_5_FLASH"
29
- GEMINI_2_5_FLASH_LITE = "GEMINI_2_5_FLASH_LITE"
30
- GEMINI_2_5_FLASH_THINKING = "GEMINI_2_5_FLASH_THINKING"
31
- GEMINI_2_5_PRO = "GEMINI_2_5_PRO"
32
16
  GEMINI_3_FLASH_HIGH = "GEMINI_3_FLASH_HIGH"
33
17
  GEMINI_3_FLASH_LOW = "GEMINI_3_FLASH_LOW"
34
18
  GEMINI_3_FLASH_MEDIUM = "GEMINI_3_FLASH_MEDIUM"
@@ -46,9 +30,6 @@ class LLMEnum(str, Enum):
46
30
  GPT_5_MINI = "GPT_5_MINI"
47
31
  GPT_5_MINIMAL = "GPT_5_MINIMAL"
48
32
  GPT_5_NANO = "GPT_5_NANO"
49
- GROK_4 = "GROK_4"
50
- O3 = "O3"
51
- O3_MINI = "O3_MINI"
52
33
 
53
34
  def __str__(self) -> str:
54
35
  return str(self.value)