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.
- octostar/__init__.py +9 -0
- octostar/api/__init__.py +1 -0
- octostar/api/apps/__init__.py +0 -0
- octostar/api/apps/deploy_app.py +210 -0
- octostar/api/apps/execute_app_job.py +188 -0
- octostar/api/apps/get_app_logs.py +210 -0
- octostar/api/apps/get_apps_url.py +188 -0
- octostar/api/apps/get_job_logs.py +210 -0
- octostar/api/apps/get_job_progress.py +162 -0
- octostar/api/apps/kill_job.py +160 -0
- octostar/api/apps/list_app_jobs.py +276 -0
- octostar/api/apps/list_apps.py +251 -0
- octostar/api/apps/set_job_progress.py +216 -0
- octostar/api/apps/undeploy_app.py +160 -0
- octostar/api/metadata/__init__.py +0 -0
- octostar/api/metadata/get_version.py +232 -0
- octostar/api/metadata/get_whoami.py +232 -0
- octostar/api/notifications/__init__.py +0 -0
- octostar/api/notifications/delete_stream.py +222 -0
- octostar/api/notifications/get_subscriptions.py +240 -0
- octostar/api/notifications/publish_notification.py +275 -0
- octostar/api/notifications/pull_events_from_stream.py +282 -0
- octostar/api/notifications/push_event_to_stream.py +265 -0
- octostar/api/notifications/toast.py +264 -0
- octostar/api/ontology/__init__.py +0 -0
- octostar/api/ontology/fetch_ontology_data.py +275 -0
- octostar/api/ontology/get_ontologies.py +237 -0
- octostar/api/ontology/multi_query.py +297 -0
- octostar/api/ontology/query.py +276 -0
- octostar/api/pipeline/__init__.py +1 -0
- octostar/api/pipeline/get_processing_status.py +185 -0
- octostar/api/pipeline/update_processing_status.py +164 -0
- octostar/api/search/__init__.py +0 -0
- octostar/api/search/get_annotations.py +153 -0
- octostar/api/workspace_data/__init__.py +0 -0
- octostar/api/workspace_data/delete_blob.py +212 -0
- octostar/api/workspace_data/delete_entities.py +326 -0
- octostar/api/workspace_data/download_blob.py +235 -0
- octostar/api/workspace_data/get_attachment.py +336 -0
- octostar/api/workspace_data/get_files_tree.py +397 -0
- octostar/api/workspace_data/upload_blob.py +235 -0
- octostar/api/workspace_data/upsert_entities.py +284 -0
- octostar/api/workspace_permissions/__init__.py +0 -0
- octostar/api/workspace_permissions/get_permissions.py +325 -0
- octostar/api/workspace_tags/__init__.py +0 -0
- octostar/api/workspace_tags/delete_tag_from_entities.py +141 -0
- octostar/api/workspace_tags/tag_entities.py +180 -0
- octostar/client.py +492 -0
- octostar/errors.py +50 -0
- octostar/models/__init__.py +249 -0
- octostar/models/acknowledgement.py +74 -0
- octostar/models/acknowledgement_with_data.py +82 -0
- octostar/models/app_status.py +239 -0
- octostar/models/app_status_annotations.py +66 -0
- octostar/models/app_status_labels.py +69 -0
- octostar/models/app_with_url.py +82 -0
- octostar/models/child_processing_status.py +118 -0
- octostar/models/delete_entities_response_401.py +74 -0
- octostar/models/delete_entities_response_409.py +82 -0
- octostar/models/delete_entities_response_500.py +82 -0
- octostar/models/delete_stream_response_401.py +74 -0
- octostar/models/delete_tag_from_entities_response_401.py +74 -0
- octostar/models/deploy_app_json_body.py +90 -0
- octostar/models/deploy_app_json_body_secrets.py +65 -0
- octostar/models/deploy_app_response_200.py +98 -0
- octostar/models/deploy_app_response_200_data.py +60 -0
- octostar/models/deploy_app_response_400.py +82 -0
- octostar/models/deploy_app_response_403.py +82 -0
- octostar/models/deploy_app_response_404.py +82 -0
- octostar/models/deploy_app_response_409.py +82 -0
- octostar/models/deploy_app_response_500.py +82 -0
- octostar/models/entity.py +80 -0
- octostar/models/entity_response.py +99 -0
- octostar/models/entity_response_s3_urls.py +93 -0
- octostar/models/entity_response_s3_urls_additional_property.py +105 -0
- octostar/models/entity_response_s3_urls_additional_property_fields.py +114 -0
- octostar/models/execute_app_job_json_body.py +151 -0
- octostar/models/execute_app_job_json_body_annotation.py +65 -0
- octostar/models/execute_app_job_response_401.py +74 -0
- octostar/models/fetch_ontology_data_response_200.py +60 -0
- octostar/models/fetch_ontology_data_response_401.py +74 -0
- octostar/models/fetch_ontology_data_response_500.py +82 -0
- octostar/models/get_app_logs_response_401.py +74 -0
- octostar/models/get_app_logs_response_404.py +74 -0
- octostar/models/get_app_logs_response_500.py +82 -0
- octostar/models/get_apps_url_json_body.py +76 -0
- octostar/models/get_apps_url_response_401.py +74 -0
- octostar/models/get_apps_url_response_500.py +82 -0
- octostar/models/get_attachment_response_200.py +74 -0
- octostar/models/get_attachment_response_401.py +74 -0
- octostar/models/get_files_tree_response_200.py +106 -0
- octostar/models/get_files_tree_response_200_status.py +8 -0
- octostar/models/get_files_tree_response_400.py +111 -0
- octostar/models/get_files_tree_response_400_data.py +60 -0
- octostar/models/get_files_tree_response_400_status.py +8 -0
- octostar/models/get_files_tree_response_401.py +74 -0
- octostar/models/get_files_tree_response_500.py +111 -0
- octostar/models/get_files_tree_response_500_data.py +60 -0
- octostar/models/get_files_tree_response_500_status.py +8 -0
- octostar/models/get_job_logs_response_401.py +74 -0
- octostar/models/get_job_logs_response_404.py +74 -0
- octostar/models/get_job_logs_response_500.py +82 -0
- octostar/models/get_job_progress_response_401.py +74 -0
- octostar/models/get_object_response_401.py +74 -0
- octostar/models/get_ontologies_response_401.py +74 -0
- octostar/models/get_ontologies_response_500.py +81 -0
- octostar/models/get_permissions_response_200.py +98 -0
- octostar/models/get_permissions_response_400.py +82 -0
- octostar/models/get_permissions_response_401.py +74 -0
- octostar/models/get_permissions_response_500.py +82 -0
- octostar/models/get_processing_status_response_200.py +104 -0
- octostar/models/get_processing_status_response_200_data.py +87 -0
- octostar/models/get_processing_status_response_400.py +82 -0
- octostar/models/get_processing_status_response_500.py +82 -0
- octostar/models/get_subscriptions_response_200_item.py +74 -0
- octostar/models/get_version_response_200.py +74 -0
- octostar/models/get_version_response_404.py +74 -0
- octostar/models/get_whoami_response_200.py +129 -0
- octostar/models/get_whoami_response_401.py +74 -0
- octostar/models/insert_entity.py +114 -0
- octostar/models/insert_entity_base.py +266 -0
- octostar/models/insert_entity_relationships_item.py +107 -0
- octostar/models/insert_entity_request.py +94 -0
- octostar/models/internal_server_error.py +82 -0
- octostar/models/job_execution_result.py +146 -0
- octostar/models/job_status.py +196 -0
- octostar/models/job_status_labels.py +60 -0
- octostar/models/job_with_url.py +82 -0
- octostar/models/kill_job_response_401.py +74 -0
- octostar/models/list_app_jobs_response_401.py +74 -0
- octostar/models/list_app_jobs_response_500.py +82 -0
- octostar/models/list_apps_response_401.py +74 -0
- octostar/models/list_apps_response_500.py +82 -0
- octostar/models/multi_query_json_body.py +100 -0
- octostar/models/multi_query_json_body_queries_item.py +80 -0
- octostar/models/multi_query_response_400.py +82 -0
- octostar/models/multi_query_response_401.py +74 -0
- octostar/models/not_found_error.py +74 -0
- octostar/models/octostar_event.py +96 -0
- octostar/models/octostar_event_octostar_payload.py +100 -0
- octostar/models/octostar_event_octostar_payload_level.py +11 -0
- octostar/models/os_notification.py +122 -0
- octostar/models/processing_status.py +262 -0
- octostar/models/processing_status_code.py +14 -0
- octostar/models/progress_request.py +73 -0
- octostar/models/publish_notification_response_401.py +74 -0
- octostar/models/pull_events_from_stream_response_401.py +74 -0
- octostar/models/push_event_to_stream_response_401.py +74 -0
- octostar/models/query_json_body.py +101 -0
- octostar/models/query_json_body_params.py +60 -0
- octostar/models/query_response_400.py +82 -0
- octostar/models/query_response_401.py +74 -0
- octostar/models/set_job_progress_response_401.py +74 -0
- octostar/models/string_to_value_label_map.py +99 -0
- octostar/models/string_to_value_label_map_data.py +89 -0
- octostar/models/string_to_value_label_map_data_additional_property.py +80 -0
- octostar/models/successful_get_tags.py +103 -0
- octostar/models/successful_insertion.py +98 -0
- octostar/models/tag_entities_response_401.py +74 -0
- octostar/models/toast_level.py +11 -0
- octostar/models/toast_response_401.py +74 -0
- octostar/models/undeploy_app_response_401.py +74 -0
- octostar/models/update_processing_status_response_200.py +82 -0
- octostar/models/update_processing_status_response_400.py +82 -0
- octostar/models/update_processing_status_response_500.py +82 -0
- octostar/models/upsert_entities_response_401.py +74 -0
- octostar/models/upsert_entity.py +114 -0
- octostar/models/upsert_entity_base.py +266 -0
- octostar/models/upsert_entity_relationships_item.py +107 -0
- octostar/py.typed +1 -0
- octostar/types.py +54 -0
- octostar/utils/__init__.py +15 -0
- octostar/utils/chat/__init__.py +0 -0
- octostar/utils/chat/chat.py +513 -0
- octostar/utils/chat/detokenize.py +105 -0
- octostar/utils/chat/get_default_model.py +50 -0
- octostar/utils/chat/list_models.py +91 -0
- octostar/utils/chat/tokenize.py +105 -0
- octostar/utils/commons.py +226 -0
- octostar/utils/exceptions.py +134 -0
- octostar/utils/jobs/__init__.py +0 -0
- octostar/utils/jobs/apps/__init__.py +0 -0
- octostar/utils/jobs/apps/deploy_app.py +81 -0
- octostar/utils/jobs/apps/execute_app_job.py +114 -0
- octostar/utils/jobs/apps/get_app_logs.py +113 -0
- octostar/utils/jobs/apps/get_app_secret.py +102 -0
- octostar/utils/jobs/apps/get_apps_url.py +73 -0
- octostar/utils/jobs/apps/list_app_jobs.py +62 -0
- octostar/utils/jobs/apps/list_apps.py +126 -0
- octostar/utils/jobs/apps/undeploy_app.py +48 -0
- octostar/utils/jobs/get_job_logs.py +113 -0
- octostar/utils/jobs/get_job_progress.py +76 -0
- octostar/utils/jobs/kill_job.py +47 -0
- octostar/utils/jobs/set_job_progress.py +67 -0
- octostar/utils/meta/__init__.py +0 -0
- octostar/utils/meta/get_version.py +30 -0
- octostar/utils/meta/get_whoami.py +30 -0
- octostar/utils/notifications/__init__.py +0 -0
- octostar/utils/notifications/delete_stream.py +58 -0
- octostar/utils/notifications/get_my_subscriptions.py +49 -0
- octostar/utils/notifications/publish_notification.py +73 -0
- octostar/utils/notifications/pull_event_from_stream.py +63 -0
- octostar/utils/notifications/pull_events_from_stream.py +64 -0
- octostar/utils/notifications/push_event_to_stream.py +109 -0
- octostar/utils/notifications/push_events_to_stream.py +137 -0
- octostar/utils/notifications/toast.py +92 -0
- octostar/utils/ontology/__init__.py +10 -0
- octostar/utils/ontology/fetch_ontology_data.py +141 -0
- octostar/utils/ontology/get_ontologies.py +55 -0
- octostar/utils/ontology/multiquery_ontology.py +287 -0
- octostar/utils/ontology/query_ontology.py +186 -0
- octostar/utils/pipeline/__init__.py +1 -0
- octostar/utils/pipeline/get_processing_status.py +230 -0
- octostar/utils/pipeline/update_processing_status.py +286 -0
- octostar/utils/search/__init__.py +11 -0
- octostar/utils/search/bulk_update.py +138 -0
- octostar/utils/search/count.py +117 -0
- octostar/utils/search/get_entity_annotations.py +304 -0
- octostar/utils/search/get_index_definition.py +111 -0
- octostar/utils/search/multi_search.py +129 -0
- octostar/utils/workspace/__init__.py +0 -0
- octostar/utils/workspace/delete_entities.py +247 -0
- octostar/utils/workspace/delete_entity.py +81 -0
- octostar/utils/workspace/delete_relationship.py +78 -0
- octostar/utils/workspace/delete_relationships.py +85 -0
- octostar/utils/workspace/delete_temporary_blob.py +85 -0
- octostar/utils/workspace/extract_entities.py +140 -0
- octostar/utils/workspace/get_filepath_from_item.py +85 -0
- octostar/utils/workspace/get_filepaths_from_items.py +100 -0
- octostar/utils/workspace/get_files_tree.py +102 -0
- octostar/utils/workspace/get_item_from_filepath.py +102 -0
- octostar/utils/workspace/get_items_from_filepaths.py +108 -0
- octostar/utils/workspace/linkcharts/__init__.py +0 -0
- octostar/utils/workspace/linkcharts/create_linkchart.py +241 -0
- octostar/utils/workspace/permissions/PermissionLevel.py +8 -0
- octostar/utils/workspace/permissions/__init__.py +1 -0
- octostar/utils/workspace/permissions/get_permissions.py +81 -0
- octostar/utils/workspace/read_attachment.py +284 -0
- octostar/utils/workspace/read_file.py +113 -0
- octostar/utils/workspace/read_temporary_blob.py +428 -0
- octostar/utils/workspace/saved_searches/__init__.py +0 -0
- octostar/utils/workspace/saved_searches/create_saved_search.py +183 -0
- octostar/utils/workspace/tags/__init__.py +0 -0
- octostar/utils/workspace/tags/delete_tag_from_entities.py +96 -0
- octostar/utils/workspace/tags/tag_entities.py +175 -0
- octostar/utils/workspace/upsert_entities.py +268 -0
- octostar/utils/workspace/upsert_entity.py +110 -0
- octostar/utils/workspace/upsert_relationship.py +128 -0
- octostar/utils/workspace/upsert_relationships.py +194 -0
- octostar/utils/workspace/write_attachment.py +263 -0
- octostar/utils/workspace/write_file.py +335 -0
- octostar/utils/workspace/write_temporary_blob.py +218 -0
- octostar_python_client-0.1.759.dist-info/METADATA +159 -0
- octostar_python_client-0.1.759.dist-info/RECORD +257 -0
- octostar_python_client-0.1.759.dist-info/WHEEL +5 -0
- octostar_python_client-0.1.759.dist-info/licenses/LICENSE +21 -0
- 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
|