everyrow 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. everyrow/__init__.py +4 -0
  2. everyrow/api_utils.py +45 -0
  3. everyrow/citations.py +46 -0
  4. everyrow/constants.py +4 -0
  5. everyrow/generated/__init__.py +8 -0
  6. everyrow/generated/api/__init__.py +1 -0
  7. everyrow/generated/api/default/__init__.py +1 -0
  8. everyrow/generated/api/default/continue_task_endpoint_tasks_continue_post.py +208 -0
  9. everyrow/generated/api/default/copy_artifacts_artifacts_copy_post.py +166 -0
  10. everyrow/generated/api/default/copy_workflow_endpoint_workflows_copy_post.py +166 -0
  11. everyrow/generated/api/default/create_api_key_endpoint_api_keys_create_post.py +186 -0
  12. everyrow/generated/api/default/create_session_endpoint_sessions_create_post.py +198 -0
  13. everyrow/generated/api/default/create_workflow_from_artifact_workflows_from_artifact_post.py +174 -0
  14. everyrow/generated/api/default/export_to_google_sheets_export_post.py +168 -0
  15. everyrow/generated/api/default/generate_feedback_endpoint_tasks_generate_feedback_post.py +186 -0
  16. everyrow/generated/api/default/get_artifacts_artifacts_get.py +260 -0
  17. everyrow/generated/api/default/get_default_timeout_seconds_models_default_timeout_seconds_get.py +165 -0
  18. everyrow/generated/api/default/get_job_progress_for_task_jobs_progress_get.py +167 -0
  19. everyrow/generated/api/default/get_metrics_metrics_get.py +80 -0
  20. everyrow/generated/api/default/get_queues_stats_jobs_queues_get.py +123 -0
  21. everyrow/generated/api/default/get_task_status_endpoint_tasks_task_id_status_get.py +193 -0
  22. everyrow/generated/api/default/get_user_usage_usage_get.py +123 -0
  23. everyrow/generated/api/default/healthz_healthz_get.py +127 -0
  24. everyrow/generated/api/default/import_from_google_sheets_import_post.py +170 -0
  25. everyrow/generated/api/default/interrupt_chat_task_tasks_chat_interrupt_post.py +172 -0
  26. everyrow/generated/api/default/list_api_keys_endpoint_api_keys_get.py +186 -0
  27. everyrow/generated/api/default/re_execute_task_endpoint_tasks_re_execute_post.py +192 -0
  28. everyrow/generated/api/default/revoke_api_key_endpoint_api_keys_key_id_revoke_post.py +181 -0
  29. everyrow/generated/api/default/revoke_jobs_for_task_jobs_revoke_post.py +164 -0
  30. everyrow/generated/api/default/rollback_to_message_endpoint_tasks_chat_rollback_post.py +186 -0
  31. everyrow/generated/api/default/submit_chat_task_tasks_chat_post.py +164 -0
  32. everyrow/generated/api/default/submit_task_tasks_post.py +172 -0
  33. everyrow/generated/api/default/task_resource_estimation_task_resource_estimation_post.py +319 -0
  34. everyrow/generated/api/default/trigger_workflow_execution_endpoint_workflows_trigger_post.py +166 -0
  35. everyrow/generated/api/default/whoami_whoami_get.py +127 -0
  36. everyrow/generated/client.py +268 -0
  37. everyrow/generated/errors.py +16 -0
  38. everyrow/generated/models/__init__.py +281 -0
  39. everyrow/generated/models/agent_improvement_instruction.py +69 -0
  40. everyrow/generated/models/agent_query_params.py +362 -0
  41. everyrow/generated/models/agent_query_params_system_prompt_kind_type_0.py +10 -0
  42. everyrow/generated/models/agent_task_args.py +163 -0
  43. everyrow/generated/models/agent_task_args_processing_mode.py +9 -0
  44. everyrow/generated/models/allowed_suggestions.py +8 -0
  45. everyrow/generated/models/api_key_info.py +163 -0
  46. everyrow/generated/models/artifact_changed_payload.py +89 -0
  47. everyrow/generated/models/artifact_group_record.py +330 -0
  48. everyrow/generated/models/artifact_group_record_metadata_type_0.py +46 -0
  49. everyrow/generated/models/artifact_group_record_trace_mapping_type_0.py +46 -0
  50. everyrow/generated/models/artifact_status.py +14 -0
  51. everyrow/generated/models/auto_cohort_conversation_message.py +533 -0
  52. everyrow/generated/models/aux_data.py +128 -0
  53. everyrow/generated/models/aux_data_source_bank.py +59 -0
  54. everyrow/generated/models/chat_completion_message_tool_call.py +46 -0
  55. everyrow/generated/models/chat_message_metadata.py +193 -0
  56. everyrow/generated/models/concatenate_query_params.py +46 -0
  57. everyrow/generated/models/concatenate_request.py +306 -0
  58. everyrow/generated/models/continue_reason.py +9 -0
  59. everyrow/generated/models/continue_task_request.py +133 -0
  60. everyrow/generated/models/controller_improvement_round.py +79 -0
  61. everyrow/generated/models/conversation_changed_payload.py +89 -0
  62. everyrow/generated/models/copy_artifacts_request.py +70 -0
  63. everyrow/generated/models/copy_artifacts_response.py +70 -0
  64. everyrow/generated/models/copy_workflow_request.py +62 -0
  65. everyrow/generated/models/copy_workflow_response.py +70 -0
  66. everyrow/generated/models/create_api_key_request.py +95 -0
  67. everyrow/generated/models/create_api_key_response.py +96 -0
  68. everyrow/generated/models/create_group_query_params.py +61 -0
  69. everyrow/generated/models/create_group_request.py +305 -0
  70. everyrow/generated/models/create_query_params.py +61 -0
  71. everyrow/generated/models/create_request.py +305 -0
  72. everyrow/generated/models/create_session_request.py +62 -0
  73. everyrow/generated/models/create_session_response.py +63 -0
  74. everyrow/generated/models/create_workflow_from_artifact_request.py +92 -0
  75. everyrow/generated/models/create_workflow_from_artifact_response.py +70 -0
  76. everyrow/generated/models/data_frame_method.py +18 -0
  77. everyrow/generated/models/date_cutoffs.py +145 -0
  78. everyrow/generated/models/dedupe_mode.py +9 -0
  79. everyrow/generated/models/dedupe_query_params.py +174 -0
  80. everyrow/generated/models/dedupe_request_params.py +311 -0
  81. everyrow/generated/models/deep_merge_public_params.py +143 -0
  82. everyrow/generated/models/deep_merge_request.py +313 -0
  83. everyrow/generated/models/deep_rank_public_params.py +99 -0
  84. everyrow/generated/models/deep_rank_request.py +313 -0
  85. everyrow/generated/models/deep_screen_public_params.py +122 -0
  86. everyrow/generated/models/deep_screen_request.py +313 -0
  87. everyrow/generated/models/derive_expression.py +69 -0
  88. everyrow/generated/models/derive_query_params.py +75 -0
  89. everyrow/generated/models/derive_request.py +307 -0
  90. everyrow/generated/models/document_query_tool.py +12 -0
  91. everyrow/generated/models/drop_columns_query_params.py +61 -0
  92. everyrow/generated/models/drop_columns_request.py +305 -0
  93. everyrow/generated/models/embedding_models.py +9 -0
  94. everyrow/generated/models/event_type.py +14 -0
  95. everyrow/generated/models/execution_metadata.py +146 -0
  96. everyrow/generated/models/export_request.py +75 -0
  97. everyrow/generated/models/export_request_token_data.py +46 -0
  98. everyrow/generated/models/export_to_google_sheets_export_post_response_export_to_google_sheets_export_post.py +46 -0
  99. everyrow/generated/models/filter_query_params.py +91 -0
  100. everyrow/generated/models/filter_request.py +305 -0
  101. everyrow/generated/models/flatten_query_params.py +46 -0
  102. everyrow/generated/models/flatten_request.py +305 -0
  103. everyrow/generated/models/generate_feedback_request.py +62 -0
  104. everyrow/generated/models/group_by_query_params.py +62 -0
  105. everyrow/generated/models/group_by_request.py +305 -0
  106. everyrow/generated/models/healthz_healthz_get_response_healthz_healthz_get.py +46 -0
  107. everyrow/generated/models/http_validation_error.py +79 -0
  108. everyrow/generated/models/image_chat_content_part.py +80 -0
  109. everyrow/generated/models/image_chat_content_part_image_url.py +46 -0
  110. everyrow/generated/models/import_from_google_sheets_import_post_response_import_from_google_sheets_import_post.py +46 -0
  111. everyrow/generated/models/import_request.py +83 -0
  112. everyrow/generated/models/import_request_token_data.py +46 -0
  113. everyrow/generated/models/insufficient_balance_error.py +81 -0
  114. everyrow/generated/models/join_query_params.py +73 -0
  115. everyrow/generated/models/join_request.py +305 -0
  116. everyrow/generated/models/llm_enum.py +54 -0
  117. everyrow/generated/models/map_agent_request_params.py +313 -0
  118. everyrow/generated/models/map_multi_agent_request_params.py +313 -0
  119. everyrow/generated/models/message_created_payload.py +98 -0
  120. everyrow/generated/models/multi_agent_effort_level.py +10 -0
  121. everyrow/generated/models/multi_agent_query_params.py +264 -0
  122. everyrow/generated/models/multi_modal_chat_message.py +160 -0
  123. everyrow/generated/models/multi_modal_chat_message_role.py +10 -0
  124. everyrow/generated/models/preview_metadata.py +144 -0
  125. everyrow/generated/models/processing_mode.py +10 -0
  126. everyrow/generated/models/progress_status.py +83 -0
  127. everyrow/generated/models/queue_stats.py +77 -0
  128. everyrow/generated/models/reduce_agent_request_params.py +305 -0
  129. everyrow/generated/models/reduce_multi_agent_request_params.py +305 -0
  130. everyrow/generated/models/resource_estimation_response.py +85 -0
  131. everyrow/generated/models/response_schema_type.py +9 -0
  132. everyrow/generated/models/revoke_api_key_response.py +61 -0
  133. everyrow/generated/models/rollback_to_message_request.py +62 -0
  134. everyrow/generated/models/rollback_to_message_response.py +77 -0
  135. everyrow/generated/models/session_changed_payload.py +69 -0
  136. everyrow/generated/models/simple_chat_message.py +121 -0
  137. everyrow/generated/models/simple_chat_message_role.py +10 -0
  138. everyrow/generated/models/simple_chat_message_with_tool_calls.py +156 -0
  139. everyrow/generated/models/source_database_entry.py +92 -0
  140. everyrow/generated/models/standalone_artifact_record.py +278 -0
  141. everyrow/generated/models/standalone_artifact_record_metadata_type_0.py +46 -0
  142. everyrow/generated/models/standalone_artifact_record_trace_mapping_type_0.py +46 -0
  143. everyrow/generated/models/status_count.py +71 -0
  144. everyrow/generated/models/status_count_status.py +13 -0
  145. everyrow/generated/models/submit_chat_task_body.py +497 -0
  146. everyrow/generated/models/submit_chat_task_body_selected_task_type_type_0.py +11 -0
  147. everyrow/generated/models/submit_task_body.py +745 -0
  148. everyrow/generated/models/task_changed_payload.py +105 -0
  149. everyrow/generated/models/task_effort.py +10 -0
  150. everyrow/generated/models/task_id_request.py +62 -0
  151. everyrow/generated/models/task_insert.py +725 -0
  152. everyrow/generated/models/task_insert_query_params.py +46 -0
  153. everyrow/generated/models/task_metadata.py +323 -0
  154. everyrow/generated/models/task_metadata_cols_to_rename_type_0.py +46 -0
  155. everyrow/generated/models/task_response.py +62 -0
  156. everyrow/generated/models/task_status.py +12 -0
  157. everyrow/generated/models/task_status_response.py +112 -0
  158. everyrow/generated/models/task_type.py +31 -0
  159. everyrow/generated/models/text_chat_content_part.py +74 -0
  160. everyrow/generated/models/tool_response_message.py +127 -0
  161. everyrow/generated/models/toolkit_constants.py +80 -0
  162. everyrow/generated/models/trace_changed_payload.py +94 -0
  163. everyrow/generated/models/trace_info.py +78 -0
  164. everyrow/generated/models/trigger_workflow_execution_request.py +112 -0
  165. everyrow/generated/models/trigger_workflow_execution_request_task_params.py +65 -0
  166. everyrow/generated/models/trigger_workflow_execution_request_task_params_additional_property.py +46 -0
  167. everyrow/generated/models/trigger_workflow_execution_response.py +69 -0
  168. everyrow/generated/models/upload_csv_payload.py +310 -0
  169. everyrow/generated/models/upload_csv_query_params.py +114 -0
  170. everyrow/generated/models/usage_response.py +77 -0
  171. everyrow/generated/models/validation_error.py +90 -0
  172. everyrow/generated/models/whoami_whoami_get_response_whoami_whoami_get.py +46 -0
  173. everyrow/generated/models/workflow_leaf_node_input.py +70 -0
  174. everyrow/generated/py.typed +1 -0
  175. everyrow/generated/types.py +54 -0
  176. everyrow/ops.py +672 -0
  177. everyrow/result.py +25 -0
  178. everyrow/session.py +53 -0
  179. everyrow/task.py +143 -0
  180. everyrow-0.1.0.dist-info/METADATA +238 -0
  181. everyrow-0.1.0.dist-info/RECORD +183 -0
  182. everyrow-0.1.0.dist-info/WHEEL +4 -0
  183. everyrow-0.1.0.dist-info/licenses/LICENSE.txt +21 -0
