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,216 @@
1
+ """Set job progress via the FastAPI backend."""
2
+
3
+ from http import HTTPStatus
4
+ from typing import Any, Dict, Optional
5
+ from warnings import warn
6
+
7
+ import httpx
8
+
9
+ from ...client import Client, get_default_client
10
+ from ...types import Response
11
+ from ... import errors
12
+ from ...models.progress_request import ProgressRequest
13
+
14
+
15
+ 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.
16
+ Please create a client using octostar.client.make_client() and run the function via client.execute()."""
17
+
18
+
19
+ def _parse_progress_string(progress_string: str) -> tuple[float, str]:
20
+ """Parse a progress string into a float value and message.
21
+
22
+ Handles formats like:
23
+ - "0.5" -> (0.5, "0.5")
24
+ - "50%" -> (0.5, "50%")
25
+ - "50" -> (0.5, "50")
26
+ - "Processing: 75%" -> (0.75, "Processing: 75%")
27
+
28
+ Returns:
29
+ Tuple of (progress_float, message_string)
30
+ """
31
+ import re
32
+
33
+ # Try to extract a percentage from the string
34
+ percent_match = re.search(r"(\d+(?:\.\d+)?)\s*%", progress_string)
35
+ if percent_match:
36
+ value = float(percent_match.group(1)) / 100.0
37
+ return (min(1.0, max(0.0, value)), progress_string)
38
+
39
+ # Try to parse as a plain float
40
+ try:
41
+ value = float(progress_string.strip())
42
+ # If > 1, assume it's a percentage
43
+ if value > 1.0:
44
+ value = value / 100.0
45
+ return (min(1.0, max(0.0, value)), progress_string)
46
+ except ValueError:
47
+ pass
48
+
49
+ # Can't parse, default to 0
50
+ return (0.0, progress_string)
51
+
52
+
53
+ def _get_kwargs(
54
+ job_id: str,
55
+ *,
56
+ client: Client = None,
57
+ json_body: ProgressRequest = None,
58
+ ) -> Dict[str, Any]:
59
+ if not client:
60
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
61
+ client = get_default_client()
62
+
63
+ base_url = client.get_base_url_v1()
64
+ url = f"{base_url}/api/v1/apps/jobs/{job_id}/progress"
65
+
66
+ headers: Dict[str, str] = client.get_headers()
67
+ headers["Content-Type"] = "application/json"
68
+ cookies: Dict[str, Any] = client.get_cookies()
69
+
70
+ if not json_body:
71
+ raise ValueError("json_body is required for setting job progress")
72
+
73
+ # Convert old ProgressRequest (string) to new format (float + message)
74
+ progress_float, message = _parse_progress_string(json_body.progress)
75
+ json_data = {
76
+ "progress": progress_float,
77
+ "message": message,
78
+ }
79
+
80
+ return {
81
+ "method": "post",
82
+ "url": url,
83
+ "headers": headers,
84
+ "cookies": cookies,
85
+ "timeout": client.get_timeout(),
86
+ "follow_redirects": client.follow_redirects,
87
+ "json": json_data,
88
+ }
89
+
90
+
91
+ def _parse_response(
92
+ *, client: Client = None, response: httpx.Response
93
+ ) -> Optional[Dict[str, Any]]:
94
+ if not client:
95
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
96
+ client = get_default_client()
97
+
98
+ if response.status_code == HTTPStatus.OK:
99
+ return response.json()
100
+ if client.raise_on_unexpected_status:
101
+ raise errors.UnexpectedStatus(response.status_code, response.content)
102
+ return None
103
+
104
+
105
+ def _build_response(
106
+ *, client: Client = None, response: httpx.Response
107
+ ) -> Response[Dict[str, Any]]:
108
+ if not client:
109
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
110
+ client = get_default_client()
111
+
112
+ return Response(
113
+ status_code=HTTPStatus(response.status_code),
114
+ content=response.content,
115
+ headers=response.headers,
116
+ parsed=_parse_response(client=client, response=response),
117
+ )
118
+
119
+
120
+ def sync_detailed(
121
+ job_id: str,
122
+ *,
123
+ client: Client = None,
124
+ json_body: ProgressRequest = None,
125
+ ) -> Response[Dict[str, Any]]:
126
+ """Set job progress.
127
+
128
+ Args:
129
+ job_id: The job ID to set progress for.
130
+ client: The Client with which to connect to Octostar.
131
+ json_body: ProgressRequest with the progress string.
132
+
133
+ Returns:
134
+ Response with updated job progress data.
135
+ """
136
+ if not client:
137
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
138
+ client = get_default_client()
139
+
140
+ kwargs = _get_kwargs(job_id=job_id, client=client, json_body=json_body)
141
+
142
+ response = httpx.request(verify=client.verify_ssl, **kwargs)
143
+ if response.is_error:
144
+ print(
145
+ f"{response.status_code} Error: {response.text} for request",
146
+ str(kwargs),
147
+ )
148
+ return _build_response(client=client, response=response)
149
+
150
+
151
+ def sync(
152
+ job_id: str,
153
+ *,
154
+ client: Client = None,
155
+ json_body: ProgressRequest = None,
156
+ ) -> Optional[Dict[str, Any]]:
157
+ """Set job progress.
158
+
159
+ Args:
160
+ job_id: The job ID to set progress for.
161
+ client: The Client with which to connect to Octostar.
162
+ json_body: ProgressRequest with the progress string.
163
+
164
+ Returns:
165
+ Updated job progress data or None if request failed.
166
+ """
167
+ return sync_detailed(job_id=job_id, client=client, json_body=json_body).parsed
168
+
169
+
170
+ async def asyncio_detailed(
171
+ job_id: str,
172
+ *,
173
+ client: Client = None,
174
+ json_body: ProgressRequest = None,
175
+ ) -> Response[Dict[str, Any]]:
176
+ """Set job progress asynchronously.
177
+
178
+ Args:
179
+ job_id: The job ID to set progress for.
180
+ client: The Client with which to connect to Octostar.
181
+ json_body: ProgressRequest with the progress string.
182
+
183
+ Returns:
184
+ Response with updated job progress data.
185
+ """
186
+ if not client:
187
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
188
+ client = get_default_client()
189
+
190
+ kwargs = _get_kwargs(job_id=job_id, client=client, json_body=json_body)
191
+
192
+ async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
193
+ response = await _client.request(**kwargs)
194
+
195
+ return _build_response(client=client, response=response)
196
+
197
+
198
+ async def asyncio(
199
+ job_id: str,
200
+ *,
201
+ client: Client = None,
202
+ json_body: ProgressRequest = None,
203
+ ) -> Optional[Dict[str, Any]]:
204
+ """Set job progress asynchronously.
205
+
206
+ Args:
207
+ job_id: The job ID to set progress for.
208
+ client: The Client with which to connect to Octostar.
209
+ json_body: ProgressRequest with the progress string.
210
+
211
+ Returns:
212
+ Updated job progress data or None if request failed.
213
+ """
214
+ return (
215
+ await asyncio_detailed(job_id=job_id, client=client, json_body=json_body)
216
+ ).parsed
@@ -0,0 +1,160 @@
1
+ """Undeploy an app via the FastAPI backend."""
2
+
3
+ from http import HTTPStatus
4
+ from typing import Any, Dict, Optional
5
+ from warnings import warn
6
+
7
+ import httpx
8
+
9
+ from ...client import Client, get_default_client
10
+ from ...types import Response
11
+ from ... import errors
12
+
13
+
14
+ 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.
15
+ Please create a client using octostar.client.make_client() and run the function via client.execute()."""
16
+
17
+
18
+ def _get_kwargs(
19
+ app_id: str,
20
+ *,
21
+ client: Client = None,
22
+ ) -> Dict[str, Any]:
23
+ if not client:
24
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
25
+ client = get_default_client()
26
+
27
+ base_url = client.get_base_url_v1()
28
+ url = f"{base_url}/api/v1/apps/{app_id}"
29
+
30
+ headers: Dict[str, str] = client.get_headers()
31
+ cookies: Dict[str, Any] = client.get_cookies()
32
+
33
+ return {
34
+ "method": "delete",
35
+ "url": url,
36
+ "headers": headers,
37
+ "cookies": cookies,
38
+ "timeout": client.get_timeout(),
39
+ "follow_redirects": client.follow_redirects,
40
+ }
41
+
42
+
43
+ def _parse_response(
44
+ *, client: Client = None, response: httpx.Response
45
+ ) -> Optional[Dict[str, Any]]:
46
+ if not client:
47
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
48
+ client = get_default_client()
49
+
50
+ if response.status_code == HTTPStatus.OK:
51
+ return response.json()
52
+ if client.raise_on_unexpected_status:
53
+ raise errors.UnexpectedStatus(response.status_code, response.content)
54
+ return None
55
+
56
+
57
+ def _build_response(
58
+ *, client: Client = None, response: httpx.Response
59
+ ) -> Response[Dict[str, Any]]:
60
+ if not client:
61
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
62
+ client = get_default_client()
63
+
64
+ return Response(
65
+ status_code=HTTPStatus(response.status_code),
66
+ content=response.content,
67
+ headers=response.headers,
68
+ parsed=_parse_response(client=client, response=response),
69
+ )
70
+
71
+
72
+ def sync_detailed(
73
+ app_id: str,
74
+ *,
75
+ client: Client = None,
76
+ ) -> Response[Dict[str, Any]]:
77
+ """Undeploy an app.
78
+
79
+ Args:
80
+ app_id: The app ID or alias to undeploy.
81
+ client: The Client with which to connect to Octostar.
82
+
83
+ Returns:
84
+ Response with undeploy confirmation including:
85
+ - status: Operation status
86
+ - app_id: The undeployed app ID
87
+ """
88
+ if not client:
89
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
90
+ client = get_default_client()
91
+
92
+ kwargs = _get_kwargs(app_id=app_id, client=client)
93
+
94
+ response = httpx.request(verify=client.verify_ssl, **kwargs)
95
+ if response.is_error:
96
+ print(
97
+ f"{response.status_code} Error: {response.text} for request",
98
+ str(kwargs),
99
+ )
100
+ return _build_response(client=client, response=response)
101
+
102
+
103
+ def sync(
104
+ app_id: str,
105
+ *,
106
+ client: Client = None,
107
+ ) -> Optional[Dict[str, Any]]:
108
+ """Undeploy an app.
109
+
110
+ Args:
111
+ app_id: The app ID or alias to undeploy.
112
+ client: The Client with which to connect to Octostar.
113
+
114
+ Returns:
115
+ Undeploy confirmation data or None if request failed.
116
+ """
117
+ return sync_detailed(app_id=app_id, client=client).parsed
118
+
119
+
120
+ async def asyncio_detailed(
121
+ app_id: str,
122
+ *,
123
+ client: Client = None,
124
+ ) -> Response[Dict[str, Any]]:
125
+ """Undeploy an app asynchronously.
126
+
127
+ Args:
128
+ app_id: The app ID or alias to undeploy.
129
+ client: The Client with which to connect to Octostar.
130
+
131
+ Returns:
132
+ Response with undeploy confirmation.
133
+ """
134
+ if not client:
135
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
136
+ client = get_default_client()
137
+
138
+ kwargs = _get_kwargs(app_id=app_id, client=client)
139
+
140
+ async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
141
+ response = await _client.request(**kwargs)
142
+
143
+ return _build_response(client=client, response=response)
144
+
145
+
146
+ async def asyncio(
147
+ app_id: str,
148
+ *,
149
+ client: Client = None,
150
+ ) -> Optional[Dict[str, Any]]:
151
+ """Undeploy an app asynchronously.
152
+
153
+ Args:
154
+ app_id: The app ID or alias to undeploy.
155
+ client: The Client with which to connect to Octostar.
156
+
157
+ Returns:
158
+ Undeploy confirmation data or None if request failed.
159
+ """
160
+ return (await asyncio_detailed(app_id=app_id, client=client)).parsed
File without changes
@@ -0,0 +1,232 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Dict, List, Optional, Union, cast
3
+ from warnings import warn
4
+
5
+ import httpx
6
+
7
+ from ...client import AuthenticatedClient, Client, get_default_client
8
+ from ...types import Response, UNSET
9
+ from ... import errors
10
+
11
+ from ...models.get_version_response_200 import GetVersionResponse200
12
+ from ...types import UNSET, Unset
13
+ from typing import Union
14
+ from typing import cast
15
+ from typing import Dict
16
+ from ...models.get_version_response_404 import GetVersionResponse404
17
+
18
+
19
+ 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.
20
+ Please create a client using octostar.client.make_client() and run the function via client.execute()."""
21
+
22
+
23
+ def _get_kwargs(
24
+ *,
25
+ client: Client = None,
26
+ accept: Union[Unset, str] = "application/json",
27
+ ) -> Dict[str, Any]:
28
+ if not client:
29
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
30
+ client = get_default_client()
31
+ # raise RuntimeError("Missing client!")
32
+
33
+ base_url = client.get_base_url_v1()
34
+ url = "{}/api/v1/meta/version".format(base_url)
35
+
36
+ headers: Dict[str, str] = client.get_headers()
37
+ cookies: Dict[str, Any] = client.get_cookies()
38
+
39
+ if not isinstance(accept, Unset):
40
+ headers["Accept"] = accept
41
+
42
+ return {
43
+ "method": "get",
44
+ "url": url,
45
+ "headers": headers,
46
+ "cookies": cookies,
47
+ "timeout": client.get_timeout(),
48
+ "follow_redirects": client.follow_redirects,
49
+ }
50
+
51
+
52
+ def _parse_response(
53
+ *, client: Client = None, response: httpx.Response
54
+ ) -> Optional[Union[GetVersionResponse200, GetVersionResponse404]]:
55
+ if not client:
56
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
57
+ client = get_default_client()
58
+ # raise RuntimeError("Missing client!")
59
+ if response.status_code == HTTPStatus.OK:
60
+ response_200 = GetVersionResponse200.from_dict(response.json())
61
+
62
+ return response_200
63
+ if response.status_code == HTTPStatus.NOT_FOUND:
64
+ response_404 = GetVersionResponse404.from_dict(response.json())
65
+
66
+ return response_404
67
+ if client.raise_on_unexpected_status:
68
+ raise errors.UnexpectedStatus(response.status_code, response.content)
69
+ else:
70
+ return None
71
+
72
+
73
+ def _build_response(
74
+ *, client: Client = None, response: httpx.Response
75
+ ) -> Response[Union[GetVersionResponse200, GetVersionResponse404]]:
76
+ if not client:
77
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
78
+ client = get_default_client()
79
+ # raise RuntimeError("Missing client!")
80
+ response_kwargs = {
81
+ "status_code": HTTPStatus(response.status_code),
82
+ "content": response.content,
83
+ "headers": response.headers,
84
+ "parsed": _parse_response(client=client, response=response),
85
+ }
86
+ return Response(**response_kwargs)
87
+
88
+
89
+ def _build_chunk_response(
90
+ *, client: Client = None, response: httpx.Response, chunk: bytes
91
+ ) -> Response[Union[GetVersionResponse200, GetVersionResponse404]]:
92
+ if not client:
93
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
94
+ client = get_default_client()
95
+ # raise RuntimeError("Missing client!")
96
+ response_kwargs = {
97
+ "status_code": HTTPStatus(response.status_code),
98
+ "content": chunk,
99
+ "headers": response.headers,
100
+ "parsed": None, # cannot parse incomplete chunks of data, we leave it to the user
101
+ }
102
+ return Response(**response_kwargs)
103
+
104
+
105
+ def sync_detailed(
106
+ *,
107
+ client: Client = None,
108
+ accept: Union[Unset, str] = "application/json",
109
+ ) -> Response[Union[GetVersionResponse200, GetVersionResponse404]]:
110
+ """## Get the current version of Octostar
111
+
112
+ Get the current version of Octostar
113
+
114
+ ### Args:
115
+ * `Accept`: accept (Union[Unset, str]): Default: 'application/json'.
116
+
117
+ ### Raises:
118
+ * `errors.UnexpectedStatus`: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
119
+ * `httpx.TimeoutException`: If the request takes longer than Client.timeout.
120
+
121
+ ## Returns:
122
+ * `Response[Union[GetVersionResponse200, GetVersionResponse404]]`
123
+ """
124
+
125
+ if not client:
126
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
127
+ client = get_default_client()
128
+ # raise RuntimeError("Missing client!")
129
+ kwargs = _get_kwargs(
130
+ client=client,
131
+ accept=accept,
132
+ )
133
+
134
+ response = httpx.request(
135
+ verify=client.verify_ssl,
136
+ **kwargs,
137
+ )
138
+ if response.is_error:
139
+ print(
140
+ f"{str(response.status_code)} Error: {response.text} for request",
141
+ str(kwargs),
142
+ )
143
+ return _build_response(client=client, response=response)
144
+
145
+
146
+ def sync(
147
+ *,
148
+ client: Client = None,
149
+ accept: Union[Unset, str] = "application/json",
150
+ ) -> Optional[Union[GetVersionResponse200, GetVersionResponse404]]:
151
+ """## Get the current version of Octostar
152
+
153
+ Get the current version of Octostar
154
+
155
+ ### Args:
156
+ * `Accept`: accept (Union[Unset, str]): Default: 'application/json'.
157
+
158
+ ### Raises:
159
+ * `errors.UnexpectedStatus`: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
160
+ * `httpx.TimeoutException`: If the request takes longer than Client.timeout.
161
+
162
+ ## Returns:
163
+ * `Union[GetVersionResponse200, GetVersionResponse404]`
164
+ """
165
+
166
+ return sync_detailed(
167
+ client=client,
168
+ accept=accept,
169
+ ).parsed
170
+
171
+
172
+ async def asyncio_detailed(
173
+ *,
174
+ client: Client = None,
175
+ accept: Union[Unset, str] = "application/json",
176
+ ) -> Response[Union[GetVersionResponse200, GetVersionResponse404]]:
177
+ """## Get the current version of Octostar
178
+
179
+ Get the current version of Octostar
180
+
181
+ ### Args:
182
+ * `Accept`: accept (Union[Unset, str]): Default: 'application/json'.
183
+
184
+ ### Raises:
185
+ * `errors.UnexpectedStatus`: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
186
+ * `httpx.TimeoutException`: If the request takes longer than Client.timeout.
187
+
188
+ ## Returns:
189
+ * `Response[Union[GetVersionResponse200, GetVersionResponse404]]`
190
+ """
191
+
192
+ if not client:
193
+ warn(client_missing_msg, FutureWarning, stacklevel=2)
194
+ client = get_default_client()
195
+ # raise RuntimeError("Missing client!")
196
+ kwargs = _get_kwargs(
197
+ client=client,
198
+ accept=accept,
199
+ )
200
+
201
+ async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
202
+ response = await _client.request(**kwargs)
203
+
204
+ return _build_response(client=client, response=response)
205
+
206
+
207
+ async def asyncio(
208
+ *,
209
+ client: Client = None,
210
+ accept: Union[Unset, str] = "application/json",
211
+ ) -> Optional[Union[GetVersionResponse200, GetVersionResponse404]]:
212
+ """## Get the current version of Octostar
213
+
214
+ Get the current version of Octostar
215
+
216
+ ### Args:
217
+ * `Accept`: accept (Union[Unset, str]): Default: 'application/json'.
218
+
219
+ ### Raises:
220
+ * `errors.UnexpectedStatus`: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
221
+ * `httpx.TimeoutException`: If the request takes longer than Client.timeout.
222
+
223
+ ## Returns:
224
+ * `Union[GetVersionResponse200, GetVersionResponse404]`
225
+ """
226
+
227
+ return (
228
+ await asyncio_detailed(
229
+ client=client,
230
+ accept=accept,
231
+ )
232
+ ).parsed