mixpeek 0.1.0__py3-none-any.whl → 0.6.1__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 (73) hide show
  1. mixpeek/__init__.py +95 -71
  2. mixpeek/base_client.py +128 -0
  3. mixpeek/client.py +65 -0
  4. mixpeek/core/__init__.py +25 -0
  5. mixpeek/core/api_error.py +15 -0
  6. mixpeek/core/client_wrapper.py +83 -0
  7. mixpeek/core/datetime_utils.py +28 -0
  8. mixpeek/core/file.py +38 -0
  9. mixpeek/core/http_client.py +130 -0
  10. mixpeek/core/jsonable_encoder.py +103 -0
  11. mixpeek/core/remove_none_from_dict.py +11 -0
  12. mixpeek/core/request_options.py +32 -0
  13. mixpeek/errors/__init__.py +17 -0
  14. mixpeek/errors/bad_request_error.py +9 -0
  15. mixpeek/errors/forbidden_error.py +9 -0
  16. mixpeek/errors/internal_server_error.py +9 -0
  17. mixpeek/errors/not_found_error.py +9 -0
  18. mixpeek/errors/unauthorized_error.py +9 -0
  19. mixpeek/errors/unprocessable_entity_error.py +9 -0
  20. mixpeek/generators/__init__.py +2 -0
  21. mixpeek/generators/client.py +239 -0
  22. mixpeek/parse/__init__.py +2 -0
  23. mixpeek/parse/client.py +349 -0
  24. mixpeek/parse_client.py +14 -0
  25. mixpeek/pipelines/__init__.py +2 -0
  26. mixpeek/pipelines/client.py +546 -0
  27. mixpeek/py.typed +0 -0
  28. mixpeek/storage/__init__.py +2 -0
  29. mixpeek/storage/client.py +254 -0
  30. mixpeek/types/__init__.py +73 -0
  31. mixpeek/types/audio_params.py +29 -0
  32. mixpeek/types/configs_request.py +31 -0
  33. mixpeek/types/configs_response.py +31 -0
  34. mixpeek/types/connection.py +36 -0
  35. mixpeek/types/connection_engine.py +5 -0
  36. mixpeek/types/csv_params.py +29 -0
  37. mixpeek/types/destination_schema.py +31 -0
  38. mixpeek/types/embedding_request.py +32 -0
  39. mixpeek/types/embedding_response.py +30 -0
  40. mixpeek/types/error_message.py +29 -0
  41. mixpeek/types/error_response.py +30 -0
  42. mixpeek/types/field_schema.py +33 -0
  43. mixpeek/types/field_type.py +5 -0
  44. mixpeek/types/generation_response.py +34 -0
  45. mixpeek/types/html_params.py +29 -0
  46. mixpeek/types/http_validation_error.py +30 -0
  47. mixpeek/types/image_params.py +32 -0
  48. mixpeek/types/message.py +30 -0
  49. mixpeek/types/metadata.py +34 -0
  50. mixpeek/types/modality.py +5 -0
  51. mixpeek/types/model.py +30 -0
  52. mixpeek/types/pdf_params.py +41 -0
  53. mixpeek/types/pipeline_response.py +39 -0
  54. mixpeek/types/ppt_params.py +27 -0
  55. mixpeek/types/pptx_params.py +27 -0
  56. mixpeek/types/settings.py +35 -0
  57. mixpeek/types/source_schema.py +32 -0
  58. mixpeek/types/txt_params.py +27 -0
  59. mixpeek/types/validation_error.py +32 -0
  60. mixpeek/types/validation_error_loc_item.py +5 -0
  61. mixpeek/types/video_params.py +27 -0
  62. mixpeek/types/workflow_response.py +32 -0
  63. mixpeek/types/workflow_settings.py +30 -0
  64. mixpeek/types/xlsx_params.py +29 -0
  65. mixpeek/version.py +4 -0
  66. mixpeek/workflows/__init__.py +2 -0
  67. mixpeek/workflows/client.py +418 -0
  68. mixpeek-0.1.0.dist-info/LICENSE.rst → mixpeek-0.6.1.dist-info/LICENSE +10 -9
  69. mixpeek-0.6.1.dist-info/METADATA +145 -0
  70. mixpeek-0.6.1.dist-info/RECORD +71 -0
  71. {mixpeek-0.1.0.dist-info → mixpeek-0.6.1.dist-info}/WHEEL +1 -1
  72. mixpeek-0.1.0.dist-info/METADATA +0 -211
  73. mixpeek-0.1.0.dist-info/RECORD +0 -5