@@ -0,0 +1,127 @@
1
+ from http import HTTPStatus
2
+ from typing import Any
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.whoami_whoami_get_response_whoami_whoami_get import WhoamiWhoamiGetResponseWhoamiWhoamiGet
9
+ from ...types import Response
10
+
11
+
12
+ def _get_kwargs() -> dict[str, Any]:
13
+ _kwargs: dict[str, Any] = {
14
+ "method": "get",
15
+ "url": "/whoami",
16
+ }
17
+
18
+ return _kwargs
19
+
20
+
21
+ def _parse_response(
22
+ *, client: AuthenticatedClient | Client, response: httpx.Response
23
+ ) -> WhoamiWhoamiGetResponseWhoamiWhoamiGet | None:
24
+ if response.status_code == 200:
25
+ response_200 = WhoamiWhoamiGetResponseWhoamiWhoamiGet.from_dict(response.json())
26
+
27
+ return response_200
28
+
29
+ if client.raise_on_unexpected_status:
30
+ raise errors.UnexpectedStatus(response.status_code, response.content)
31
+ else:
32
+ return None
33
+
34
+
35
+ def _build_response(
36
+ *, client: AuthenticatedClient | Client, response: httpx.Response
37
+ ) -> Response[WhoamiWhoamiGetResponseWhoamiWhoamiGet]:
38
+ return Response(
39
+ status_code=HTTPStatus(response.status_code),
40
+ content=response.content,
41
+ headers=response.headers,
42
+ parsed=_parse_response(client=client, response=response),
43
+ )
44
+
45
+
46
+ def sync_detailed(
47
+ *,
48
+ client: AuthenticatedClient,
49
+ ) -> Response[WhoamiWhoamiGetResponseWhoamiWhoamiGet]:
50
+ """Whoami
51
+
52
+ Raises:
53
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
54
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
55
+
56
+ Returns:
57
+ Response[WhoamiWhoamiGetResponseWhoamiWhoamiGet]
58
+ """
59
+
60
+ kwargs = _get_kwargs()
61
+
62
+ response = client.get_httpx_client().request(
63
+ **kwargs,
64
+ )
65
+
66
+ return _build_response(client=client, response=response)
67
+
68
+
69
+ def sync(
70
+ *,
71
+ client: AuthenticatedClient,
72
+ ) -> WhoamiWhoamiGetResponseWhoamiWhoamiGet | None:
73
+ """Whoami
74
+
75
+ Raises:
76
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
77
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
78
+
79
+ Returns:
80
+ WhoamiWhoamiGetResponseWhoamiWhoamiGet
81
+ """
82
+
83
+ return sync_detailed(
84
+ client=client,
85
+ ).parsed
86
+
87
+
88
+ async def asyncio_detailed(
89
+ *,
90
+ client: AuthenticatedClient,
91
+ ) -> Response[WhoamiWhoamiGetResponseWhoamiWhoamiGet]:
92
+ """Whoami
93
+
94
+ Raises:
95
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
96
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
97
+
98
+ Returns:
99
+ Response[WhoamiWhoamiGetResponseWhoamiWhoamiGet]
100
+ """
101
+
102
+ kwargs = _get_kwargs()
103
+
104
+ response = await client.get_async_httpx_client().request(**kwargs)
105
+
106
+ return _build_response(client=client, response=response)
107
+
108
+
109
+ async def asyncio(
110
+ *,
111
+ client: AuthenticatedClient,
112
+ ) -> WhoamiWhoamiGetResponseWhoamiWhoamiGet | None:
113
+ """Whoami
114
+
115
+ Raises:
116
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
117
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
118
+
119
+ Returns:
120
+ WhoamiWhoamiGetResponseWhoamiWhoamiGet
121
+ """
122
+
123
+ return (
124
+ await asyncio_detailed(
125
+ client=client,
126
+ )
127
+ ).parsed
@@ -0,0 +1,268 @@
1
+ import ssl
2
+ from typing import Any
3
+
4
+ import httpx
5
+ from attrs import define, evolve, field
6
+
7
+
8
+ @define
9
+ class Client:
10
+ """A class for keeping track of data related to the API
11
+
12
+ The following are accepted as keyword arguments and will be used to construct httpx Clients internally:
13
+
14
+ ``base_url``: The base URL for the API, all requests are made to a relative path to this URL
15
+
16
+ ``cookies``: A dictionary of cookies to be sent with every request
17
+
18
+ ``headers``: A dictionary of headers to be sent with every request
19
+
20
+ ``timeout``: The maximum amount of a time a request can take. API functions will raise
21
+ httpx.TimeoutException if this is exceeded.
22
+
23
+ ``verify_ssl``: Whether or not to verify the SSL certificate of the API server. This should be True in production,
24
+ but can be set to False for testing purposes.
25
+
26
+ ``follow_redirects``: Whether or not to follow redirects. Default value is False.
27
+
28
+ ``httpx_args``: A dictionary of additional arguments to be passed to the ``httpx.Client`` and ``httpx.AsyncClient`` constructor.
29
+
30
+
31
+ Attributes:
32
+ raise_on_unexpected_status: Whether or not to raise an errors.UnexpectedStatus if the API returns a
33
+ status code that was not documented in the source OpenAPI document. Can also be provided as a keyword
34
+ argument to the constructor.
35
+ """
36
+
37
+ raise_on_unexpected_status: bool = field(default=False, kw_only=True)
38
+ _base_url: str = field(alias="base_url")
39
+ _cookies: dict[str, str] = field(factory=dict, kw_only=True, alias="cookies")
40
+ _headers: dict[str, str] = field(factory=dict, kw_only=True, alias="headers")
41
+ _timeout: httpx.Timeout | None = field(default=None, kw_only=True, alias="timeout")
42
+ _verify_ssl: str | bool | ssl.SSLContext = field(default=True, kw_only=True, alias="verify_ssl")
43
+ _follow_redirects: bool = field(default=False, kw_only=True, alias="follow_redirects")
44
+ _httpx_args: dict[str, Any] = field(factory=dict, kw_only=True, alias="httpx_args")
45
+ _client: httpx.Client | None = field(default=None, init=False)
46
+ _async_client: httpx.AsyncClient | None = field(default=None, init=False)
47
+
48
+ def with_headers(self, headers: dict[str, str]) -> "Client":
49
+ """Get a new client matching this one with additional headers"""
50
+ if self._client is not None:
51
+ self._client.headers.update(headers)
52
+ if self._async_client is not None:
53
+ self._async_client.headers.update(headers)
54
+ return evolve(self, headers={**self._headers, **headers})
55
+
56
+ def with_cookies(self, cookies: dict[str, str]) -> "Client":
57
+ """Get a new client matching this one with additional cookies"""
58
+ if self._client is not None:
59
+ self._client.cookies.update(cookies)
60
+ if self._async_client is not None:
61
+ self._async_client.cookies.update(cookies)
62
+ return evolve(self, cookies={**self._cookies, **cookies})
63
+
64
+ def with_timeout(self, timeout: httpx.Timeout) -> "Client":
65
+ """Get a new client matching this one with a new timeout configuration"""
66
+ if self._client is not None:
67
+ self._client.timeout = timeout
68
+ if self._async_client is not None:
69
+ self._async_client.timeout = timeout
70
+ return evolve(self, timeout=timeout)
71
+
72
+ def set_httpx_client(self, client: httpx.Client) -> "Client":
73
+ """Manually set the underlying httpx.Client
74
+
75
+ **NOTE**: This will override any other settings on the client, including cookies, headers, and timeout.
76
+ """
77
+ self._client = client
78
+ return self
79
+
80
+ def get_httpx_client(self) -> httpx.Client:
81
+ """Get the underlying httpx.Client, constructing a new one if not previously set"""
82
+ if self._client is None:
83
+ self._client = httpx.Client(
84
+ base_url=self._base_url,
85
+ cookies=self._cookies,
86
+ headers=self._headers,
87
+ timeout=self._timeout,
88
+ verify=self._verify_ssl,
89
+ follow_redirects=self._follow_redirects,
90
+ **self._httpx_args,
91
+ )
92
+ return self._client
93
+
94
+ def __enter__(self) -> "Client":
95
+ """Enter a context manager for self.client—you cannot enter twice (see httpx docs)"""
96
+ self.get_httpx_client().__enter__()
97
+ return self
98
+
99
+ def __exit__(self, *args: Any, **kwargs: Any) -> None:
100
+ """Exit a context manager for internal httpx.Client (see httpx docs)"""
101
+ self.get_httpx_client().__exit__(*args, **kwargs)
102
+
103
+ def set_async_httpx_client(self, async_client: httpx.AsyncClient) -> "Client":
104
+ """Manually set the underlying httpx.AsyncClient
105
+
106
+ **NOTE**: This will override any other settings on the client, including cookies, headers, and timeout.
107
+ """
108
+ self._async_client = async_client
109
+ return self
110
+
111
+ def get_async_httpx_client(self) -> httpx.AsyncClient:
112
+ """Get the underlying httpx.AsyncClient, constructing a new one if not previously set"""
113
+ if self._async_client is None:
114
+ self._async_client = httpx.AsyncClient(
115
+ base_url=self._base_url,
116
+ cookies=self._cookies,
117
+ headers=self._headers,
118
+ timeout=self._timeout,
119
+ verify=self._verify_ssl,
120
+ follow_redirects=self._follow_redirects,
121
+ **self._httpx_args,
122
+ )
123
+ return self._async_client
124
+
125
+ async def __aenter__(self) -> "Client":
126
+ """Enter a context manager for underlying httpx.AsyncClient—you cannot enter twice (see httpx docs)"""
127
+ await self.get_async_httpx_client().__aenter__()
128
+ return self
129
+
130
+ async def __aexit__(self, *args: Any, **kwargs: Any) -> None:
131
+ """Exit a context manager for underlying httpx.AsyncClient (see httpx docs)"""
132
+ await self.get_async_httpx_client().__aexit__(*args, **kwargs)
133
+
134
+
135
+ @define
136
+ class AuthenticatedClient:
137
+ """A Client which has been authenticated for use on secured endpoints
138
+
139
+ The following are accepted as keyword arguments and will be used to construct httpx Clients internally:
140
+
141
+ ``base_url``: The base URL for the API, all requests are made to a relative path to this URL
142
+
143
+ ``cookies``: A dictionary of cookies to be sent with every request
144
+
145
+ ``headers``: A dictionary of headers to be sent with every request
146
+
147
+ ``timeout``: The maximum amount of a time a request can take. API functions will raise
148
+ httpx.TimeoutException if this is exceeded.
149
+
150
+ ``verify_ssl``: Whether or not to verify the SSL certificate of the API server. This should be True in production,
151
+ but can be set to False for testing purposes.
152
+
153
+ ``follow_redirects``: Whether or not to follow redirects. Default value is False.
154
+
155
+ ``httpx_args``: A dictionary of additional arguments to be passed to the ``httpx.Client`` and ``httpx.AsyncClient`` constructor.
156
+
157
+
158
+ Attributes:
159
+ raise_on_unexpected_status: Whether or not to raise an errors.UnexpectedStatus if the API returns a
160
+ status code that was not documented in the source OpenAPI document. Can also be provided as a keyword
161
+ argument to the constructor.
162
+ token: The token to use for authentication
163
+ prefix: The prefix to use for the Authorization header
164
+ auth_header_name: The name of the Authorization header
165
+ """
166
+
167
+ raise_on_unexpected_status: bool = field(default=False, kw_only=True)
168
+ _base_url: str = field(alias="base_url")
169
+ _cookies: dict[str, str] = field(factory=dict, kw_only=True, alias="cookies")
170
+ _headers: dict[str, str] = field(factory=dict, kw_only=True, alias="headers")
171
+ _timeout: httpx.Timeout | None = field(default=None, kw_only=True, alias="timeout")
172
+ _verify_ssl: str | bool | ssl.SSLContext = field(default=True, kw_only=True, alias="verify_ssl")
173
+ _follow_redirects: bool = field(default=False, kw_only=True, alias="follow_redirects")
174
+ _httpx_args: dict[str, Any] = field(factory=dict, kw_only=True, alias="httpx_args")
175
+ _client: httpx.Client | None = field(default=None, init=False)
176
+ _async_client: httpx.AsyncClient | None = field(default=None, init=False)
177
+
178
+ token: str
179
+ prefix: str = "Bearer"
180
+ auth_header_name: str = "Authorization"
181
+
182
+ def with_headers(self, headers: dict[str, str]) -> "AuthenticatedClient":
183
+ """Get a new client matching this one with additional headers"""
184
+ if self._client is not None:
185
+ self._client.headers.update(headers)
186
+ if self._async_client is not None:
187
+ self._async_client.headers.update(headers)
188
+ return evolve(self, headers={**self._headers, **headers})
189
+
190
+ def with_cookies(self, cookies: dict[str, str]) -> "AuthenticatedClient":
191
+ """Get a new client matching this one with additional cookies"""
192
+ if self._client is not None:
193
+ self._client.cookies.update(cookies)
194
+ if self._async_client is not None:
195
+ self._async_client.cookies.update(cookies)
196
+ return evolve(self, cookies={**self._cookies, **cookies})
197
+
198
+ def with_timeout(self, timeout: httpx.Timeout) -> "AuthenticatedClient":
199
+ """Get a new client matching this one with a new timeout configuration"""
200
+ if self._client is not None:
201
+ self._client.timeout = timeout
202
+ if self._async_client is not None:
203
+ self._async_client.timeout = timeout
204
+ return evolve(self, timeout=timeout)
205
+
206
+ def set_httpx_client(self, client: httpx.Client) -> "AuthenticatedClient":
207
+ """Manually set the underlying httpx.Client
208
+
209
+ **NOTE**: This will override any other settings on the client, including cookies, headers, and timeout.
210
+ """
211
+ self._client = client
212
+ return self
213
+
214
+ def get_httpx_client(self) -> httpx.Client:
215
+ """Get the underlying httpx.Client, constructing a new one if not previously set"""
216
+ if self._client is None:
217
+ self._headers[self.auth_header_name] = f"{self.prefix} {self.token}" if self.prefix else self.token
218
+ self._client = httpx.Client(
219
+ base_url=self._base_url,
220
+ cookies=self._cookies,
221
+ headers=self._headers,
222
+ timeout=self._timeout,
223
+ verify=self._verify_ssl,
224
+ follow_redirects=self._follow_redirects,
225
+ **self._httpx_args,
226
+ )
227
+ return self._client
228
+
229
+ def __enter__(self) -> "AuthenticatedClient":
230
+ """Enter a context manager for self.client—you cannot enter twice (see httpx docs)"""
231
+ self.get_httpx_client().__enter__()
232
+ return self
233
+
234
+ def __exit__(self, *args: Any, **kwargs: Any) -> None:
235
+ """Exit a context manager for internal httpx.Client (see httpx docs)"""
236
+ self.get_httpx_client().__exit__(*args, **kwargs)
237
+
238
+ def set_async_httpx_client(self, async_client: httpx.AsyncClient) -> "AuthenticatedClient":
239
+ """Manually set the underlying httpx.AsyncClient
240
+
241
+ **NOTE**: This will override any other settings on the client, including cookies, headers, and timeout.
242
+ """
243
+ self._async_client = async_client
244
+ return self
245
+
246
+ def get_async_httpx_client(self) -> httpx.AsyncClient:
247
+ """Get the underlying httpx.AsyncClient, constructing a new one if not previously set"""
248
+ if self._async_client is None:
249
+ self._headers[self.auth_header_name] = f"{self.prefix} {self.token}" if self.prefix else self.token
250
+ self._async_client = httpx.AsyncClient(
251
+ base_url=self._base_url,
252
+ cookies=self._cookies,
253
+ headers=self._headers,
254
+ timeout=self._timeout,
255
+ verify=self._verify_ssl,
256
+ follow_redirects=self._follow_redirects,
257
+ **self._httpx_args,
258
+ )
259
+ return self._async_client
260
+
261
+ async def __aenter__(self) -> "AuthenticatedClient":
262
+ """Enter a context manager for underlying httpx.AsyncClient—you cannot enter twice (see httpx docs)"""
263
+ await self.get_async_httpx_client().__aenter__()
264
+ return self
265
+
266
+ async def __aexit__(self, *args: Any, **kwargs: Any) -> None:
267
+ """Exit a context manager for underlying httpx.AsyncClient (see httpx docs)"""
268
+ await self.get_async_httpx_client().__aexit__(*args, **kwargs)
@@ -0,0 +1,16 @@
1
+ """Contains shared errors types that can be raised from API functions"""
2
+
3
+
4
+ class UnexpectedStatus(Exception):
5
+ """Raised by api functions when the response status an undocumented status and Client.raise_on_unexpected_status is True"""
6
+
7
+ def __init__(self, status_code: int, content: bytes):
8
+ self.status_code = status_code
9
+ self.content = content
10
+
11
+ super().__init__(
12
+ f"Unexpected status code: {status_code}\n\nResponse content:\n{content.decode(errors='ignore')}"
13
+ )
14
+
15
+
16
+ __all__ = ["UnexpectedStatus"]
@@ -0,0 +1,281 @@
1
+ """Contains all the data models used in inputs/outputs"""
2
+
3
+ from .agent_improvement_instruction import AgentImprovementInstruction
4
+ from .agent_query_params import AgentQueryParams
5
+ from .agent_query_params_system_prompt_kind_type_0 import AgentQueryParamsSystemPromptKindType0
6
+ from .agent_task_args import AgentTaskArgs
7
+ from .agent_task_args_processing_mode import AgentTaskArgsProcessingMode
8
+ from .allowed_suggestions import AllowedSuggestions
9
+ from .api_key_info import APIKeyInfo
10
+ from .artifact_changed_payload import ArtifactChangedPayload
11
+ from .artifact_group_record import ArtifactGroupRecord
12
+ from .artifact_group_record_metadata_type_0 import ArtifactGroupRecordMetadataType0
13
+ from .artifact_group_record_trace_mapping_type_0 import ArtifactGroupRecordTraceMappingType0
14
+ from .artifact_status import ArtifactStatus
15
+ from .auto_cohort_conversation_message import AutoCohortConversationMessage
16
+ from .aux_data import AuxData
17
+ from .aux_data_source_bank import AuxDataSourceBank
18
+ from .chat_completion_message_tool_call import ChatCompletionMessageToolCall
19
+ from .chat_message_metadata import ChatMessageMetadata
20
+ from .concatenate_query_params import ConcatenateQueryParams
21
+ from .concatenate_request import ConcatenateRequest
22
+ from .continue_reason import ContinueReason
23
+ from .continue_task_request import ContinueTaskRequest
24
+ from .controller_improvement_round import ControllerImprovementRound
25
+ from .conversation_changed_payload import ConversationChangedPayload
26
+ from .copy_artifacts_request import CopyArtifactsRequest
27
+ from .copy_artifacts_response import CopyArtifactsResponse
28
+ from .copy_workflow_request import CopyWorkflowRequest
29
+ from .copy_workflow_response import CopyWorkflowResponse
30
+ from .create_api_key_request import CreateAPIKeyRequest
31
+ from .create_api_key_response import CreateAPIKeyResponse
32
+ from .create_group_query_params import CreateGroupQueryParams
33
+ from .create_group_request import CreateGroupRequest
34
+ from .create_query_params import CreateQueryParams
35
+ from .create_request import CreateRequest
36
+ from .create_session_request import CreateSessionRequest
37
+ from .create_session_response import CreateSessionResponse
38
+ from .create_workflow_from_artifact_request import CreateWorkflowFromArtifactRequest
39
+ from .create_workflow_from_artifact_response import CreateWorkflowFromArtifactResponse
40
+ from .data_frame_method import DataFrameMethod
41
+ from .date_cutoffs import DateCutoffs
42
+ from .dedupe_mode import DedupeMode
43
+ from .dedupe_query_params import DedupeQueryParams
44
+ from .dedupe_request_params import DedupeRequestParams
45
+ from .deep_merge_public_params import DeepMergePublicParams
46
+ from .deep_merge_request import DeepMergeRequest
47
+ from .deep_rank_public_params import DeepRankPublicParams
48
+ from .deep_rank_request import DeepRankRequest
49
+ from .deep_screen_public_params import DeepScreenPublicParams
50
+ from .deep_screen_request import DeepScreenRequest
51
+ from .derive_expression import DeriveExpression
52
+ from .derive_query_params import DeriveQueryParams
53
+ from .derive_request import DeriveRequest
54
+ from .document_query_tool import DocumentQueryTool
55
+ from .drop_columns_query_params import DropColumnsQueryParams
56
+ from .drop_columns_request import DropColumnsRequest
57
+ from .embedding_models import EmbeddingModels
58
+ from .event_type import EventType
59
+ from .execution_metadata import ExecutionMetadata
60
+ from .export_request import ExportRequest
61
+ from .export_request_token_data import ExportRequestTokenData
62
+ from .export_to_google_sheets_export_post_response_export_to_google_sheets_export_post import (
63
+ ExportToGoogleSheetsExportPostResponseExportToGoogleSheetsExportPost,
64
+ )
65
+ from .filter_query_params import FilterQueryParams
66
+ from .filter_request import FilterRequest
67
+ from .flatten_query_params import FlattenQueryParams
68
+ from .flatten_request import FlattenRequest
69
+ from .generate_feedback_request import GenerateFeedbackRequest
70
+ from .group_by_query_params import GroupByQueryParams
71
+ from .group_by_request import GroupByRequest
72
+ from .healthz_healthz_get_response_healthz_healthz_get import HealthzHealthzGetResponseHealthzHealthzGet
73
+ from .http_validation_error import HTTPValidationError
74
+ from .image_chat_content_part import ImageChatContentPart
75
+ from .image_chat_content_part_image_url import ImageChatContentPartImageUrl
76
+ from .import_from_google_sheets_import_post_response_import_from_google_sheets_import_post import (
77
+ ImportFromGoogleSheetsImportPostResponseImportFromGoogleSheetsImportPost,
78
+ )
79
+ from .import_request import ImportRequest
80
+ from .import_request_token_data import ImportRequestTokenData
81
+ from .insufficient_balance_error import InsufficientBalanceError
82
+ from .join_query_params import JoinQueryParams
83
+ from .join_request import JoinRequest
84
+ from .llm_enum import LLMEnum
85
+ from .map_agent_request_params import MapAgentRequestParams
86
+ from .map_multi_agent_request_params import MapMultiAgentRequestParams
87
+ from .message_created_payload import MessageCreatedPayload
88
+ from .multi_agent_effort_level import MultiAgentEffortLevel
89
+ from .multi_agent_query_params import MultiAgentQueryParams
90
+ from .multi_modal_chat_message import MultiModalChatMessage
91
+ from .multi_modal_chat_message_role import MultiModalChatMessageRole
92
+ from .preview_metadata import PreviewMetadata
93
+ from .processing_mode import ProcessingMode
94
+ from .progress_status import ProgressStatus
95
+ from .queue_stats import QueueStats
96
+ from .reduce_agent_request_params import ReduceAgentRequestParams
97
+ from .reduce_multi_agent_request_params import ReduceMultiAgentRequestParams
98
+ from .resource_estimation_response import ResourceEstimationResponse
99
+ from .response_schema_type import ResponseSchemaType
100
+ from .revoke_api_key_response import RevokeAPIKeyResponse
101
+ from .rollback_to_message_request import RollbackToMessageRequest
102
+ from .rollback_to_message_response import RollbackToMessageResponse
103
+ from .session_changed_payload import SessionChangedPayload
104
+ from .simple_chat_message import SimpleChatMessage
105
+ from .simple_chat_message_role import SimpleChatMessageRole
106
+ from .simple_chat_message_with_tool_calls import SimpleChatMessageWithToolCalls
107
+ from .source_database_entry import SourceDatabaseEntry
108
+ from .standalone_artifact_record import StandaloneArtifactRecord
109
+ from .standalone_artifact_record_metadata_type_0 import StandaloneArtifactRecordMetadataType0
110
+ from .standalone_artifact_record_trace_mapping_type_0 import StandaloneArtifactRecordTraceMappingType0
111
+ from .status_count import StatusCount
112
+ from .status_count_status import StatusCountStatus
113
+ from .submit_chat_task_body import SubmitChatTaskBody
114
+ from .submit_chat_task_body_selected_task_type_type_0 import SubmitChatTaskBodySelectedTaskTypeType0
115
+ from .submit_task_body import SubmitTaskBody
116
+ from .task_changed_payload import TaskChangedPayload
117
+ from .task_effort import TaskEffort
118
+ from .task_id_request import TaskIdRequest
119
+ from .task_insert import TaskInsert
120
+ from .task_insert_query_params import TaskInsertQueryParams
121
+ from .task_metadata import TaskMetadata
122
+ from .task_metadata_cols_to_rename_type_0 import TaskMetadataColsToRenameType0
123
+ from .task_response import TaskResponse
124
+ from .task_status import TaskStatus
125
+ from .task_status_response import TaskStatusResponse
126
+ from .task_type import TaskType
127
+ from .text_chat_content_part import TextChatContentPart
128
+ from .tool_response_message import ToolResponseMessage
129
+ from .toolkit_constants import ToolkitConstants
130
+ from .trace_changed_payload import TraceChangedPayload
131
+ from .trace_info import TraceInfo
132
+ from .trigger_workflow_execution_request import TriggerWorkflowExecutionRequest
133
+ from .trigger_workflow_execution_request_task_params import TriggerWorkflowExecutionRequestTaskParams
134
+ from .trigger_workflow_execution_request_task_params_additional_property import (
135
+ TriggerWorkflowExecutionRequestTaskParamsAdditionalProperty,
136
+ )
137
+ from .trigger_workflow_execution_response import TriggerWorkflowExecutionResponse
138
+ from .upload_csv_payload import UploadCsvPayload
139
+ from .upload_csv_query_params import UploadCsvQueryParams
140
+ from .usage_response import UsageResponse
141
+ from .validation_error import ValidationError
142
+ from .whoami_whoami_get_response_whoami_whoami_get import WhoamiWhoamiGetResponseWhoamiWhoamiGet
143
+ from .workflow_leaf_node_input import WorkflowLeafNodeInput
144
+
145
+ __all__ = (
146
+ "AgentImprovementInstruction",
147
+ "AgentQueryParams",
148
+ "AgentQueryParamsSystemPromptKindType0",
149
+ "AgentTaskArgs",
150
+ "AgentTaskArgsProcessingMode",
151
+ "AllowedSuggestions",
152
+ "APIKeyInfo",
153
+ "ArtifactChangedPayload",
154
+ "ArtifactGroupRecord",
155
+ "ArtifactGroupRecordMetadataType0",
156
+ "ArtifactGroupRecordTraceMappingType0",
157
+ "ArtifactStatus",
158
+ "AutoCohortConversationMessage",
159
+ "AuxData",
160
+ "AuxDataSourceBank",
161
+ "ChatCompletionMessageToolCall",
162
+ "ChatMessageMetadata",
163
+ "ConcatenateQueryParams",
164
+ "ConcatenateRequest",
165
+ "ContinueReason",
166
+ "ContinueTaskRequest",
167
+ "ControllerImprovementRound",
168
+ "ConversationChangedPayload",
169
+ "CopyArtifactsRequest",
170
+ "CopyArtifactsResponse",
171
+ "CopyWorkflowRequest",
172
+ "CopyWorkflowResponse",
173
+ "CreateAPIKeyRequest",
174
+ "CreateAPIKeyResponse",
175
+ "CreateGroupQueryParams",
176
+ "CreateGroupRequest",
177
+ "CreateQueryParams",
178
+ "CreateRequest",
179
+ "CreateSessionRequest",
180
+ "CreateSessionResponse",
181
+ "CreateWorkflowFromArtifactRequest",
182
+ "CreateWorkflowFromArtifactResponse",
183
+ "DataFrameMethod",
184
+ "DateCutoffs",
185
+ "DedupeMode",
186
+ "DedupeQueryParams",
187
+ "DedupeRequestParams",
188
+ "DeepMergePublicParams",
189
+ "DeepMergeRequest",
190
+ "DeepRankPublicParams",
191
+ "DeepRankRequest",
192
+ "DeepScreenPublicParams",
193
+ "DeepScreenRequest",
194
+ "DeriveExpression",
195
+ "DeriveQueryParams",
196
+ "DeriveRequest",
197
+ "DocumentQueryTool",
198
+ "DropColumnsQueryParams",
199
+ "DropColumnsRequest",
200
+ "EmbeddingModels",
201
+ "EventType",
202
+ "ExecutionMetadata",
203
+ "ExportRequest",
204
+ "ExportRequestTokenData",
205
+ "ExportToGoogleSheetsExportPostResponseExportToGoogleSheetsExportPost",
206
+ "FilterQueryParams",
207
+ "FilterRequest",
208
+ "FlattenQueryParams",
209
+ "FlattenRequest",
210
+ "GenerateFeedbackRequest",
211
+ "GroupByQueryParams",
212
+ "GroupByRequest",
213
+ "HealthzHealthzGetResponseHealthzHealthzGet",
214
+ "HTTPValidationError",
215
+ "ImageChatContentPart",
216
+ "ImageChatContentPartImageUrl",
217
+ "ImportFromGoogleSheetsImportPostResponseImportFromGoogleSheetsImportPost",
218
+ "ImportRequest",
219
+ "ImportRequestTokenData",
220
+ "InsufficientBalanceError",
221
+ "JoinQueryParams",
222
+ "JoinRequest",
223
+ "LLMEnum",
224
+ "MapAgentRequestParams",
225
+ "MapMultiAgentRequestParams",
226
+ "MessageCreatedPayload",
227
+ "MultiAgentEffortLevel",
228
+ "MultiAgentQueryParams",
229
+ "MultiModalChatMessage",
230
+ "MultiModalChatMessageRole",
231
+ "PreviewMetadata",
232
+ "ProcessingMode",
233
+ "ProgressStatus",
234
+ "QueueStats",
235
+ "ReduceAgentRequestParams",
236
+ "ReduceMultiAgentRequestParams",
237
+ "ResourceEstimationResponse",
238
+ "ResponseSchemaType",
239
+ "RevokeAPIKeyResponse",
240
+ "RollbackToMessageRequest",
241
+ "RollbackToMessageResponse",
242
+ "SessionChangedPayload",
243
+ "SimpleChatMessage",
244
+ "SimpleChatMessageRole",
245
+ "SimpleChatMessageWithToolCalls",
246
+ "SourceDatabaseEntry",
247
+ "StandaloneArtifactRecord",
248
+ "StandaloneArtifactRecordMetadataType0",
249
+ "StandaloneArtifactRecordTraceMappingType0",
250
+ "StatusCount",
251
+ "StatusCountStatus",
252
+ "SubmitChatTaskBody",
253
+ "SubmitChatTaskBodySelectedTaskTypeType0",
254
+ "SubmitTaskBody",
255
+ "TaskChangedPayload",
256
+ "TaskEffort",
257
+ "TaskIdRequest",
258
+ "TaskInsert",
259
+ "TaskInsertQueryParams",
260
+ "TaskMetadata",
261
+ "TaskMetadataColsToRenameType0",
262
+ "TaskResponse",
263
+ "TaskStatus",
264
+ "TaskStatusResponse",
265
+ "TaskType",
266
+ "TextChatContentPart",
267
+ "ToolkitConstants",
268
+ "ToolResponseMessage",
269
+ "TraceChangedPayload",
270
+ "TraceInfo",
271
+ "TriggerWorkflowExecutionRequest",
272
+ "TriggerWorkflowExecutionRequestTaskParams",
273
+ "TriggerWorkflowExecutionRequestTaskParamsAdditionalProperty",
274
+ "TriggerWorkflowExecutionResponse",
275
+ "UploadCsvPayload",
276
+ "UploadCsvQueryParams",
277
+ "UsageResponse",
278
+ "ValidationError",
279
+ "WhoamiWhoamiGetResponseWhoamiWhoamiGet",
280
+ "WorkflowLeafNodeInput",
281
+ )