octostar-python-client 0.1.759__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 (257) hide show
  1. octostar/__init__.py +9 -0
  2. octostar/api/__init__.py +1 -0
  3. octostar/api/apps/__init__.py +0 -0
  4. octostar/api/apps/deploy_app.py +210 -0
  5. octostar/api/apps/execute_app_job.py +188 -0
  6. octostar/api/apps/get_app_logs.py +210 -0
  7. octostar/api/apps/get_apps_url.py +188 -0
  8. octostar/api/apps/get_job_logs.py +210 -0
  9. octostar/api/apps/get_job_progress.py +162 -0
  10. octostar/api/apps/kill_job.py +160 -0
  11. octostar/api/apps/list_app_jobs.py +276 -0
  12. octostar/api/apps/list_apps.py +251 -0
  13. octostar/api/apps/set_job_progress.py +216 -0
  14. octostar/api/apps/undeploy_app.py +160 -0
  15. octostar/api/metadata/__init__.py +0 -0
  16. octostar/api/metadata/get_version.py +232 -0
  17. octostar/api/metadata/get_whoami.py +232 -0
  18. octostar/api/notifications/__init__.py +0 -0
  19. octostar/api/notifications/delete_stream.py +222 -0
  20. octostar/api/notifications/get_subscriptions.py +240 -0
  21. octostar/api/notifications/publish_notification.py +275 -0
  22. octostar/api/notifications/pull_events_from_stream.py +282 -0
  23. octostar/api/notifications/push_event_to_stream.py +265 -0
  24. octostar/api/notifications/toast.py +264 -0
  25. octostar/api/ontology/__init__.py +0 -0
  26. octostar/api/ontology/fetch_ontology_data.py +275 -0
  27. octostar/api/ontology/get_ontologies.py +237 -0
  28. octostar/api/ontology/multi_query.py +297 -0
  29. octostar/api/ontology/query.py +276 -0
  30. octostar/api/pipeline/__init__.py +1 -0
  31. octostar/api/pipeline/get_processing_status.py +185 -0
  32. octostar/api/pipeline/update_processing_status.py +164 -0
  33. octostar/api/search/__init__.py +0 -0
  34. octostar/api/search/get_annotations.py +153 -0
  35. octostar/api/workspace_data/__init__.py +0 -0
  36. octostar/api/workspace_data/delete_blob.py +212 -0
  37. octostar/api/workspace_data/delete_entities.py +326 -0
  38. octostar/api/workspace_data/download_blob.py +235 -0
  39. octostar/api/workspace_data/get_attachment.py +336 -0
  40. octostar/api/workspace_data/get_files_tree.py +397 -0
  41. octostar/api/workspace_data/upload_blob.py +235 -0
  42. octostar/api/workspace_data/upsert_entities.py +284 -0
  43. octostar/api/workspace_permissions/__init__.py +0 -0
  44. octostar/api/workspace_permissions/get_permissions.py +325 -0
  45. octostar/api/workspace_tags/__init__.py +0 -0
  46. octostar/api/workspace_tags/delete_tag_from_entities.py +141 -0
  47. octostar/api/workspace_tags/tag_entities.py +180 -0
  48. octostar/client.py +492 -0
  49. octostar/errors.py +50 -0
  50. octostar/models/__init__.py +249 -0
  51. octostar/models/acknowledgement.py +74 -0
  52. octostar/models/acknowledgement_with_data.py +82 -0
  53. octostar/models/app_status.py +239 -0
  54. octostar/models/app_status_annotations.py +66 -0
  55. octostar/models/app_status_labels.py +69 -0
  56. octostar/models/app_with_url.py +82 -0
  57. octostar/models/child_processing_status.py +118 -0
  58. octostar/models/delete_entities_response_401.py +74 -0
  59. octostar/models/delete_entities_response_409.py +82 -0
  60. octostar/models/delete_entities_response_500.py +82 -0
  61. octostar/models/delete_stream_response_401.py +74 -0
  62. octostar/models/delete_tag_from_entities_response_401.py +74 -0
  63. octostar/models/deploy_app_json_body.py +90 -0
  64. octostar/models/deploy_app_json_body_secrets.py +65 -0
  65. octostar/models/deploy_app_response_200.py +98 -0
  66. octostar/models/deploy_app_response_200_data.py +60 -0
  67. octostar/models/deploy_app_response_400.py +82 -0
  68. octostar/models/deploy_app_response_403.py +82 -0
  69. octostar/models/deploy_app_response_404.py +82 -0
  70. octostar/models/deploy_app_response_409.py +82 -0
  71. octostar/models/deploy_app_response_500.py +82 -0
  72. octostar/models/entity.py +80 -0
  73. octostar/models/entity_response.py +99 -0
  74. octostar/models/entity_response_s3_urls.py +93 -0
  75. octostar/models/entity_response_s3_urls_additional_property.py +105 -0
  76. octostar/models/entity_response_s3_urls_additional_property_fields.py +114 -0
  77. octostar/models/execute_app_job_json_body.py +151 -0
  78. octostar/models/execute_app_job_json_body_annotation.py +65 -0
  79. octostar/models/execute_app_job_response_401.py +74 -0
  80. octostar/models/fetch_ontology_data_response_200.py +60 -0
  81. octostar/models/fetch_ontology_data_response_401.py +74 -0
  82. octostar/models/fetch_ontology_data_response_500.py +82 -0
  83. octostar/models/get_app_logs_response_401.py +74 -0
  84. octostar/models/get_app_logs_response_404.py +74 -0
  85. octostar/models/get_app_logs_response_500.py +82 -0
  86. octostar/models/get_apps_url_json_body.py +76 -0
  87. octostar/models/get_apps_url_response_401.py +74 -0
  88. octostar/models/get_apps_url_response_500.py +82 -0
  89. octostar/models/get_attachment_response_200.py +74 -0
  90. octostar/models/get_attachment_response_401.py +74 -0
  91. octostar/models/get_files_tree_response_200.py +106 -0
  92. octostar/models/get_files_tree_response_200_status.py +8 -0
  93. octostar/models/get_files_tree_response_400.py +111 -0
  94. octostar/models/get_files_tree_response_400_data.py +60 -0
  95. octostar/models/get_files_tree_response_400_status.py +8 -0
  96. octostar/models/get_files_tree_response_401.py +74 -0
  97. octostar/models/get_files_tree_response_500.py +111 -0
  98. octostar/models/get_files_tree_response_500_data.py +60 -0
  99. octostar/models/get_files_tree_response_500_status.py +8 -0
  100. octostar/models/get_job_logs_response_401.py +74 -0
  101. octostar/models/get_job_logs_response_404.py +74 -0
  102. octostar/models/get_job_logs_response_500.py +82 -0
  103. octostar/models/get_job_progress_response_401.py +74 -0
  104. octostar/models/get_object_response_401.py +74 -0
  105. octostar/models/get_ontologies_response_401.py +74 -0
  106. octostar/models/get_ontologies_response_500.py +81 -0
  107. octostar/models/get_permissions_response_200.py +98 -0
  108. octostar/models/get_permissions_response_400.py +82 -0
  109. octostar/models/get_permissions_response_401.py +74 -0
  110. octostar/models/get_permissions_response_500.py +82 -0
  111. octostar/models/get_processing_status_response_200.py +104 -0
  112. octostar/models/get_processing_status_response_200_data.py +87 -0
  113. octostar/models/get_processing_status_response_400.py +82 -0
  114. octostar/models/get_processing_status_response_500.py +82 -0
  115. octostar/models/get_subscriptions_response_200_item.py +74 -0
  116. octostar/models/get_version_response_200.py +74 -0
  117. octostar/models/get_version_response_404.py +74 -0
  118. octostar/models/get_whoami_response_200.py +129 -0
  119. octostar/models/get_whoami_response_401.py +74 -0
  120. octostar/models/insert_entity.py +114 -0
  121. octostar/models/insert_entity_base.py +266 -0
  122. octostar/models/insert_entity_relationships_item.py +107 -0
  123. octostar/models/insert_entity_request.py +94 -0
  124. octostar/models/internal_server_error.py +82 -0
  125. octostar/models/job_execution_result.py +146 -0
  126. octostar/models/job_status.py +196 -0
  127. octostar/models/job_status_labels.py +60 -0
  128. octostar/models/job_with_url.py +82 -0
  129. octostar/models/kill_job_response_401.py +74 -0
  130. octostar/models/list_app_jobs_response_401.py +74 -0
  131. octostar/models/list_app_jobs_response_500.py +82 -0
  132. octostar/models/list_apps_response_401.py +74 -0
  133. octostar/models/list_apps_response_500.py +82 -0
  134. octostar/models/multi_query_json_body.py +100 -0
  135. octostar/models/multi_query_json_body_queries_item.py +80 -0
  136. octostar/models/multi_query_response_400.py +82 -0
  137. octostar/models/multi_query_response_401.py +74 -0
  138. octostar/models/not_found_error.py +74 -0
  139. octostar/models/octostar_event.py +96 -0
  140. octostar/models/octostar_event_octostar_payload.py +100 -0
  141. octostar/models/octostar_event_octostar_payload_level.py +11 -0
  142. octostar/models/os_notification.py +122 -0
  143. octostar/models/processing_status.py +262 -0
  144. octostar/models/processing_status_code.py +14 -0
  145. octostar/models/progress_request.py +73 -0
  146. octostar/models/publish_notification_response_401.py +74 -0
  147. octostar/models/pull_events_from_stream_response_401.py +74 -0
  148. octostar/models/push_event_to_stream_response_401.py +74 -0
  149. octostar/models/query_json_body.py +101 -0
  150. octostar/models/query_json_body_params.py +60 -0
  151. octostar/models/query_response_400.py +82 -0
  152. octostar/models/query_response_401.py +74 -0
  153. octostar/models/set_job_progress_response_401.py +74 -0
  154. octostar/models/string_to_value_label_map.py +99 -0
  155. octostar/models/string_to_value_label_map_data.py +89 -0
  156. octostar/models/string_to_value_label_map_data_additional_property.py +80 -0
  157. octostar/models/successful_get_tags.py +103 -0
  158. octostar/models/successful_insertion.py +98 -0
  159. octostar/models/tag_entities_response_401.py +74 -0
  160. octostar/models/toast_level.py +11 -0
  161. octostar/models/toast_response_401.py +74 -0
  162. octostar/models/undeploy_app_response_401.py +74 -0
  163. octostar/models/update_processing_status_response_200.py +82 -0
  164. octostar/models/update_processing_status_response_400.py +82 -0
  165. octostar/models/update_processing_status_response_500.py +82 -0
  166. octostar/models/upsert_entities_response_401.py +74 -0
  167. octostar/models/upsert_entity.py +114 -0
  168. octostar/models/upsert_entity_base.py +266 -0
  169. octostar/models/upsert_entity_relationships_item.py +107 -0
  170. octostar/py.typed +1 -0
  171. octostar/types.py +54 -0
  172. octostar/utils/__init__.py +15 -0
  173. octostar/utils/chat/__init__.py +0 -0
  174. octostar/utils/chat/chat.py +513 -0
  175. octostar/utils/chat/detokenize.py +105 -0
  176. octostar/utils/chat/get_default_model.py +50 -0
  177. octostar/utils/chat/list_models.py +91 -0
  178. octostar/utils/chat/tokenize.py +105 -0
  179. octostar/utils/commons.py +226 -0
  180. octostar/utils/exceptions.py +134 -0
  181. octostar/utils/jobs/__init__.py +0 -0
  182. octostar/utils/jobs/apps/__init__.py +0 -0
  183. octostar/utils/jobs/apps/deploy_app.py +81 -0
  184. octostar/utils/jobs/apps/execute_app_job.py +114 -0
  185. octostar/utils/jobs/apps/get_app_logs.py +113 -0
  186. octostar/utils/jobs/apps/get_app_secret.py +102 -0
  187. octostar/utils/jobs/apps/get_apps_url.py +73 -0
  188. octostar/utils/jobs/apps/list_app_jobs.py +62 -0
  189. octostar/utils/jobs/apps/list_apps.py +126 -0
  190. octostar/utils/jobs/apps/undeploy_app.py +48 -0
  191. octostar/utils/jobs/get_job_logs.py +113 -0
  192. octostar/utils/jobs/get_job_progress.py +76 -0
  193. octostar/utils/jobs/kill_job.py +47 -0
  194. octostar/utils/jobs/set_job_progress.py +67 -0
  195. octostar/utils/meta/__init__.py +0 -0
  196. octostar/utils/meta/get_version.py +30 -0
  197. octostar/utils/meta/get_whoami.py +30 -0
  198. octostar/utils/notifications/__init__.py +0 -0
  199. octostar/utils/notifications/delete_stream.py +58 -0
  200. octostar/utils/notifications/get_my_subscriptions.py +49 -0
  201. octostar/utils/notifications/publish_notification.py +73 -0
  202. octostar/utils/notifications/pull_event_from_stream.py +63 -0
  203. octostar/utils/notifications/pull_events_from_stream.py +64 -0
  204. octostar/utils/notifications/push_event_to_stream.py +109 -0
  205. octostar/utils/notifications/push_events_to_stream.py +137 -0
  206. octostar/utils/notifications/toast.py +92 -0
  207. octostar/utils/ontology/__init__.py +10 -0
  208. octostar/utils/ontology/fetch_ontology_data.py +141 -0
  209. octostar/utils/ontology/get_ontologies.py +55 -0
  210. octostar/utils/ontology/multiquery_ontology.py +287 -0
  211. octostar/utils/ontology/query_ontology.py +186 -0
  212. octostar/utils/pipeline/__init__.py +1 -0
  213. octostar/utils/pipeline/get_processing_status.py +230 -0
  214. octostar/utils/pipeline/update_processing_status.py +286 -0
  215. octostar/utils/search/__init__.py +11 -0
  216. octostar/utils/search/bulk_update.py +138 -0
  217. octostar/utils/search/count.py +117 -0
  218. octostar/utils/search/get_entity_annotations.py +304 -0
  219. octostar/utils/search/get_index_definition.py +111 -0
  220. octostar/utils/search/multi_search.py +129 -0
  221. octostar/utils/workspace/__init__.py +0 -0
  222. octostar/utils/workspace/delete_entities.py +247 -0
  223. octostar/utils/workspace/delete_entity.py +81 -0
  224. octostar/utils/workspace/delete_relationship.py +78 -0
  225. octostar/utils/workspace/delete_relationships.py +85 -0
  226. octostar/utils/workspace/delete_temporary_blob.py +85 -0
  227. octostar/utils/workspace/extract_entities.py +140 -0
  228. octostar/utils/workspace/get_filepath_from_item.py +85 -0
  229. octostar/utils/workspace/get_filepaths_from_items.py +100 -0
  230. octostar/utils/workspace/get_files_tree.py +102 -0
  231. octostar/utils/workspace/get_item_from_filepath.py +102 -0
  232. octostar/utils/workspace/get_items_from_filepaths.py +108 -0
  233. octostar/utils/workspace/linkcharts/__init__.py +0 -0
  234. octostar/utils/workspace/linkcharts/create_linkchart.py +241 -0
  235. octostar/utils/workspace/permissions/PermissionLevel.py +8 -0
  236. octostar/utils/workspace/permissions/__init__.py +1 -0
  237. octostar/utils/workspace/permissions/get_permissions.py +81 -0
  238. octostar/utils/workspace/read_attachment.py +284 -0
  239. octostar/utils/workspace/read_file.py +113 -0
  240. octostar/utils/workspace/read_temporary_blob.py +428 -0
  241. octostar/utils/workspace/saved_searches/__init__.py +0 -0
  242. octostar/utils/workspace/saved_searches/create_saved_search.py +183 -0
  243. octostar/utils/workspace/tags/__init__.py +0 -0
  244. octostar/utils/workspace/tags/delete_tag_from_entities.py +96 -0
  245. octostar/utils/workspace/tags/tag_entities.py +175 -0
  246. octostar/utils/workspace/upsert_entities.py +268 -0
  247. octostar/utils/workspace/upsert_entity.py +110 -0
  248. octostar/utils/workspace/upsert_relationship.py +128 -0
  249. octostar/utils/workspace/upsert_relationships.py +194 -0
  250. octostar/utils/workspace/write_attachment.py +263 -0
  251. octostar/utils/workspace/write_file.py +335 -0
  252. octostar/utils/workspace/write_temporary_blob.py +218 -0
  253. octostar_python_client-0.1.759.dist-info/METADATA +159 -0
  254. octostar_python_client-0.1.759.dist-info/RECORD +257 -0
  255. octostar_python_client-0.1.759.dist-info/WHEEL +5 -0
  256. octostar_python_client-0.1.759.dist-info/licenses/LICENSE +21 -0
  257. octostar_python_client-0.1.759.dist-info/top_level.txt +1 -0
