everyrow 0.1.9__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.9.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.9.dist-info/RECORD +0 -183
  205. /everyrow/generated/api/{default → artifacts}/__init__.py +0 -0
  206. {everyrow-0.1.9.dist-info → everyrow-0.2.0.dist-info}/WHEEL +0 -0
  207. {everyrow-0.1.9.dist-info → everyrow-0.2.0.dist-info}/licenses/LICENSE.txt +0 -0
@@ -1,70 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from collections.abc import Mapping
4
- from typing import Any, TypeVar
5
- from uuid import UUID
6
-
7
- from attrs import define as _attrs_define
8
- from attrs import field as _attrs_field
9
-
10
- T = TypeVar("T", bound="CreateWorkflowFromArtifactResponse")
11
-
12
-
13
- @_attrs_define
14
- class CreateWorkflowFromArtifactResponse:
15
- """
16
- Attributes:
17
- workflow_id (UUID):
18
- message (str):
19
- """
20
-
21
- workflow_id: UUID
22
- message: str
23
- additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
24
-
25
- def to_dict(self) -> dict[str, Any]:
26
- workflow_id = str(self.workflow_id)
27
-
28
- message = self.message
29
-
30
- field_dict: dict[str, Any] = {}
31
- field_dict.update(self.additional_properties)
32
- field_dict.update(
33
- {
34
- "workflow_id": workflow_id,
35
- "message": message,
36
- }
37
- )
38
-
39
- return field_dict
40
-
41
- @classmethod
42
- def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
43
- d = dict(src_dict)
44
- workflow_id = UUID(d.pop("workflow_id"))
45
-
46
- message = d.pop("message")
47
-
48
- create_workflow_from_artifact_response = cls(
49
- workflow_id=workflow_id,
50
- message=message,
51
- )
52
-
53
- create_workflow_from_artifact_response.additional_properties = d
54
- return create_workflow_from_artifact_response
55
-
56
- @property
57
- def additional_keys(self) -> list[str]:
58
- return list(self.additional_properties.keys())
59
-
60
- def __getitem__(self, key: str) -> Any:
61
- return self.additional_properties[key]
62
-
63
- def __setitem__(self, key: str, value: Any) -> None:
64
- self.additional_properties[key] = value
65
-
66
- def __delitem__(self, key: str) -> None:
67
- del self.additional_properties[key]
68
-
69
- def __contains__(self, key: str) -> bool:
70
- return key in self.additional_properties
@@ -1,18 +0,0 @@
1
- from enum import Enum
2
-
3
-
4
- class DataFrameMethod(str, Enum):
5
- EQ = "eq"
6
- GE = "ge"
7
- GT = "gt"
8
- LE = "le"
9
- LT = "lt"
10
- NE = "ne"
11
- NLARGEST = "nlargest"
12
- NSMALLEST = "nsmallest"
13
- STR_CONTAINS = "str.contains"
14
- STR_ENDSWITH = "str.endswith"
15
- STR_STARTSWITH = "str.startswith"
16
-
17
- def __str__(self) -> str:
18
- return str(self.value)
@@ -1,145 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import datetime
4
- from collections.abc import Mapping
5
- from typing import Any, TypeVar, cast
6
-
7
- from attrs import define as _attrs_define
8
- from attrs import field as _attrs_field
9
- from dateutil.parser import isoparse
10
-
11
- from ..types import UNSET, Unset
12
-
13
- T = TypeVar("T", bound="DateCutoffs")
14
-
15
-
16
- @_attrs_define
17
- class DateCutoffs:
18
- """
19
- Attributes:
20
- start (datetime.datetime | None | Unset):
21
- end (datetime.datetime | None | Unset):
22
- present_date (datetime.datetime | None | Unset):
23
- """
24
-
25
- start: datetime.datetime | None | Unset = UNSET
26
- end: datetime.datetime | None | Unset = UNSET
27
- present_date: datetime.datetime | None | Unset = UNSET
28
- additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
29
-
30
- def to_dict(self) -> dict[str, Any]:
31
- start: None | str | Unset
32
- if isinstance(self.start, Unset):
33
- start = UNSET
34
- elif isinstance(self.start, datetime.datetime):
35
- start = self.start.isoformat()
36
- else:
37
- start = self.start
38
-
39
- end: None | str | Unset
40
- if isinstance(self.end, Unset):
41
- end = UNSET
42
- elif isinstance(self.end, datetime.datetime):
43
- end = self.end.isoformat()
44
- else:
45
- end = self.end
46
-
47
- present_date: None | str | Unset
48
- if isinstance(self.present_date, Unset):
49
- present_date = UNSET
50
- elif isinstance(self.present_date, datetime.datetime):
51
- present_date = self.present_date.isoformat()
52
- else:
53
- present_date = self.present_date
54
-
55
- field_dict: dict[str, Any] = {}
56
- field_dict.update(self.additional_properties)
57
- field_dict.update({})
58
- if start is not UNSET:
59
- field_dict["start"] = start
60
- if end is not UNSET:
61
- field_dict["end"] = end
62
- if present_date is not UNSET:
63
- field_dict["present_date"] = present_date
64
-
65
- return field_dict
66
-
67
- @classmethod
68
- def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
69
- d = dict(src_dict)
70
-
71
- def _parse_start(data: object) -> datetime.datetime | None | Unset:
72
- if data is None:
73
- return data
74
- if isinstance(data, Unset):
75
- return data
76
- try:
77
- if not isinstance(data, str):
78
- raise TypeError()
79
- start_type_0 = isoparse(data)
80
-
81
- return start_type_0
82
- except (TypeError, ValueError, AttributeError, KeyError):
83
- pass
84
- return cast(datetime.datetime | None | Unset, data)
85
-
86
- start = _parse_start(d.pop("start", UNSET))
87
-
88
- def _parse_end(data: object) -> datetime.datetime | None | Unset:
89
- if data is None:
90
- return data
91
- if isinstance(data, Unset):
92
- return data
93
- try:
94
- if not isinstance(data, str):
95
- raise TypeError()
96
- end_type_0 = isoparse(data)
97
-
98
- return end_type_0
99
- except (TypeError, ValueError, AttributeError, KeyError):
100
- pass
101
- return cast(datetime.datetime | None | Unset, data)
102
-
103
- end = _parse_end(d.pop("end", UNSET))
104
-
105
- def _parse_present_date(data: object) -> datetime.datetime | None | Unset:
106
- if data is None:
107
- return data
108
- if isinstance(data, Unset):
109
- return data
110
- try:
111
- if not isinstance(data, str):
112
- raise TypeError()
113
- present_date_type_0 = isoparse(data)
114
-
115
- return present_date_type_0
116
- except (TypeError, ValueError, AttributeError, KeyError):
117
- pass
118
- return cast(datetime.datetime | None | Unset, data)
119
-
120
- present_date = _parse_present_date(d.pop("present_date", UNSET))
121
-
122
- date_cutoffs = cls(
123
- start=start,
124
- end=end,
125
- present_date=present_date,
126
- )
127
-
128
- date_cutoffs.additional_properties = d
129
- return date_cutoffs
130
-
131
- @property
132
- def additional_keys(self) -> list[str]:
133
- return list(self.additional_properties.keys())
134
-
135
- def __getitem__(self, key: str) -> Any:
136
- return self.additional_properties[key]
137
-
138
- def __setitem__(self, key: str, value: Any) -> None:
139
- self.additional_properties[key] = value
140
-
141
- def __delitem__(self, key: str) -> None:
142
- del self.additional_properties[key]
143
-
144
- def __contains__(self, key: str) -> bool:
145
- return key in self.additional_properties
@@ -1,64 +0,0 @@
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
-
8
- from ..types import UNSET, Unset
9
-
10
- T = TypeVar("T", bound="DedupePublicParams")
11
-
12
-
13
- @_attrs_define
14
- class DedupePublicParams:
15
- """Public-facing parameters for the deduplication service.
16
-
17
- Attributes:
18
- equivalence_relation (str): Description of what makes items equivalent
19
- select_representative (bool | Unset): When true, use LLM to select the best representative from each equivalence
20
- class. When false, no selection is made. Default: True.
21
- preview (bool | Unset): Default: False.
22
- """
23
-
24
- equivalence_relation: str
25
- select_representative: bool | Unset = True
26
- preview: bool | Unset = False
27
-
28
- def to_dict(self) -> dict[str, Any]:
29
- equivalence_relation = self.equivalence_relation
30
-
31
- select_representative = self.select_representative
32
-
33
- preview = self.preview
34
-
35
- field_dict: dict[str, Any] = {}
36
-
37
- field_dict.update(
38
- {
39
- "equivalence_relation": equivalence_relation,
40
- }
41
- )
42
- if select_representative is not UNSET:
43
- field_dict["select_representative"] = select_representative
44
- if preview is not UNSET:
45
- field_dict["preview"] = preview
46
-
47
- return field_dict
48
-
49
- @classmethod
50
- def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
51
- d = dict(src_dict)
52
- equivalence_relation = d.pop("equivalence_relation")
53
-
54
- select_representative = d.pop("select_representative", UNSET)
55
-
56
- preview = d.pop("preview", UNSET)
57
-
58
- dedupe_public_params = cls(
59
- equivalence_relation=equivalence_relation,
60
- select_representative=select_representative,
61
- preview=preview,
62
- )
63
-
64
- return dedupe_public_params
@@ -1,311 +0,0 @@
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 ..models.processing_mode import ProcessingMode
11
- from ..types import UNSET, Unset
12
-
13
- if TYPE_CHECKING:
14
- from ..models.dedupe_public_params import DedupePublicParams
15
-
16
-
17
- T = TypeVar("T", bound="DedupeRequestParams")
18
-
19
-
20
- @_attrs_define
21
- class DedupeRequestParams:
22
- """Request parameters for the deduplication service.
23
-
24
- Attributes:
25
- query (DedupePublicParams): Public-facing parameters for the deduplication service.
26
- input_artifacts (list[UUID] | None | Unset):
27
- context_artifacts (list[UUID] | None | Unset):
28
- label (None | str | Unset): Short task label for use in the UI
29
- description (None | str | Unset): Task description for use in the UI
30
- task_id (None | Unset | UUID):
31
- replaces_task_id (None | Unset | UUID): The ID of the task that this task replaces. Used e.g. by the full
32
- version of a task that replaces a preview version.
33
- twin_artifact_id (None | Unset | UUID): The ID of a reference artifact, e.g. the right table in Deep Merge
34
- operation.
35
- task_type (Literal['dedupe'] | Unset): Default: 'dedupe'.
36
- processing_mode (ProcessingMode | Unset):
37
- """
38
-
39
- query: DedupePublicParams
40
- input_artifacts: list[UUID] | None | Unset = UNSET
41
- context_artifacts: list[UUID] | None | Unset = UNSET
42
- label: None | str | Unset = UNSET
43
- description: None | str | Unset = UNSET
44
- task_id: None | Unset | UUID = UNSET
45
- replaces_task_id: None | Unset | UUID = UNSET
46
- twin_artifact_id: None | Unset | UUID = UNSET
47
- task_type: Literal["dedupe"] | Unset = "dedupe"
48
- processing_mode: ProcessingMode | Unset = UNSET
49
- additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
50
-
51
- def to_dict(self) -> dict[str, Any]:
52
- query = self.query.to_dict()
53
-
54
- input_artifacts: list[str] | None | Unset
55
- if isinstance(self.input_artifacts, Unset):
56
- input_artifacts = UNSET
57
- elif isinstance(self.input_artifacts, list):
58
- input_artifacts = []
59
- for componentsschemas_input_artifacts_ids_item_data in self.input_artifacts:
60
- componentsschemas_input_artifacts_ids_item = str(componentsschemas_input_artifacts_ids_item_data)
61
- input_artifacts.append(componentsschemas_input_artifacts_ids_item)
62
-
63
- else:
64
- input_artifacts = self.input_artifacts
65
-
66
- context_artifacts: list[str] | None | Unset
67
- if isinstance(self.context_artifacts, Unset):
68
- context_artifacts = UNSET
69
- elif isinstance(self.context_artifacts, list):
70
- context_artifacts = []
71
- for componentsschemas_context_artifacts_ids_item_data in self.context_artifacts:
72
- componentsschemas_context_artifacts_ids_item = str(componentsschemas_context_artifacts_ids_item_data)
73
- context_artifacts.append(componentsschemas_context_artifacts_ids_item)
74
-
75
- else:
76
- context_artifacts = self.context_artifacts
77
-
78
- label: None | str | Unset
79
- if isinstance(self.label, Unset):
80
- label = UNSET
81
- else:
82
- label = self.label
83
-
84
- description: None | str | Unset
85
- if isinstance(self.description, Unset):
86
- description = UNSET
87
- else:
88
- description = self.description
89
-
90
- task_id: None | str | Unset
91
- if isinstance(self.task_id, Unset):
92
- task_id = UNSET
93
- elif isinstance(self.task_id, UUID):
94
- task_id = str(self.task_id)
95
- else:
96
- task_id = self.task_id
97
-
98
- replaces_task_id: None | str | Unset
99
- if isinstance(self.replaces_task_id, Unset):
100
- replaces_task_id = UNSET
101
- elif isinstance(self.replaces_task_id, UUID):
102
- replaces_task_id = str(self.replaces_task_id)
103
- else:
104
- replaces_task_id = self.replaces_task_id
105
-
106
- twin_artifact_id: None | str | Unset
107
- if isinstance(self.twin_artifact_id, Unset):
108
- twin_artifact_id = UNSET
109
- elif isinstance(self.twin_artifact_id, UUID):
110
- twin_artifact_id = str(self.twin_artifact_id)
111
- else:
112
- twin_artifact_id = self.twin_artifact_id
113
-
114
- task_type = self.task_type
115
-
116
- processing_mode: str | Unset = UNSET
117
- if not isinstance(self.processing_mode, Unset):
118
- processing_mode = self.processing_mode.value
119
-
120
- field_dict: dict[str, Any] = {}
121
- field_dict.update(self.additional_properties)
122
- field_dict.update(
123
- {
124
- "query": query,
125
- }
126
- )
127
- if input_artifacts is not UNSET:
128
- field_dict["input_artifacts"] = input_artifacts
129
- if context_artifacts is not UNSET:
130
- field_dict["context_artifacts"] = context_artifacts
131
- if label is not UNSET:
132
- field_dict["label"] = label
133
- if description is not UNSET:
134
- field_dict["description"] = description
135
- if task_id is not UNSET:
136
- field_dict["task_id"] = task_id
137
- if replaces_task_id is not UNSET:
138
- field_dict["replaces_task_id"] = replaces_task_id
139
- if twin_artifact_id is not UNSET:
140
- field_dict["twin_artifact_id"] = twin_artifact_id
141
- if task_type is not UNSET:
142
- field_dict["task_type"] = task_type
143
- if processing_mode is not UNSET:
144
- field_dict["processing_mode"] = processing_mode
145
-
146
- return field_dict
147
-
148
- @classmethod
149
- def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
150
- from ..models.dedupe_public_params import DedupePublicParams
151
-
152
- d = dict(src_dict)
153
- query = DedupePublicParams.from_dict(d.pop("query"))
154
-
155
- def _parse_input_artifacts(data: object) -> list[UUID] | None | Unset:
156
- if data is None:
157
- return data
158
- if isinstance(data, Unset):
159
- return data
160
- try:
161
- if not isinstance(data, list):
162
- raise TypeError()
163
- input_artifacts_type_0 = []
164
- _input_artifacts_type_0 = data
165
- for componentsschemas_input_artifacts_ids_item_data in _input_artifacts_type_0:
166
- componentsschemas_input_artifacts_ids_item = UUID(componentsschemas_input_artifacts_ids_item_data)
167
-
168
- input_artifacts_type_0.append(componentsschemas_input_artifacts_ids_item)
169
-
170
- return input_artifacts_type_0
171
- except (TypeError, ValueError, AttributeError, KeyError):
172
- pass
173
- return cast(list[UUID] | None | Unset, data)
174
-
175
- input_artifacts = _parse_input_artifacts(d.pop("input_artifacts", UNSET))
176
-
177
- def _parse_context_artifacts(data: object) -> list[UUID] | None | Unset:
178
- if data is None:
179
- return data
180
- if isinstance(data, Unset):
181
- return data
182
- try:
183
- if not isinstance(data, list):
184
- raise TypeError()
185
- context_artifacts_type_0 = []
186
- _context_artifacts_type_0 = data
187
- for componentsschemas_context_artifacts_ids_item_data in _context_artifacts_type_0:
188
- componentsschemas_context_artifacts_ids_item = UUID(
189
- componentsschemas_context_artifacts_ids_item_data
190
- )
191
-
192
- context_artifacts_type_0.append(componentsschemas_context_artifacts_ids_item)
193
-
194
- return context_artifacts_type_0
195
- except (TypeError, ValueError, AttributeError, KeyError):
196
- pass
197
- return cast(list[UUID] | None | Unset, data)
198
-
199
- context_artifacts = _parse_context_artifacts(d.pop("context_artifacts", UNSET))
200
-
201
- def _parse_label(data: object) -> None | str | Unset:
202
- if data is None:
203
- return data
204
- if isinstance(data, Unset):
205
- return data
206
- return cast(None | str | Unset, data)
207
-
208
- label = _parse_label(d.pop("label", UNSET))
209
-
210
- def _parse_description(data: object) -> None | str | Unset:
211
- if data is None:
212
- return data
213
- if isinstance(data, Unset):
214
- return data
215
- return cast(None | str | Unset, data)
216
-
217
- description = _parse_description(d.pop("description", UNSET))
218
-
219
- def _parse_task_id(data: object) -> None | Unset | UUID:
220
- if data is None:
221
- return data
222
- if isinstance(data, Unset):
223
- return data
224
- try:
225
- if not isinstance(data, str):
226
- raise TypeError()
227
- task_id_type_0 = UUID(data)
228
-
229
- return task_id_type_0
230
- except (TypeError, ValueError, AttributeError, KeyError):
231
- pass
232
- return cast(None | Unset | UUID, data)
233
-
234
- task_id = _parse_task_id(d.pop("task_id", UNSET))
235
-
236
- def _parse_replaces_task_id(data: object) -> None | Unset | UUID:
237
- if data is None:
238
- return data
239
- if isinstance(data, Unset):
240
- return data
241
- try:
242
- if not isinstance(data, str):
243
- raise TypeError()
244
- replaces_task_id_type_0 = UUID(data)
245
-
246
- return replaces_task_id_type_0
247
- except (TypeError, ValueError, AttributeError, KeyError):
248
- pass
249
- return cast(None | Unset | UUID, data)
250
-
251
- replaces_task_id = _parse_replaces_task_id(d.pop("replaces_task_id", UNSET))
252
-
253
- def _parse_twin_artifact_id(data: object) -> None | Unset | UUID:
254
- if data is None:
255
- return data
256
- if isinstance(data, Unset):
257
- return data
258
- try:
259
- if not isinstance(data, str):
260
- raise TypeError()
261
- twin_artifact_id_type_0 = UUID(data)
262
-
263
- return twin_artifact_id_type_0
264
- except (TypeError, ValueError, AttributeError, KeyError):
265
- pass
266
- return cast(None | Unset | UUID, data)
267
-
268
- twin_artifact_id = _parse_twin_artifact_id(d.pop("twin_artifact_id", UNSET))
269
-
270
- task_type = cast(Literal["dedupe"] | Unset, d.pop("task_type", UNSET))
271
- if task_type != "dedupe" and not isinstance(task_type, Unset):
272
- raise ValueError(f"task_type must match const 'dedupe', got '{task_type}'")
273
-
274
- _processing_mode = d.pop("processing_mode", UNSET)
275
- processing_mode: ProcessingMode | Unset
276
- if isinstance(_processing_mode, Unset):
277
- processing_mode = UNSET
278
- else:
279
- processing_mode = ProcessingMode(_processing_mode)
280
-
281
- dedupe_request_params = cls(
282
- query=query,
283
- input_artifacts=input_artifacts,
284
- context_artifacts=context_artifacts,
285
- label=label,
286
- description=description,
287
- task_id=task_id,
288
- replaces_task_id=replaces_task_id,
289
- twin_artifact_id=twin_artifact_id,
290
- task_type=task_type,
291
- processing_mode=processing_mode,
292
- )
293
-
294
- dedupe_request_params.additional_properties = d
295
- return dedupe_request_params
296
-
297
- @property
298
- def additional_keys(self) -> list[str]:
299
- return list(self.additional_properties.keys())
300
-
301
- def __getitem__(self, key: str) -> Any:
302
- return self.additional_properties[key]
303
-
304
- def __setitem__(self, key: str, value: Any) -> None:
305
- self.additional_properties[key] = value
306
-
307
- def __delitem__(self, key: str) -> None:
308
- del self.additional_properties[key]
309
-
310
- def __contains__(self, key: str) -> bool:
311
- return key in self.additional_properties