@@ -0,0 +1,546 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+ import urllib.parse
6
+ from json.decoder import JSONDecodeError
7
+
8
+ from ..core.api_error import ApiError
9
+ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
10
+ from ..core.jsonable_encoder import jsonable_encoder
11
+ from ..core.remove_none_from_dict import remove_none_from_dict
12
+ from ..core.request_options import RequestOptions
13
+ from ..errors.bad_request_error import BadRequestError
14
+ from ..errors.forbidden_error import ForbiddenError
15
+ from ..errors.internal_server_error import InternalServerError
16
+ from ..errors.not_found_error import NotFoundError
17
+ from ..errors.unauthorized_error import UnauthorizedError
18
+ from ..errors.unprocessable_entity_error import UnprocessableEntityError
19
+ from ..types.connection import Connection
20
+ from ..types.destination_schema import DestinationSchema
21
+ from ..types.error_response import ErrorResponse
22
+ from ..types.http_validation_error import HttpValidationError
23
+ from ..types.pipeline_response import PipelineResponse
24
+ from ..types.source_schema import SourceSchema
25
+
26
+ try:
27
+ import pydantic.v1 as pydantic # type: ignore
28
+ except ImportError:
29
+ import pydantic # type: ignore
30
+
31
+ # this is used as the default value for optional parameters
32
+ OMIT = typing.cast(typing.Any, ...)
33
+
34
+
35
+ class PipelinesClient:
36
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
37
+ self._client_wrapper = client_wrapper
38
+
39
+ def invoke(self, pipeline_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> typing.Any:
40
+ """
41
+ Parameters:
42
+ - pipeline_id: str.
43
+
44
+ - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
45
+ ---
46
+ from mixpeek.client import Mixpeek
47
+
48
+ client = Mixpeek(
49
+ authorization="YOUR_AUTHORIZATION",
50
+ index_id="YOUR_INDEX_ID",
51
+ api_key="YOUR_API_KEY",
52
+ base_url="https://yourhost.com/path/to/api",
53
+ )
54
+ client.pipelines.invoke(
55
+ pipeline_id="pipeline_id",
56
+ )
57
+ """
58
+ _response = self._client_wrapper.httpx_client.request(
59
+ "POST",
60
+ urllib.parse.urljoin(
61
+ f"{self._client_wrapper.get_base_url()}/", f"pipelines/{jsonable_encoder(pipeline_id)}"
62
+ ),
63
+ params=jsonable_encoder(
64
+ request_options.get("additional_query_parameters") if request_options is not None else None
65
+ ),
66
+ json=jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))
67
+ if request_options is not None
68
+ else None,
69
+ headers=jsonable_encoder(
70
+ remove_none_from_dict(
71
+ {
72
+ **self._client_wrapper.get_headers(),
73
+ **(request_options.get("additional_headers", {}) if request_options is not None else {}),
74
+ }
75
+ )
76
+ ),
77
+ timeout=request_options.get("timeout_in_seconds")
78
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
79
+ else self._client_wrapper.get_timeout(),
80
+ retries=0,
81
+ max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
82
+ )
83
+ if 200 <= _response.status_code < 300:
84
+ return pydantic.parse_obj_as(typing.Any, _response.json()) # type: ignore
85
+ if _response.status_code == 400:
86
+ raise BadRequestError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
87
+ if _response.status_code == 401:
88
+ raise UnauthorizedError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
89
+ if _response.status_code == 403:
90
+ raise ForbiddenError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
91
+ if _response.status_code == 404:
92
+ raise NotFoundError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
93
+ if _response.status_code == 422:
94
+ raise UnprocessableEntityError(pydantic.parse_obj_as(HttpValidationError, _response.json())) # type: ignore
95
+ if _response.status_code == 500:
96
+ raise InternalServerError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
97
+ try:
98
+ _response_json = _response.json()
99
+ except JSONDecodeError:
100
+ raise ApiError(status_code=_response.status_code, body=_response.text)
101
+ raise ApiError(status_code=_response.status_code, body=_response_json)
102
+
103
+ def create(
104
+ self,
105
+ *,
106
+ connection_id: str,
107
+ pipeline_id: typing.Optional[str] = OMIT,
108
+ connection: typing.Optional[Connection] = OMIT,
109
+ source: SourceSchema,
110
+ destination: DestinationSchema,
111
+ metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
112
+ enabled: typing.Optional[bool] = OMIT,
113
+ last_run: typing.Optional[dt.datetime] = OMIT,
114
+ request_options: typing.Optional[RequestOptions] = None,
115
+ ) -> PipelineResponse:
116
+ """
117
+ Parameters:
118
+ - connection_id: str.
119
+
120
+ - pipeline_id: typing.Optional[str].
121
+
122
+ - connection: typing.Optional[Connection].
123
+
124
+ - source: SourceSchema.
125
+
126
+ - destination: DestinationSchema.
127
+
128
+ - metadata: typing.Optional[typing.Dict[str, typing.Any]].
129
+
130
+ - enabled: typing.Optional[bool].
131
+
132
+ - last_run: typing.Optional[dt.datetime].
133
+
134
+ - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
135
+ ---
136
+ from mixpeek import DestinationSchema, FieldSchema, SourceSchema
137
+ from mixpeek.client import Mixpeek
138
+
139
+ client = Mixpeek(
140
+ authorization="YOUR_AUTHORIZATION",
141
+ index_id="YOUR_INDEX_ID",
142
+ api_key="YOUR_API_KEY",
143
+ base_url="https://yourhost.com/path/to/api",
144
+ )
145
+ client.pipelines.create(
146
+ connection_id="connection_id",
147
+ source=SourceSchema(
148
+ filters={},
149
+ on_operation=["on_operation"],
150
+ field=FieldSchema(
151
+ name="name",
152
+ type="url",
153
+ ),
154
+ ),
155
+ destination=DestinationSchema(
156
+ collection="collection",
157
+ new_field_name="new_field_name",
158
+ new_embeddings="new_embeddings",
159
+ ),
160
+ )
161
+ """
162
+ _request: typing.Dict[str, typing.Any] = {"source": source, "destination": destination}
163
+ if pipeline_id is not OMIT:
164
+ _request["pipeline_id"] = pipeline_id
165
+ if connection is not OMIT:
166
+ _request["connection"] = connection
167
+ if metadata is not OMIT:
168
+ _request["metadata"] = metadata
169
+ if enabled is not OMIT:
170
+ _request["enabled"] = enabled
171
+ if last_run is not OMIT:
172
+ _request["last_run"] = last_run
173
+ _response = self._client_wrapper.httpx_client.request(
174
+ "POST",
175
+ urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "pipelines"),
176
+ params=jsonable_encoder(
177
+ remove_none_from_dict(
178
+ {
179
+ "connection_id": connection_id,
180
+ **(
181
+ request_options.get("additional_query_parameters", {})
182
+ if request_options is not None
183
+ else {}
184
+ ),
185
+ }
186
+ )
187
+ ),
188
+ json=jsonable_encoder(_request)
189
+ if request_options is None or request_options.get("additional_body_parameters") is None
190
+ else {
191
+ **jsonable_encoder(_request),
192
+ **(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
193
+ },
194
+ headers=jsonable_encoder(
195
+ remove_none_from_dict(
196
+ {
197
+ **self._client_wrapper.get_headers(),
198
+ **(request_options.get("additional_headers", {}) if request_options is not None else {}),
199
+ }
200
+ )
201
+ ),
202
+ timeout=request_options.get("timeout_in_seconds")
203
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
204
+ else self._client_wrapper.get_timeout(),
205
+ retries=0,
206
+ max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
207
+ )
208
+ if 200 <= _response.status_code < 300:
209
+ return pydantic.parse_obj_as(PipelineResponse, _response.json()) # type: ignore
210
+ if _response.status_code == 400:
211
+ raise BadRequestError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
212
+ if _response.status_code == 401:
213
+ raise UnauthorizedError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
214
+ if _response.status_code == 403:
215
+ raise ForbiddenError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
216
+ if _response.status_code == 404:
217
+ raise NotFoundError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
218
+ if _response.status_code == 422:
219
+ raise UnprocessableEntityError(pydantic.parse_obj_as(HttpValidationError, _response.json())) # type: ignore
220
+ if _response.status_code == 500:
221
+ raise InternalServerError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
222
+ try:
223
+ _response_json = _response.json()
224
+ except JSONDecodeError:
225
+ raise ApiError(status_code=_response.status_code, body=_response.text)
226
+ raise ApiError(status_code=_response.status_code, body=_response_json)
227
+
228
+ def get_status(self, task_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> typing.Any:
229
+ """
230
+ Query tasks status.
231
+
232
+ Parameters:
233
+ - task_id: str.
234
+
235
+ - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
236
+ ---
237
+ from mixpeek.client import Mixpeek
238
+
239
+ client = Mixpeek(
240
+ authorization="YOUR_AUTHORIZATION",
241
+ index_id="YOUR_INDEX_ID",
242
+ api_key="YOUR_API_KEY",
243
+ base_url="https://yourhost.com/path/to/api",
244
+ )
245
+ client.pipelines.get_status(
246
+ task_id="task_id",
247
+ )
248
+ """
249
+ _response = self._client_wrapper.httpx_client.request(
250
+ "GET",
251
+ urllib.parse.urljoin(
252
+ f"{self._client_wrapper.get_base_url()}/", f"pipelines/status/{jsonable_encoder(task_id)}"
253
+ ),
254
+ params=jsonable_encoder(
255
+ request_options.get("additional_query_parameters") if request_options is not None else None
256
+ ),
257
+ headers=jsonable_encoder(
258
+ remove_none_from_dict(
259
+ {
260
+ **self._client_wrapper.get_headers(),
261
+ **(request_options.get("additional_headers", {}) if request_options is not None else {}),
262
+ }
263
+ )
264
+ ),
265
+ timeout=request_options.get("timeout_in_seconds")
266
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
267
+ else self._client_wrapper.get_timeout(),
268
+ retries=0,
269
+ max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
270
+ )
271
+ if 200 <= _response.status_code < 300:
272
+ return pydantic.parse_obj_as(typing.Any, _response.json()) # type: ignore
273
+ if _response.status_code == 400:
274
+ raise BadRequestError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
275
+ if _response.status_code == 401:
276
+ raise UnauthorizedError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
277
+ if _response.status_code == 403:
278
+ raise ForbiddenError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
279
+ if _response.status_code == 404:
280
+ raise NotFoundError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
281
+ if _response.status_code == 422:
282
+ raise UnprocessableEntityError(pydantic.parse_obj_as(HttpValidationError, _response.json())) # type: ignore
283
+ if _response.status_code == 500:
284
+ raise InternalServerError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
285
+ try:
286
+ _response_json = _response.json()
287
+ except JSONDecodeError:
288
+ raise ApiError(status_code=_response.status_code, body=_response.text)
289
+ raise ApiError(status_code=_response.status_code, body=_response_json)
290
+
291
+
292
+ class AsyncPipelinesClient:
293
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
294
+ self._client_wrapper = client_wrapper
295
+
296
+ async def invoke(self, pipeline_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> typing.Any:
297
+ """
298
+ Parameters:
299
+ - pipeline_id: str.
300
+
301
+ - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
302
+ ---
303
+ from mixpeek.client import AsyncMixpeek
304
+
305
+ client = AsyncMixpeek(
306
+ authorization="YOUR_AUTHORIZATION",
307
+ index_id="YOUR_INDEX_ID",
308
+ api_key="YOUR_API_KEY",
309
+ base_url="https://yourhost.com/path/to/api",
310
+ )
311
+ await client.pipelines.invoke(
312
+ pipeline_id="pipeline_id",
313
+ )
314
+ """
315
+ _response = await self._client_wrapper.httpx_client.request(
316
+ "POST",
317
+ urllib.parse.urljoin(
318
+ f"{self._client_wrapper.get_base_url()}/", f"pipelines/{jsonable_encoder(pipeline_id)}"
319
+ ),
320
+ params=jsonable_encoder(
321
+ request_options.get("additional_query_parameters") if request_options is not None else None
322
+ ),
323
+ json=jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))
324
+ if request_options is not None
325
+ else None,
326
+ headers=jsonable_encoder(
327
+ remove_none_from_dict(
328
+ {
329
+ **self._client_wrapper.get_headers(),
330
+ **(request_options.get("additional_headers", {}) if request_options is not None else {}),
331
+ }
332
+ )
333
+ ),
334
+ timeout=request_options.get("timeout_in_seconds")
335
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
336
+ else self._client_wrapper.get_timeout(),
337
+ retries=0,
338
+ max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
339
+ )
340
+ if 200 <= _response.status_code < 300:
341
+ return pydantic.parse_obj_as(typing.Any, _response.json()) # type: ignore
342
+ if _response.status_code == 400:
343
+ raise BadRequestError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
344
+ if _response.status_code == 401:
345
+ raise UnauthorizedError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
346
+ if _response.status_code == 403:
347
+ raise ForbiddenError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
348
+ if _response.status_code == 404:
349
+ raise NotFoundError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
350
+ if _response.status_code == 422:
351
+ raise UnprocessableEntityError(pydantic.parse_obj_as(HttpValidationError, _response.json())) # type: ignore
352
+ if _response.status_code == 500:
353
+ raise InternalServerError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
354
+ try:
355
+ _response_json = _response.json()
356
+ except JSONDecodeError:
357
+ raise ApiError(status_code=_response.status_code, body=_response.text)
358
+ raise ApiError(status_code=_response.status_code, body=_response_json)
359
+
360
+ async def create(
361
+ self,
362
+ *,
363
+ connection_id: str,
364
+ pipeline_id: typing.Optional[str] = OMIT,
365
+ connection: typing.Optional[Connection] = OMIT,
366
+ source: SourceSchema,
367
+ destination: DestinationSchema,
368
+ metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
369
+ enabled: typing.Optional[bool] = OMIT,
370
+ last_run: typing.Optional[dt.datetime] = OMIT,
371
+ request_options: typing.Optional[RequestOptions] = None,
372
+ ) -> PipelineResponse:
373
+ """
374
+ Parameters:
375
+ - connection_id: str.
376
+
377
+ - pipeline_id: typing.Optional[str].
378
+
379
+ - connection: typing.Optional[Connection].
380
+
381
+ - source: SourceSchema.
382
+
383
+ - destination: DestinationSchema.
384
+
385
+ - metadata: typing.Optional[typing.Dict[str, typing.Any]].
386
+
387
+ - enabled: typing.Optional[bool].
388
+
389
+ - last_run: typing.Optional[dt.datetime].
390
+
391
+ - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
392
+ ---
393
+ from mixpeek import DestinationSchema, FieldSchema, SourceSchema
394
+ from mixpeek.client import AsyncMixpeek
395
+
396
+ client = AsyncMixpeek(
397
+ authorization="YOUR_AUTHORIZATION",
398
+ index_id="YOUR_INDEX_ID",
399
+ api_key="YOUR_API_KEY",
400
+ base_url="https://yourhost.com/path/to/api",
401
+ )
402
+ await client.pipelines.create(
403
+ connection_id="connection_id",
404
+ source=SourceSchema(
405
+ filters={},
406
+ on_operation=["on_operation"],
407
+ field=FieldSchema(
408
+ name="name",
409
+ type="url",
410
+ ),
411
+ ),
412
+ destination=DestinationSchema(
413
+ collection="collection",
414
+ new_field_name="new_field_name",
415
+ new_embeddings="new_embeddings",
416
+ ),
417
+ )
418
+ """
419
+ _request: typing.Dict[str, typing.Any] = {"source": source, "destination": destination}
420
+ if pipeline_id is not OMIT:
421
+ _request["pipeline_id"] = pipeline_id
422
+ if connection is not OMIT:
423
+ _request["connection"] = connection
424
+ if metadata is not OMIT:
425
+ _request["metadata"] = metadata
426
+ if enabled is not OMIT:
427
+ _request["enabled"] = enabled
428
+ if last_run is not OMIT:
429
+ _request["last_run"] = last_run
430
+ _response = await self._client_wrapper.httpx_client.request(
431
+ "POST",
432
+ urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "pipelines"),
433
+ params=jsonable_encoder(
434
+ remove_none_from_dict(
435
+ {
436
+ "connection_id": connection_id,
437
+ **(
438
+ request_options.get("additional_query_parameters", {})
439
+ if request_options is not None
440
+ else {}
441
+ ),
442
+ }
443
+ )
444
+ ),
445
+ json=jsonable_encoder(_request)
446
+ if request_options is None or request_options.get("additional_body_parameters") is None
447
+ else {
448
+ **jsonable_encoder(_request),
449
+ **(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
450
+ },
451
+ headers=jsonable_encoder(
452
+ remove_none_from_dict(
453
+ {
454
+ **self._client_wrapper.get_headers(),
455
+ **(request_options.get("additional_headers", {}) if request_options is not None else {}),
456
+ }
457
+ )
458
+ ),
459
+ timeout=request_options.get("timeout_in_seconds")
460
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
461
+ else self._client_wrapper.get_timeout(),
462
+ retries=0,
463
+ max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
464
+ )
465
+ if 200 <= _response.status_code < 300:
466
+ return pydantic.parse_obj_as(PipelineResponse, _response.json()) # type: ignore
467
+ if _response.status_code == 400:
468
+ raise BadRequestError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
469
+ if _response.status_code == 401:
470
+ raise UnauthorizedError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
471
+ if _response.status_code == 403:
472
+ raise ForbiddenError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
473
+ if _response.status_code == 404:
474
+ raise NotFoundError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
475
+ if _response.status_code == 422:
476
+ raise UnprocessableEntityError(pydantic.parse_obj_as(HttpValidationError, _response.json())) # type: ignore
477
+ if _response.status_code == 500:
478
+ raise InternalServerError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
479
+ try:
480
+ _response_json = _response.json()
481
+ except JSONDecodeError:
482
+ raise ApiError(status_code=_response.status_code, body=_response.text)
483
+ raise ApiError(status_code=_response.status_code, body=_response_json)
484
+
485
+ async def get_status(self, task_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> typing.Any:
486
+ """
487
+ Query tasks status.
488
+
489
+ Parameters:
490
+ - task_id: str.
491
+
492
+ - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
493
+ ---
494
+ from mixpeek.client import AsyncMixpeek
495
+
496
+ client = AsyncMixpeek(
497
+ authorization="YOUR_AUTHORIZATION",
498
+ index_id="YOUR_INDEX_ID",
499
+ api_key="YOUR_API_KEY",
500
+ base_url="https://yourhost.com/path/to/api",
501
+ )
502
+ await client.pipelines.get_status(
503
+ task_id="task_id",
504
+ )
505
+ """
506
+ _response = await self._client_wrapper.httpx_client.request(
507
+ "GET",
508
+ urllib.parse.urljoin(
509
+ f"{self._client_wrapper.get_base_url()}/", f"pipelines/status/{jsonable_encoder(task_id)}"
510
+ ),
511
+ params=jsonable_encoder(
512
+ request_options.get("additional_query_parameters") if request_options is not None else None
513
+ ),
514
+ headers=jsonable_encoder(
515
+ remove_none_from_dict(
516
+ {
517
+ **self._client_wrapper.get_headers(),
518
+ **(request_options.get("additional_headers", {}) if request_options is not None else {}),
519
+ }
520
+ )
521
+ ),
522
+ timeout=request_options.get("timeout_in_seconds")
523
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
524
+ else self._client_wrapper.get_timeout(),
525
+ retries=0,
526
+ max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
527
+ )
528
+ if 200 <= _response.status_code < 300:
529
+ return pydantic.parse_obj_as(typing.Any, _response.json()) # type: ignore
530
+ if _response.status_code == 400:
531
+ raise BadRequestError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
532
+ if _response.status_code == 401:
533
+ raise UnauthorizedError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
534
+ if _response.status_code == 403:
535
+ raise ForbiddenError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
536
+ if _response.status_code == 404:
537
+ raise NotFoundError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
538
+ if _response.status_code == 422:
539
+ raise UnprocessableEntityError(pydantic.parse_obj_as(HttpValidationError, _response.json())) # type: ignore
540
+ if _response.status_code == 500:
541
+ raise InternalServerError(pydantic.parse_obj_as(ErrorResponse, _response.json())) # type: ignore
542
+ try:
543
+ _response_json = _response.json()
544
+ except JSONDecodeError:
545
+ raise ApiError(status_code=_response.status_code, body=_response.text)
546
+ raise ApiError(status_code=_response.status_code, body=_response_json)
mixpeek/py.typed ADDED
File without changes
@@ -0,0 +1,2 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+