@@ -0,0 +1,185 @@
1
+ """Get processing status endpoint - POST /api/v1/pipeline/processing-status/get
2
+
3
+ Requires x-ontology header to specify which ontology/index to query.
4
+ """
5
+
6
+ from http import HTTPStatus
7
+ from typing import Any, Dict, List, Optional
8
+ from warnings import warn
9
+
10
+ import httpx
11
+
12
+ from ...client import Client, get_default_client
13
+ from ...types import Response
14
+ from ... import errors
15
+
16
+
17
+ client_missing_msg = """No client was passed to this function. The default admin client will be used, but this is deprecated and will be removed soon.
18
+ Please create a client using octostar.client.make_client() and run the function via client.execute()."""
19
+
20
+
21
+ def _get_kwargs(
22
+ *,
23
+ client: Client = None,
24
+ entity_ids: List[str],
25
+ ) -> Dict[str, Any]:
26
+ if not client:
27
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
28
+ client = get_default_client()
29
+
30
+ base_url = client.get_base_url_v1()
31
+ url = "{}/api/v1/pipeline/processing-status/get".format(base_url)
32
+
33
+ headers: Dict[str, str] = client.get_headers()
34
+ cookies: Dict[str, Any] = client.get_cookies()
35
+
36
+ json_body: Dict[str, Any] = {
37
+ "entity_ids": entity_ids,
38
+ }
39
+
40
+ return {
41
+ "method": "post",
42
+ "url": url,
43
+ "headers": headers,
44
+ "cookies": cookies,
45
+ "timeout": client.get_timeout(),
46
+ "follow_redirects": client.follow_redirects,
47
+ "json": json_body,
48
+ }
49
+
50
+
51
+ def _parse_response(
52
+ *, client: Client = None, response: httpx.Response
53
+ ) -> Optional[Dict[str, Any]]:
54
+ if not client:
55
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
56
+ client = get_default_client()
57
+
58
+ if response.status_code == HTTPStatus.OK:
59
+ return response.json()
60
+ if client.raise_on_unexpected_status:
61
+ raise errors.UnexpectedStatus(response.status_code, response.content)
62
+ return None
63
+
64
+
65
+ def _build_response(
66
+ *, client: Client = None, response: httpx.Response
67
+ ) -> Response[Dict[str, Any]]:
68
+ if not client:
69
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
70
+ client = get_default_client()
71
+
72
+ return Response(
73
+ status_code=HTTPStatus(response.status_code),
74
+ content=response.content,
75
+ headers=response.headers,
76
+ parsed=_parse_response(client=client, response=response),
77
+ )
78
+
79
+
80
+ def sync_detailed(
81
+ *,
82
+ client: Client = None,
83
+ entity_ids: List[str],
84
+ ) -> Response[Dict[str, Any]]:
85
+ """Get processing status for entities.
86
+
87
+ Note: Requires x-ontology header to be set on the client.
88
+
89
+ The persisted recursive rollup is always returned in-line as
90
+ ``detailed_status`` per entity (when the debounced rollup job has
91
+ written it). There is no separate "ask for recursive numbers" knob.
92
+
93
+ Args:
94
+ client: The client to use for the request (must have x-ontology header set).
95
+ entity_ids: List of entity IDs to retrieve status for.
96
+
97
+ Returns:
98
+ Response with status and data dict mapping entity_id -> status or None.
99
+ """
100
+ if not client:
101
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
102
+ client = get_default_client()
103
+
104
+ kwargs = _get_kwargs(client=client, entity_ids=entity_ids)
105
+ response = httpx.request(verify=client.verify_ssl, **kwargs)
106
+
107
+ return _build_response(client=client, response=response)
108
+
109
+
110
+ def sync(
111
+ *,
112
+ client: Client = None,
113
+ entity_ids: List[str],
114
+ ) -> Optional[Dict[str, Any]]:
115
+ """Get processing status for entities.
116
+
117
+ Note: Requires x-ontology header to be set on the client.
118
+
119
+ The persisted recursive rollup is always returned in-line as
120
+ ``detailed_status`` per entity (when the debounced rollup job has
121
+ written it). There is no separate "ask for recursive numbers" knob.
122
+
123
+ Args:
124
+ client: The client to use for the request (must have x-ontology header set).
125
+ entity_ids: List of entity IDs to retrieve status for.
126
+
127
+ Returns:
128
+ Response dict with status and data.
129
+ """
130
+ return sync_detailed(client=client, entity_ids=entity_ids).parsed
131
+
132
+
133
+ async def asyncio_detailed(
134
+ *,
135
+ client: Client = None,
136
+ entity_ids: List[str],
137
+ ) -> Response[Dict[str, Any]]:
138
+ """Get processing status for entities (async).
139
+
140
+ Note: Requires x-ontology header to be set on the client.
141
+
142
+ The persisted recursive rollup is always returned in-line as
143
+ ``detailed_status`` per entity (when the debounced rollup job has
144
+ written it). There is no separate "ask for recursive numbers" knob.
145
+
146
+ Args:
147
+ client: The client to use for the request (must have x-ontology header set).
148
+ entity_ids: List of entity IDs to retrieve status for.
149
+
150
+ Returns:
151
+ Response with status and data dict.
152
+ """
153
+ if not client:
154
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
155
+ client = get_default_client()
156
+
157
+ kwargs = _get_kwargs(client=client, entity_ids=entity_ids)
158
+
159
+ async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
160
+ response = await _client.request(**kwargs)
161
+
162
+ return _build_response(client=client, response=response)
163
+
164
+
165
+ async def asyncio(
166
+ *,
167
+ client: Client = None,
168
+ entity_ids: List[str],
169
+ ) -> Optional[Dict[str, Any]]:
170
+ """Get processing status for entities (async).
171
+
172
+ Note: Requires x-ontology header to be set on the client.
173
+
174
+ The persisted recursive rollup is always returned in-line as
175
+ ``detailed_status`` per entity (when the debounced rollup job has
176
+ written it). There is no separate "ask for recursive numbers" knob.
177
+
178
+ Args:
179
+ client: The client to use for the request (must have x-ontology header set).
180
+ entity_ids: List of entity IDs to retrieve status for.
181
+
182
+ Returns:
183
+ Response dict with status and data.
184
+ """
185
+ return (await asyncio_detailed(client=client, entity_ids=entity_ids)).parsed
@@ -0,0 +1,164 @@
1
+ """Update processing status endpoint - POST /api/v1/pipeline/processing-status
2
+
3
+ Requires x-ontology header to specify which ontology/index to update.
4
+ """
5
+
6
+ from http import HTTPStatus
7
+ from typing import Any, Dict, List, Optional, Union
8
+ from warnings import warn
9
+
10
+ import httpx
11
+
12
+ from ...client import Client, get_default_client
13
+ from ...types import Response, UNSET, Unset
14
+ from ... import errors
15
+
16
+
17
+ client_missing_msg = """No client was passed to this function. The default admin client will be used, but this is deprecated and will be removed soon.
18
+ Please create a client using octostar.client.make_client() and run the function via client.execute()."""
19
+
20
+
21
+ def _get_kwargs(
22
+ *,
23
+ client: Client = None,
24
+ json_body: List[Dict[str, Any]],
25
+ ) -> Dict[str, Any]:
26
+ if not client:
27
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
28
+ client = get_default_client()
29
+
30
+ base_url = client.get_base_url_v1()
31
+ url = "{}/api/v1/pipeline/processing-status".format(base_url)
32
+
33
+ headers: Dict[str, str] = client.get_headers()
34
+ cookies: Dict[str, Any] = client.get_cookies()
35
+
36
+ return {
37
+ "method": "post",
38
+ "url": url,
39
+ "headers": headers,
40
+ "cookies": cookies,
41
+ "timeout": client.get_timeout(),
42
+ "follow_redirects": client.follow_redirects,
43
+ "json": json_body,
44
+ }
45
+
46
+
47
+ def _parse_response(
48
+ *, client: Client = None, response: httpx.Response
49
+ ) -> Optional[Dict[str, Any]]:
50
+ if not client:
51
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
52
+ client = get_default_client()
53
+
54
+ if response.status_code == HTTPStatus.OK:
55
+ return response.json()
56
+ if client.raise_on_unexpected_status:
57
+ raise errors.UnexpectedStatus(response.status_code, response.content)
58
+ return None
59
+
60
+
61
+ def _build_response(
62
+ *, client: Client = None, response: httpx.Response
63
+ ) -> Response[Dict[str, Any]]:
64
+ if not client:
65
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
66
+ client = get_default_client()
67
+
68
+ return Response(
69
+ status_code=HTTPStatus(response.status_code),
70
+ content=response.content,
71
+ headers=response.headers,
72
+ parsed=_parse_response(client=client, response=response),
73
+ )
74
+
75
+
76
+ def sync_detailed(
77
+ *,
78
+ client: Client = None,
79
+ json_body: List[Dict[str, Any]],
80
+ ) -> Response[Dict[str, Any]]:
81
+ """Update processing status for entities.
82
+
83
+ Note: Requires x-ontology header to be set on the client.
84
+
85
+ Args:
86
+ client: The client to use for the request (must have x-ontology header set).
87
+ json_body: List of processing status updates. Each must contain:
88
+ - entity_id (str): The entity ID (required)
89
+ - status_code (str, optional): RUNNING, COMPLETED, FAILED, STALE, UNKNOWN
90
+ - entity_type (str, optional): The entity type
91
+ - reason (str, optional): Reason for the status
92
+ - timeout (int, optional): Redis cache TTL in seconds
93
+
94
+ Returns:
95
+ Response with status and count of updated entities.
96
+ """
97
+ if not client:
98
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
99
+ client = get_default_client()
100
+
101
+ kwargs = _get_kwargs(client=client, json_body=json_body)
102
+ response = httpx.request(verify=client.verify_ssl, **kwargs)
103
+
104
+ return _build_response(client=client, response=response)
105
+
106
+
107
+ def sync(
108
+ *,
109
+ client: Client = None,
110
+ json_body: List[Dict[str, Any]],
111
+ ) -> Optional[Dict[str, Any]]:
112
+ """Update processing status for entities.
113
+
114
+ Args:
115
+ client: The client to use for the request.
116
+ json_body: List of processing status updates.
117
+
118
+ Returns:
119
+ Response dict with status, message, and count.
120
+ """
121
+ return sync_detailed(client=client, json_body=json_body).parsed
122
+
123
+
124
+ async def asyncio_detailed(
125
+ *,
126
+ client: Client = None,
127
+ json_body: List[Dict[str, Any]],
128
+ ) -> Response[Dict[str, Any]]:
129
+ """Update processing status for entities (async).
130
+
131
+ Args:
132
+ client: The client to use for the request.
133
+ json_body: List of processing status updates.
134
+
135
+ Returns:
136
+ Response with status and count of updated entities.
137
+ """
138
+ if not client:
139
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
140
+ client = get_default_client()
141
+
142
+ kwargs = _get_kwargs(client=client, json_body=json_body)
143
+
144
+ async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
145
+ response = await _client.request(**kwargs)
146
+
147
+ return _build_response(client=client, response=response)
148
+
149
+
150
+ async def asyncio(
151
+ *,
152
+ client: Client = None,
153
+ json_body: List[Dict[str, Any]],
154
+ ) -> Optional[Dict[str, Any]]:
155
+ """Update processing status for entities (async).
156
+
157
+ Args:
158
+ client: The client to use for the request.
159
+ json_body: List of processing status updates.
160
+
161
+ Returns:
162
+ Response dict with status, message, and count.
163
+ """
164
+ return (await asyncio_detailed(client=client, json_body=json_body)).parsed
File without changes
@@ -0,0 +1,153 @@
1
+ """SDK endpoint module for POST /v1/search_api/{ontology}/annotations."""
2
+
3
+ from http import HTTPStatus
4
+ from typing import Any, Dict, List, Optional
5
+
6
+ import httpx
7
+
8
+ from ...client import Client, get_default_client
9
+ from ...types import Response
10
+ from ... import errors
11
+
12
+
13
+ def _get_kwargs(
14
+ *,
15
+ client: Client,
16
+ json_body: Dict[str, Any],
17
+ ontology: str,
18
+ ) -> Dict[str, Any]:
19
+ base_url = client.get_base_url_v1()
20
+ url = f"{base_url}/api/v1/search_api/{ontology}/annotations"
21
+
22
+ headers: Dict[str, str] = client.get_headers()
23
+ headers["Content-Type"] = "application/json"
24
+
25
+ return {
26
+ "method": "post",
27
+ "url": url,
28
+ "headers": headers,
29
+ "cookies": client.get_cookies(),
30
+ "timeout": client.get_timeout(),
31
+ "follow_redirects": client.follow_redirects,
32
+ "json": json_body,
33
+ }
34
+
35
+
36
+ def _parse_response(
37
+ *, client: Client, response: httpx.Response
38
+ ) -> Optional[Dict[str, Any]]:
39
+ if response.status_code == HTTPStatus.OK:
40
+ return response.json()
41
+ if client.raise_on_unexpected_status:
42
+ raise errors.UnexpectedStatus(response.status_code, response.content)
43
+ else:
44
+ return None
45
+
46
+
47
+ def _build_response(
48
+ *, client: Client, response: httpx.Response
49
+ ) -> Response[Dict[str, Any]]:
50
+ return Response(
51
+ status_code=HTTPStatus(response.status_code),
52
+ content=response.content,
53
+ headers=response.headers,
54
+ parsed=_parse_response(client=client, response=response),
55
+ )
56
+
57
+
58
+ def _build_body(
59
+ os_entity_uids: List[str],
60
+ fields: Optional[List[str]],
61
+ recurse: bool,
62
+ merge: bool,
63
+ max_fragments: Optional[int],
64
+ fragment_filter: Optional[Dict[str, Any]],
65
+ include_record: bool = False,
66
+ collapse: bool = True,
67
+ merge_kwargs: Optional[Dict[str, Any]] = None,
68
+ ) -> Dict[str, Any]:
69
+ body: Dict[str, Any] = {
70
+ "os_entity_uids": os_entity_uids,
71
+ "recurse": recurse,
72
+ "merge": merge,
73
+ "max_fragments": max_fragments,
74
+ }
75
+ if fields is not None:
76
+ body["fields"] = fields
77
+ if fragment_filter is not None:
78
+ body["fragment_filter"] = fragment_filter
79
+ if include_record:
80
+ body["include_record"] = True
81
+ if not collapse:
82
+ body["collapse"] = False
83
+ if merge_kwargs:
84
+ body["merge_kwargs"] = dict(merge_kwargs)
85
+ return body
86
+
87
+
88
+ def sync_detailed(
89
+ *,
90
+ client: Client,
91
+ os_entity_uids: List[str],
92
+ fields: Optional[List[str]] = None,
93
+ recurse: bool = True,
94
+ merge: bool = True,
95
+ max_fragments: Optional[int] = 10_000,
96
+ fragment_filter: Optional[Dict[str, Any]] = None,
97
+ include_record: bool = False,
98
+ collapse: bool = True,
99
+ merge_kwargs: Optional[Dict[str, Any]] = None,
100
+ timeout: Optional[float] = 30.0,
101
+ ) -> Response[Dict[str, Any]]:
102
+ json_body = _build_body(
103
+ os_entity_uids,
104
+ fields,
105
+ recurse,
106
+ merge,
107
+ max_fragments,
108
+ fragment_filter,
109
+ include_record,
110
+ collapse,
111
+ merge_kwargs,
112
+ )
113
+ kwargs = _get_kwargs(client=client, json_body=json_body, ontology=client.ontology)
114
+ if timeout is not None:
115
+ kwargs["timeout"] = timeout
116
+
117
+ response = httpx.request(verify=client.verify_ssl, **kwargs)
118
+ return _build_response(client=client, response=response)
119
+
120
+
121
+ async def asyncio_detailed(
122
+ *,
123
+ client: Client,
124
+ os_entity_uids: List[str],
125
+ fields: Optional[List[str]] = None,
126
+ recurse: bool = True,
127
+ merge: bool = True,
128
+ max_fragments: Optional[int] = 10_000,
129
+ fragment_filter: Optional[Dict[str, Any]] = None,
130
+ include_record: bool = False,
131
+ collapse: bool = True,
132
+ merge_kwargs: Optional[Dict[str, Any]] = None,
133
+ timeout: Optional[float] = 30.0,
134
+ ) -> Response[Dict[str, Any]]:
135
+ json_body = _build_body(
136
+ os_entity_uids,
137
+ fields,
138
+ recurse,
139
+ merge,
140
+ max_fragments,
141
+ fragment_filter,
142
+ include_record,
143
+ collapse,
144
+ merge_kwargs,
145
+ )
146
+ kwargs = _get_kwargs(client=client, json_body=json_body, ontology=client.ontology)
147
+ if timeout is not None:
148
+ kwargs["timeout"] = timeout
149
+
150
+ async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
151
+ response = await _client.request(**kwargs)
152
+
153
+ return _build_response(client=client, response=response)
File without changes