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
@@ -0,0 +1,203 @@
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.rank_operation_input_type_1_item import RankOperationInputType1Item
14
+ from ..models.rank_operation_input_type_2 import RankOperationInputType2
15
+ from ..models.rank_operation_response_schema_type_0 import RankOperationResponseSchemaType0
16
+
17
+
18
+ T = TypeVar("T", bound="RankOperation")
19
+
20
+
21
+ @_attrs_define
22
+ class RankOperation:
23
+ """
24
+ Attributes:
25
+ input_ (list[RankOperationInputType1Item] | RankOperationInputType2 | UUID): The input data as a) the ID of an
26
+ existing artifact, b) a single record in the form of a JSON object, or c) a table of records in the form of a
27
+ list of JSON objects
28
+ task (str): Instructions for the AI to score each row
29
+ sort_by (str): Field name from response_schema to sort results by
30
+ session_id (None | Unset | UUID): Session ID. If not provided, a new session is auto-created for this task.
31
+ response_schema (None | RankOperationResponseSchemaType0 | Unset): JSON Schema for the response. Must include
32
+ the field specified in sort_by.
33
+ ascending (bool | Unset): Sort order: True for ascending, False for descending Default: True.
34
+ """
35
+
36
+ input_: list[RankOperationInputType1Item] | RankOperationInputType2 | UUID
37
+ task: str
38
+ sort_by: str
39
+ session_id: None | Unset | UUID = UNSET
40
+ response_schema: None | RankOperationResponseSchemaType0 | Unset = UNSET
41
+ ascending: bool | Unset = True
42
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
43
+
44
+ def to_dict(self) -> dict[str, Any]:
45
+ from ..models.rank_operation_response_schema_type_0 import RankOperationResponseSchemaType0
46
+
47
+ input_: dict[str, Any] | list[dict[str, Any]] | str
48
+ if isinstance(self.input_, UUID):
49
+ input_ = str(self.input_)
50
+ elif isinstance(self.input_, list):
51
+ input_ = []
52
+ for input_type_1_item_data in self.input_:
53
+ input_type_1_item = input_type_1_item_data.to_dict()
54
+ input_.append(input_type_1_item)
55
+
56
+ else:
57
+ input_ = self.input_.to_dict()
58
+
59
+ task = self.task
60
+
61
+ sort_by = self.sort_by
62
+
63
+ session_id: None | str | Unset
64
+ if isinstance(self.session_id, Unset):
65
+ session_id = UNSET
66
+ elif isinstance(self.session_id, UUID):
67
+ session_id = str(self.session_id)
68
+ else:
69
+ session_id = self.session_id
70
+
71
+ response_schema: dict[str, Any] | None | Unset
72
+ if isinstance(self.response_schema, Unset):
73
+ response_schema = UNSET
74
+ elif isinstance(self.response_schema, RankOperationResponseSchemaType0):
75
+ response_schema = self.response_schema.to_dict()
76
+ else:
77
+ response_schema = self.response_schema
78
+
79
+ ascending = self.ascending
80
+
81
+ field_dict: dict[str, Any] = {}
82
+ field_dict.update(self.additional_properties)
83
+ field_dict.update(
84
+ {
85
+ "input": input_,
86
+ "task": task,
87
+ "sort_by": sort_by,
88
+ }
89
+ )
90
+ if session_id is not UNSET:
91
+ field_dict["session_id"] = session_id
92
+ if response_schema is not UNSET:
93
+ field_dict["response_schema"] = response_schema
94
+ if ascending is not UNSET:
95
+ field_dict["ascending"] = ascending
96
+
97
+ return field_dict
98
+
99
+ @classmethod
100
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
101
+ from ..models.rank_operation_input_type_1_item import RankOperationInputType1Item
102
+ from ..models.rank_operation_input_type_2 import RankOperationInputType2
103
+ from ..models.rank_operation_response_schema_type_0 import RankOperationResponseSchemaType0
104
+
105
+ d = dict(src_dict)
106
+
107
+ def _parse_input_(data: object) -> list[RankOperationInputType1Item] | RankOperationInputType2 | UUID:
108
+ try:
109
+ if not isinstance(data, str):
110
+ raise TypeError()
111
+ input_type_0 = UUID(data)
112
+
113
+ return input_type_0
114
+ except (TypeError, ValueError, AttributeError, KeyError):
115
+ pass
116
+ try:
117
+ if not isinstance(data, list):
118
+ raise TypeError()
119
+ input_type_1 = []
120
+ _input_type_1 = data
121
+ for input_type_1_item_data in _input_type_1:
122
+ input_type_1_item = RankOperationInputType1Item.from_dict(input_type_1_item_data)
123
+
124
+ input_type_1.append(input_type_1_item)
125
+
126
+ return input_type_1
127
+ except (TypeError, ValueError, AttributeError, KeyError):
128
+ pass
129
+ if not isinstance(data, dict):
130
+ raise TypeError()
131
+ input_type_2 = RankOperationInputType2.from_dict(data)
132
+
133
+ return input_type_2
134
+
135
+ input_ = _parse_input_(d.pop("input"))
136
+
137
+ task = d.pop("task")
138
+
139
+ sort_by = d.pop("sort_by")
140
+
141
+ def _parse_session_id(data: object) -> None | Unset | UUID:
142
+ if data is None:
143
+ return data
144
+ if isinstance(data, Unset):
145
+ return data
146
+ try:
147
+ if not isinstance(data, str):
148
+ raise TypeError()
149
+ session_id_type_0 = UUID(data)
150
+
151
+ return session_id_type_0
152
+ except (TypeError, ValueError, AttributeError, KeyError):
153
+ pass
154
+ return cast(None | Unset | UUID, data)
155
+
156
+ session_id = _parse_session_id(d.pop("session_id", UNSET))
157
+
158
+ def _parse_response_schema(data: object) -> None | RankOperationResponseSchemaType0 | Unset:
159
+ if data is None:
160
+ return data
161
+ if isinstance(data, Unset):
162
+ return data
163
+ try:
164
+ if not isinstance(data, dict):
165
+ raise TypeError()
166
+ response_schema_type_0 = RankOperationResponseSchemaType0.from_dict(data)
167
+
168
+ return response_schema_type_0
169
+ except (TypeError, ValueError, AttributeError, KeyError):
170
+ pass
171
+ return cast(None | RankOperationResponseSchemaType0 | Unset, data)
172
+
173
+ response_schema = _parse_response_schema(d.pop("response_schema", UNSET))
174
+
175
+ ascending = d.pop("ascending", UNSET)
176
+
177
+ rank_operation = cls(
178
+ input_=input_,
179
+ task=task,
180
+ sort_by=sort_by,
181
+ session_id=session_id,
182
+ response_schema=response_schema,
183
+ ascending=ascending,
184
+ )
185
+
186
+ rank_operation.additional_properties = d
187
+ return rank_operation
188
+
189
+ @property
190
+ def additional_keys(self) -> list[str]:
191
+ return list(self.additional_properties.keys())
192
+
193
+ def __getitem__(self, key: str) -> Any:
194
+ return self.additional_properties[key]
195
+
196
+ def __setitem__(self, key: str, value: Any) -> None:
197
+ self.additional_properties[key] = value
198
+
199
+ def __delitem__(self, key: str) -> None:
200
+ del self.additional_properties[key]
201
+
202
+ def __contains__(self, key: str) -> bool:
203
+ 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="RankOperationInputType1Item")
10
+
11
+
12
+ @_attrs_define
13
+ class RankOperationInputType1Item:
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
+ rank_operation_input_type_1_item = cls()
28
+
29
+ rank_operation_input_type_1_item.additional_properties = d
30
+ return rank_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="ExportRequestTokenData")
9
+ T = TypeVar("T", bound="RankOperationInputType2")
10
10
 
11
11
 
12
12
  @_attrs_define
13
- class ExportRequestTokenData:
13
+ class RankOperationInputType2:
14
14
  """ """
15
15
 
16
16
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
@@ -24,10 +24,10 @@ class ExportRequestTokenData:
24
24
  @classmethod
25
25
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
26
26
  d = dict(src_dict)
27
- export_request_token_data = cls()
27
+ rank_operation_input_type_2 = cls()
28
28
 
29
- export_request_token_data.additional_properties = d
30
- return export_request_token_data
29
+ rank_operation_input_type_2.additional_properties = d
30
+ return rank_operation_input_type_2
31
31
 
32
32
  @property
33
33
  def additional_keys(self) -> list[str]:
@@ -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="ArtifactGroupRecordAnalysisType0")
9
+ T = TypeVar("T", bound="RankOperationResponseSchemaType0")
10
10
 
11
11
 
12
12
  @_attrs_define
13
- class ArtifactGroupRecordAnalysisType0:
13
+ class RankOperationResponseSchemaType0:
14
14
  """ """
15
15
 
16
16
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
@@ -24,10 +24,10 @@ class ArtifactGroupRecordAnalysisType0:
24
24
  @classmethod
25
25
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
26
26
  d = dict(src_dict)
27
- artifact_group_record_analysis_type_0 = cls()
27
+ rank_operation_response_schema_type_0 = cls()
28
28
 
29
- artifact_group_record_analysis_type_0.additional_properties = d
30
- return artifact_group_record_analysis_type_0
29
+ rank_operation_response_schema_type_0.additional_properties = d
30
+ return rank_operation_response_schema_type_0
31
31
 
32
32
  @property
33
33
  def additional_keys(self) -> list[str]:
@@ -0,0 +1,186 @@
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.screen_operation_input_type_1_item import ScreenOperationInputType1Item
14
+ from ..models.screen_operation_input_type_2 import ScreenOperationInputType2
15
+ from ..models.screen_operation_response_schema_type_0 import ScreenOperationResponseSchemaType0
16
+
17
+
18
+ T = TypeVar("T", bound="ScreenOperation")
19
+
20
+
21
+ @_attrs_define
22
+ class ScreenOperation:
23
+ """
24
+ Attributes:
25
+ input_ (list[ScreenOperationInputType1Item] | ScreenOperationInputType2 | UUID): The input data as a) the ID of
26
+ 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
27
+ list of JSON objects
28
+ task (str): Instructions for the AI to filter/screen each row
29
+ session_id (None | Unset | UUID): Session ID. If not provided, a new session is auto-created for this task.
30
+ response_schema (None | ScreenOperationResponseSchemaType0 | Unset): JSON Schema for the response format. If not
31
+ provided, uses default answer schema.
32
+ """
33
+
34
+ input_: list[ScreenOperationInputType1Item] | ScreenOperationInputType2 | UUID
35
+ task: str
36
+ session_id: None | Unset | UUID = UNSET
37
+ response_schema: None | ScreenOperationResponseSchemaType0 | Unset = UNSET
38
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
39
+
40
+ def to_dict(self) -> dict[str, Any]:
41
+ from ..models.screen_operation_response_schema_type_0 import ScreenOperationResponseSchemaType0
42
+
43
+ input_: dict[str, Any] | list[dict[str, Any]] | str
44
+ if isinstance(self.input_, UUID):
45
+ input_ = str(self.input_)
46
+ elif isinstance(self.input_, list):
47
+ input_ = []
48
+ for input_type_1_item_data in self.input_:
49
+ input_type_1_item = input_type_1_item_data.to_dict()
50
+ input_.append(input_type_1_item)
51
+
52
+ else:
53
+ input_ = self.input_.to_dict()
54
+
55
+ task = self.task
56
+
57
+ session_id: None | str | Unset
58
+ if isinstance(self.session_id, Unset):
59
+ session_id = UNSET
60
+ elif isinstance(self.session_id, UUID):
61
+ session_id = str(self.session_id)
62
+ else:
63
+ session_id = self.session_id
64
+
65
+ response_schema: dict[str, Any] | None | Unset
66
+ if isinstance(self.response_schema, Unset):
67
+ response_schema = UNSET
68
+ elif isinstance(self.response_schema, ScreenOperationResponseSchemaType0):
69
+ response_schema = self.response_schema.to_dict()
70
+ else:
71
+ response_schema = self.response_schema
72
+
73
+ field_dict: dict[str, Any] = {}
74
+ field_dict.update(self.additional_properties)
75
+ field_dict.update(
76
+ {
77
+ "input": input_,
78
+ "task": task,
79
+ }
80
+ )
81
+ if session_id is not UNSET:
82
+ field_dict["session_id"] = session_id
83
+ if response_schema is not UNSET:
84
+ field_dict["response_schema"] = response_schema
85
+
86
+ return field_dict
87
+
88
+ @classmethod
89
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
90
+ from ..models.screen_operation_input_type_1_item import ScreenOperationInputType1Item
91
+ from ..models.screen_operation_input_type_2 import ScreenOperationInputType2
92
+ from ..models.screen_operation_response_schema_type_0 import ScreenOperationResponseSchemaType0
93
+
94
+ d = dict(src_dict)
95
+
96
+ def _parse_input_(data: object) -> list[ScreenOperationInputType1Item] | ScreenOperationInputType2 | UUID:
97
+ try:
98
+ if not isinstance(data, str):
99
+ raise TypeError()
100
+ input_type_0 = UUID(data)
101
+
102
+ return input_type_0
103
+ except (TypeError, ValueError, AttributeError, KeyError):
104
+ pass
105
+ try:
106
+ if not isinstance(data, list):
107
+ raise TypeError()
108
+ input_type_1 = []
109
+ _input_type_1 = data
110
+ for input_type_1_item_data in _input_type_1:
111
+ input_type_1_item = ScreenOperationInputType1Item.from_dict(input_type_1_item_data)
112
+
113
+ input_type_1.append(input_type_1_item)
114
+
115
+ return input_type_1
116
+ except (TypeError, ValueError, AttributeError, KeyError):
117
+ pass
118
+ if not isinstance(data, dict):
119
+ raise TypeError()
120
+ input_type_2 = ScreenOperationInputType2.from_dict(data)
121
+
122
+ return input_type_2
123
+
124
+ input_ = _parse_input_(d.pop("input"))
125
+
126
+ task = d.pop("task")
127
+
128
+ def _parse_session_id(data: object) -> None | Unset | UUID:
129
+ if data is None:
130
+ return data
131
+ if isinstance(data, Unset):
132
+ return data
133
+ try:
134
+ if not isinstance(data, str):
135
+ raise TypeError()
136
+ session_id_type_0 = UUID(data)
137
+
138
+ return session_id_type_0
139
+ except (TypeError, ValueError, AttributeError, KeyError):
140
+ pass
141
+ return cast(None | Unset | UUID, data)
142
+
143
+ session_id = _parse_session_id(d.pop("session_id", UNSET))
144
+
145
+ def _parse_response_schema(data: object) -> None | ScreenOperationResponseSchemaType0 | Unset:
146
+ if data is None:
147
+ return data
148
+ if isinstance(data, Unset):
149
+ return data
150
+ try:
151
+ if not isinstance(data, dict):
152
+ raise TypeError()
153
+ response_schema_type_0 = ScreenOperationResponseSchemaType0.from_dict(data)
154
+
155
+ return response_schema_type_0
156
+ except (TypeError, ValueError, AttributeError, KeyError):
157
+ pass
158
+ return cast(None | ScreenOperationResponseSchemaType0 | Unset, data)
159
+
160
+ response_schema = _parse_response_schema(d.pop("response_schema", UNSET))
161
+
162
+ screen_operation = cls(
163
+ input_=input_,
164
+ task=task,
165
+ session_id=session_id,
166
+ response_schema=response_schema,
167
+ )
168
+
169
+ screen_operation.additional_properties = d
170
+ return screen_operation
171
+
172
+ @property
173
+ def additional_keys(self) -> list[str]:
174
+ return list(self.additional_properties.keys())
175
+
176
+ def __getitem__(self, key: str) -> Any:
177
+ return self.additional_properties[key]
178
+
179
+ def __setitem__(self, key: str, value: Any) -> None:
180
+ self.additional_properties[key] = value
181
+
182
+ def __delitem__(self, key: str) -> None:
183
+ del self.additional_properties[key]
184
+
185
+ def __contains__(self, key: str) -> bool:
186
+ 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="ScreenOperationInputType1Item")
10
+
11
+
12
+ @_attrs_define
13
+ class ScreenOperationInputType1Item:
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
+ screen_operation_input_type_1_item = cls()
28
+
29
+ screen_operation_input_type_1_item.additional_properties = d
30
+ return screen_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
@@ -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="ScreenOperationInputType2")
10
+
11
+
12
+ @_attrs_define
13
+ class ScreenOperationInputType2:
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
+ screen_operation_input_type_2 = cls()
28
+
29
+ screen_operation_input_type_2.additional_properties = d
30
+ return screen_operation_input_type_2
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
@@ -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="ScreenOperationResponseSchemaType0")
10
+
11
+
12
+ @_attrs_define
13
+ class ScreenOperationResponseSchemaType0:
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
+ screen_operation_response_schema_type_0 = cls()
28
+
29
+ screen_operation_response_schema_type_0.additional_properties = d
30
+ return screen_operation_response_schema_type_0
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
@@ -7,15 +7,14 @@ 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="CreateSessionResponse")
10
+ T = TypeVar("T", bound="SessionResponse")
11
11
 
12
12
 
13
13
  @_attrs_define
14
- class CreateSessionResponse:
15
- """Response containing the created session ID.
16
-
14
+ class SessionResponse:
15
+ """
17
16
  Attributes:
18
- session_id (UUID):
17
+ session_id (UUID): The ID of the created session
19
18
  """
20
19
 
21
20
  session_id: UUID
@@ -39,12 +38,12 @@ class CreateSessionResponse:
39
38
  d = dict(src_dict)
40
39
  session_id = UUID(d.pop("session_id"))
41
40
 
42
- create_session_response = cls(
41
+ session_response = cls(
43
42
  session_id=session_id,
44
43
  )
45
44
 
46
- create_session_response.additional_properties = d
47
- return create_session_response
45
+ session_response.additional_properties = d
46
+ return session_response
48
47
 
49
48
  @property
50
49
  def additional_keys(self) -> list[str]: