stract-api 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. stract_api/__init__.py +141 -0
  2. stract_api/api/__init__.py +16 -0
  3. stract_api/api/account_api.py +1098 -0
  4. stract_api/api/account_credit_ledger_api.py +286 -0
  5. stract_api/api/api_key_api.py +286 -0
  6. stract_api/api/catalog_api.py +837 -0
  7. stract_api/api/credits_api.py +534 -0
  8. stract_api/api/document_api.py +2799 -0
  9. stract_api/api/field_api.py +1168 -0
  10. stract_api/api/job_api.py +2857 -0
  11. stract_api/api/job_document_api.py +575 -0
  12. stract_api/api/llm_model_api.py +286 -0
  13. stract_api/api/struct_api.py +837 -0
  14. stract_api/api/user_api.py +572 -0
  15. stract_api/api_client.py +866 -0
  16. stract_api/api_response.py +21 -0
  17. stract_api/configuration.py +655 -0
  18. stract_api/exceptions.py +219 -0
  19. stract_api/models/__init__.py +52 -0
  20. stract_api/models/account.py +130 -0
  21. stract_api/models/account_credit_cache.py +112 -0
  22. stract_api/models/account_credit_ledger.py +125 -0
  23. stract_api/models/account_user.py +104 -0
  24. stract_api/models/account_user_role.py +38 -0
  25. stract_api/models/api_key.py +102 -0
  26. stract_api/models/catalog.py +100 -0
  27. stract_api/models/create_account_user_request.py +97 -0
  28. stract_api/models/create_catalog_request.py +90 -0
  29. stract_api/models/create_field_request.py +102 -0
  30. stract_api/models/create_job_request.py +109 -0
  31. stract_api/models/create_struct_request.py +90 -0
  32. stract_api/models/deleted_document.py +91 -0
  33. stract_api/models/deleted_field.py +91 -0
  34. stract_api/models/document.py +107 -0
  35. stract_api/models/document_link.py +90 -0
  36. stract_api/models/document_processing_status.py +39 -0
  37. stract_api/models/document_text.py +95 -0
  38. stract_api/models/edit_account_request.py +90 -0
  39. stract_api/models/edit_field_request.py +102 -0
  40. stract_api/models/edit_my_user_request.py +92 -0
  41. stract_api/models/field_type.py +42 -0
  42. stract_api/models/job.py +129 -0
  43. stract_api/models/job_document.py +123 -0
  44. stract_api/models/job_output.py +98 -0
  45. stract_api/models/job_output_record.py +103 -0
  46. stract_api/models/job_status.py +41 -0
  47. stract_api/models/llm_model.py +126 -0
  48. stract_api/models/login_request.py +92 -0
  49. stract_api/models/login_response.py +90 -0
  50. stract_api/models/model_field.py +110 -0
  51. stract_api/models/struct.py +100 -0
  52. stract_api/models/sync_text_job_request.py +118 -0
  53. stract_api/models/upload_text_document_request.py +93 -0
  54. stract_api/models/user.py +102 -0
  55. stract_api/py.typed +0 -0
  56. stract_api/rest.py +335 -0
  57. stract_api-0.1.0.dist-info/METADATA +266 -0
  58. stract_api-0.1.0.dist-info/RECORD +61 -0
  59. stract_api-0.1.0.dist-info/WHEEL +5 -0
  60. stract_api-0.1.0.dist-info/licenses/LICENSE +21 -0
  61. stract_api-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,534 @@
1
+ """
2
+ Stract API
3
+
4
+ Get structured output from unstructured inputs ## Machine authentication Programmatic access to the API is authenticated with an API key. Include the API key in every request as a bearer token in the `authorization` header: ``` authorization: bearer [apiKey] ``` ## SDKs Official SDKs are available for the following languages: - **Node (JavaScript / TypeScript)**: [`stract-api` on npm](https://www.npmjs.com/package/stract-api) - **Java (17+)**: [`com.stract-api:stract-api` on Maven Central](https://central.sonatype.com/artifact/com.stract-api/stract-api)
5
+
6
+ The version of the OpenAPI document: 0.9.4
7
+ Contact: matt@stract-api.com
8
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
9
+
10
+ Do not edit the class manually.
11
+ """ # noqa: E501
12
+
13
+
14
+ import warnings
15
+ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
16
+ from typing import Any, Dict, List, Optional, Tuple, Union
17
+ from typing_extensions import Annotated
18
+
19
+ from stract_api.models.account_credit_cache import AccountCreditCache
20
+
21
+ from stract_api.api_client import ApiClient, RequestSerialized
22
+ from stract_api.api_response import ApiResponse
23
+ from stract_api.rest import RESTResponseType
24
+
25
+
26
+ class CreditsApi:
27
+ """NOTE: This class is auto generated by OpenAPI Generator
28
+ Ref: https://openapi-generator.tech
29
+
30
+ Do not edit the class manually.
31
+ """
32
+
33
+ def __init__(self, api_client=None) -> None:
34
+ if api_client is None:
35
+ api_client = ApiClient.get_default()
36
+ self.api_client = api_client
37
+
38
+
39
+ @validate_call
40
+ def get_current_credits(
41
+ self,
42
+ _request_timeout: Union[
43
+ None,
44
+ Annotated[StrictFloat, Field(gt=0)],
45
+ Tuple[
46
+ Annotated[StrictFloat, Field(gt=0)],
47
+ Annotated[StrictFloat, Field(gt=0)]
48
+ ]
49
+ ] = None,
50
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
51
+ _content_type: Optional[StrictStr] = None,
52
+ _headers: Optional[Dict[StrictStr, Any]] = None,
53
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
54
+ ) -> AccountCreditCache:
55
+ """Get the current credit balance
56
+
57
+ Retrieve the credit balance for the user's account
58
+
59
+ :param _request_timeout: timeout setting for this request. If one
60
+ number provided, it will be total request
61
+ timeout. It can also be a pair (tuple) of
62
+ (connection, read) timeouts.
63
+ :type _request_timeout: int, tuple(int, int), optional
64
+ :param _request_auth: set to override the auth_settings for an a single
65
+ request; this effectively ignores the
66
+ authentication in the spec for a single request.
67
+ :type _request_auth: dict, optional
68
+ :param _content_type: force content-type for the request.
69
+ :type _content_type: str, Optional
70
+ :param _headers: set to override the headers for a single
71
+ request; this effectively ignores the headers
72
+ in the spec for a single request.
73
+ :type _headers: dict, optional
74
+ :param _host_index: set to override the host_index for a single
75
+ request; this effectively ignores the host_index
76
+ in the spec for a single request.
77
+ :type _host_index: int, optional
78
+ :return: Returns the result object.
79
+ """ # noqa: E501
80
+
81
+ _param = self._get_current_credits_serialize(
82
+ _request_auth=_request_auth,
83
+ _content_type=_content_type,
84
+ _headers=_headers,
85
+ _host_index=_host_index
86
+ )
87
+
88
+ _response_types_map: Dict[str, Optional[str]] = {
89
+ '200': "AccountCreditCache",
90
+ '401': "str",
91
+ }
92
+ response_data = self.api_client.call_api(
93
+ *_param,
94
+ _request_timeout=_request_timeout
95
+ )
96
+ response_data.read()
97
+ return self.api_client.response_deserialize(
98
+ response_data=response_data,
99
+ response_types_map=_response_types_map,
100
+ ).data
101
+
102
+
103
+ @validate_call
104
+ def get_current_credits_with_http_info(
105
+ self,
106
+ _request_timeout: Union[
107
+ None,
108
+ Annotated[StrictFloat, Field(gt=0)],
109
+ Tuple[
110
+ Annotated[StrictFloat, Field(gt=0)],
111
+ Annotated[StrictFloat, Field(gt=0)]
112
+ ]
113
+ ] = None,
114
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
115
+ _content_type: Optional[StrictStr] = None,
116
+ _headers: Optional[Dict[StrictStr, Any]] = None,
117
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
118
+ ) -> ApiResponse[AccountCreditCache]:
119
+ """Get the current credit balance
120
+
121
+ Retrieve the credit balance for the user's account
122
+
123
+ :param _request_timeout: timeout setting for this request. If one
124
+ number provided, it will be total request
125
+ timeout. It can also be a pair (tuple) of
126
+ (connection, read) timeouts.
127
+ :type _request_timeout: int, tuple(int, int), optional
128
+ :param _request_auth: set to override the auth_settings for an a single
129
+ request; this effectively ignores the
130
+ authentication in the spec for a single request.
131
+ :type _request_auth: dict, optional
132
+ :param _content_type: force content-type for the request.
133
+ :type _content_type: str, Optional
134
+ :param _headers: set to override the headers for a single
135
+ request; this effectively ignores the headers
136
+ in the spec for a single request.
137
+ :type _headers: dict, optional
138
+ :param _host_index: set to override the host_index for a single
139
+ request; this effectively ignores the host_index
140
+ in the spec for a single request.
141
+ :type _host_index: int, optional
142
+ :return: Returns the result object.
143
+ """ # noqa: E501
144
+
145
+ _param = self._get_current_credits_serialize(
146
+ _request_auth=_request_auth,
147
+ _content_type=_content_type,
148
+ _headers=_headers,
149
+ _host_index=_host_index
150
+ )
151
+
152
+ _response_types_map: Dict[str, Optional[str]] = {
153
+ '200': "AccountCreditCache",
154
+ '401': "str",
155
+ }
156
+ response_data = self.api_client.call_api(
157
+ *_param,
158
+ _request_timeout=_request_timeout
159
+ )
160
+ response_data.read()
161
+ return self.api_client.response_deserialize(
162
+ response_data=response_data,
163
+ response_types_map=_response_types_map,
164
+ )
165
+
166
+
167
+ @validate_call
168
+ def get_current_credits_without_preload_content(
169
+ self,
170
+ _request_timeout: Union[
171
+ None,
172
+ Annotated[StrictFloat, Field(gt=0)],
173
+ Tuple[
174
+ Annotated[StrictFloat, Field(gt=0)],
175
+ Annotated[StrictFloat, Field(gt=0)]
176
+ ]
177
+ ] = None,
178
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
179
+ _content_type: Optional[StrictStr] = None,
180
+ _headers: Optional[Dict[StrictStr, Any]] = None,
181
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
182
+ ) -> RESTResponseType:
183
+ """Get the current credit balance
184
+
185
+ Retrieve the credit balance for the user's account
186
+
187
+ :param _request_timeout: timeout setting for this request. If one
188
+ number provided, it will be total request
189
+ timeout. It can also be a pair (tuple) of
190
+ (connection, read) timeouts.
191
+ :type _request_timeout: int, tuple(int, int), optional
192
+ :param _request_auth: set to override the auth_settings for an a single
193
+ request; this effectively ignores the
194
+ authentication in the spec for a single request.
195
+ :type _request_auth: dict, optional
196
+ :param _content_type: force content-type for the request.
197
+ :type _content_type: str, Optional
198
+ :param _headers: set to override the headers for a single
199
+ request; this effectively ignores the headers
200
+ in the spec for a single request.
201
+ :type _headers: dict, optional
202
+ :param _host_index: set to override the host_index for a single
203
+ request; this effectively ignores the host_index
204
+ in the spec for a single request.
205
+ :type _host_index: int, optional
206
+ :return: Returns the result object.
207
+ """ # noqa: E501
208
+
209
+ _param = self._get_current_credits_serialize(
210
+ _request_auth=_request_auth,
211
+ _content_type=_content_type,
212
+ _headers=_headers,
213
+ _host_index=_host_index
214
+ )
215
+
216
+ _response_types_map: Dict[str, Optional[str]] = {
217
+ '200': "AccountCreditCache",
218
+ '401': "str",
219
+ }
220
+ response_data = self.api_client.call_api(
221
+ *_param,
222
+ _request_timeout=_request_timeout
223
+ )
224
+ return response_data.response
225
+
226
+
227
+ def _get_current_credits_serialize(
228
+ self,
229
+ _request_auth,
230
+ _content_type,
231
+ _headers,
232
+ _host_index,
233
+ ) -> RequestSerialized:
234
+
235
+ _host = None
236
+
237
+ _collection_formats: Dict[str, str] = {
238
+ }
239
+
240
+ _path_params: Dict[str, str] = {}
241
+ _query_params: List[Tuple[str, str]] = []
242
+ _header_params: Dict[str, Any] = self.api_client._merge_headers(_headers)
243
+ _form_params: List[Tuple[str, str]] = []
244
+ _files: Dict[
245
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
246
+ ] = {}
247
+ _body_params: Optional[bytes] = None
248
+
249
+ # process the path parameters
250
+ # process the query parameters
251
+ # process the header parameters
252
+ # process the form parameters
253
+ # process the body parameter
254
+
255
+
256
+ # set the HTTP header `Accept`
257
+ if not any(key.lower() == 'accept' for key in _header_params):
258
+ _header_params['Accept'] = self.api_client.select_header_accept(
259
+ [
260
+ 'application/json'
261
+ ]
262
+ )
263
+
264
+
265
+ # authentication setting
266
+ _auth_settings: List[str] = [
267
+ 'bearerAuth'
268
+ ]
269
+
270
+ return self.api_client.param_serialize(
271
+ method='GET',
272
+ resource_path='/current_credits',
273
+ path_params=_path_params,
274
+ query_params=_query_params,
275
+ header_params=_header_params,
276
+ body=_body_params,
277
+ post_params=_form_params,
278
+ files=_files,
279
+ auth_settings=_auth_settings,
280
+ collection_formats=_collection_formats,
281
+ _host=_host,
282
+ _request_auth=_request_auth
283
+ )
284
+
285
+
286
+
287
+
288
+ @validate_call
289
+ def get_current_org_credits(
290
+ self,
291
+ _request_timeout: Union[
292
+ None,
293
+ Annotated[StrictFloat, Field(gt=0)],
294
+ Tuple[
295
+ Annotated[StrictFloat, Field(gt=0)],
296
+ Annotated[StrictFloat, Field(gt=0)]
297
+ ]
298
+ ] = None,
299
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
300
+ _content_type: Optional[StrictStr] = None,
301
+ _headers: Optional[Dict[StrictStr, Any]] = None,
302
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
303
+ ) -> AccountCreditCache:
304
+ """Get the current organization credit balance
305
+
306
+ Retrieve the shared organization credit balance for the user's account
307
+
308
+ :param _request_timeout: timeout setting for this request. If one
309
+ number provided, it will be total request
310
+ timeout. It can also be a pair (tuple) of
311
+ (connection, read) timeouts.
312
+ :type _request_timeout: int, tuple(int, int), optional
313
+ :param _request_auth: set to override the auth_settings for an a single
314
+ request; this effectively ignores the
315
+ authentication in the spec for a single request.
316
+ :type _request_auth: dict, optional
317
+ :param _content_type: force content-type for the request.
318
+ :type _content_type: str, Optional
319
+ :param _headers: set to override the headers for a single
320
+ request; this effectively ignores the headers
321
+ in the spec for a single request.
322
+ :type _headers: dict, optional
323
+ :param _host_index: set to override the host_index for a single
324
+ request; this effectively ignores the host_index
325
+ in the spec for a single request.
326
+ :type _host_index: int, optional
327
+ :return: Returns the result object.
328
+ """ # noqa: E501
329
+
330
+ _param = self._get_current_org_credits_serialize(
331
+ _request_auth=_request_auth,
332
+ _content_type=_content_type,
333
+ _headers=_headers,
334
+ _host_index=_host_index
335
+ )
336
+
337
+ _response_types_map: Dict[str, Optional[str]] = {
338
+ '200': "AccountCreditCache",
339
+ '401': "str",
340
+ }
341
+ response_data = self.api_client.call_api(
342
+ *_param,
343
+ _request_timeout=_request_timeout
344
+ )
345
+ response_data.read()
346
+ return self.api_client.response_deserialize(
347
+ response_data=response_data,
348
+ response_types_map=_response_types_map,
349
+ ).data
350
+
351
+
352
+ @validate_call
353
+ def get_current_org_credits_with_http_info(
354
+ self,
355
+ _request_timeout: Union[
356
+ None,
357
+ Annotated[StrictFloat, Field(gt=0)],
358
+ Tuple[
359
+ Annotated[StrictFloat, Field(gt=0)],
360
+ Annotated[StrictFloat, Field(gt=0)]
361
+ ]
362
+ ] = None,
363
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
364
+ _content_type: Optional[StrictStr] = None,
365
+ _headers: Optional[Dict[StrictStr, Any]] = None,
366
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
367
+ ) -> ApiResponse[AccountCreditCache]:
368
+ """Get the current organization credit balance
369
+
370
+ Retrieve the shared organization credit balance for the user's account
371
+
372
+ :param _request_timeout: timeout setting for this request. If one
373
+ number provided, it will be total request
374
+ timeout. It can also be a pair (tuple) of
375
+ (connection, read) timeouts.
376
+ :type _request_timeout: int, tuple(int, int), optional
377
+ :param _request_auth: set to override the auth_settings for an a single
378
+ request; this effectively ignores the
379
+ authentication in the spec for a single request.
380
+ :type _request_auth: dict, optional
381
+ :param _content_type: force content-type for the request.
382
+ :type _content_type: str, Optional
383
+ :param _headers: set to override the headers for a single
384
+ request; this effectively ignores the headers
385
+ in the spec for a single request.
386
+ :type _headers: dict, optional
387
+ :param _host_index: set to override the host_index for a single
388
+ request; this effectively ignores the host_index
389
+ in the spec for a single request.
390
+ :type _host_index: int, optional
391
+ :return: Returns the result object.
392
+ """ # noqa: E501
393
+
394
+ _param = self._get_current_org_credits_serialize(
395
+ _request_auth=_request_auth,
396
+ _content_type=_content_type,
397
+ _headers=_headers,
398
+ _host_index=_host_index
399
+ )
400
+
401
+ _response_types_map: Dict[str, Optional[str]] = {
402
+ '200': "AccountCreditCache",
403
+ '401': "str",
404
+ }
405
+ response_data = self.api_client.call_api(
406
+ *_param,
407
+ _request_timeout=_request_timeout
408
+ )
409
+ response_data.read()
410
+ return self.api_client.response_deserialize(
411
+ response_data=response_data,
412
+ response_types_map=_response_types_map,
413
+ )
414
+
415
+
416
+ @validate_call
417
+ def get_current_org_credits_without_preload_content(
418
+ self,
419
+ _request_timeout: Union[
420
+ None,
421
+ Annotated[StrictFloat, Field(gt=0)],
422
+ Tuple[
423
+ Annotated[StrictFloat, Field(gt=0)],
424
+ Annotated[StrictFloat, Field(gt=0)]
425
+ ]
426
+ ] = None,
427
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
428
+ _content_type: Optional[StrictStr] = None,
429
+ _headers: Optional[Dict[StrictStr, Any]] = None,
430
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
431
+ ) -> RESTResponseType:
432
+ """Get the current organization credit balance
433
+
434
+ Retrieve the shared organization credit balance for the user's account
435
+
436
+ :param _request_timeout: timeout setting for this request. If one
437
+ number provided, it will be total request
438
+ timeout. It can also be a pair (tuple) of
439
+ (connection, read) timeouts.
440
+ :type _request_timeout: int, tuple(int, int), optional
441
+ :param _request_auth: set to override the auth_settings for an a single
442
+ request; this effectively ignores the
443
+ authentication in the spec for a single request.
444
+ :type _request_auth: dict, optional
445
+ :param _content_type: force content-type for the request.
446
+ :type _content_type: str, Optional
447
+ :param _headers: set to override the headers for a single
448
+ request; this effectively ignores the headers
449
+ in the spec for a single request.
450
+ :type _headers: dict, optional
451
+ :param _host_index: set to override the host_index for a single
452
+ request; this effectively ignores the host_index
453
+ in the spec for a single request.
454
+ :type _host_index: int, optional
455
+ :return: Returns the result object.
456
+ """ # noqa: E501
457
+
458
+ _param = self._get_current_org_credits_serialize(
459
+ _request_auth=_request_auth,
460
+ _content_type=_content_type,
461
+ _headers=_headers,
462
+ _host_index=_host_index
463
+ )
464
+
465
+ _response_types_map: Dict[str, Optional[str]] = {
466
+ '200': "AccountCreditCache",
467
+ '401': "str",
468
+ }
469
+ response_data = self.api_client.call_api(
470
+ *_param,
471
+ _request_timeout=_request_timeout
472
+ )
473
+ return response_data.response
474
+
475
+
476
+ def _get_current_org_credits_serialize(
477
+ self,
478
+ _request_auth,
479
+ _content_type,
480
+ _headers,
481
+ _host_index,
482
+ ) -> RequestSerialized:
483
+
484
+ _host = None
485
+
486
+ _collection_formats: Dict[str, str] = {
487
+ }
488
+
489
+ _path_params: Dict[str, str] = {}
490
+ _query_params: List[Tuple[str, str]] = []
491
+ _header_params: Dict[str, Any] = self.api_client._merge_headers(_headers)
492
+ _form_params: List[Tuple[str, str]] = []
493
+ _files: Dict[
494
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
495
+ ] = {}
496
+ _body_params: Optional[bytes] = None
497
+
498
+ # process the path parameters
499
+ # process the query parameters
500
+ # process the header parameters
501
+ # process the form parameters
502
+ # process the body parameter
503
+
504
+
505
+ # set the HTTP header `Accept`
506
+ if not any(key.lower() == 'accept' for key in _header_params):
507
+ _header_params['Accept'] = self.api_client.select_header_accept(
508
+ [
509
+ 'application/json'
510
+ ]
511
+ )
512
+
513
+
514
+ # authentication setting
515
+ _auth_settings: List[str] = [
516
+ 'bearerAuth'
517
+ ]
518
+
519
+ return self.api_client.param_serialize(
520
+ method='GET',
521
+ resource_path='/current_org_credits',
522
+ path_params=_path_params,
523
+ query_params=_query_params,
524
+ header_params=_header_params,
525
+ body=_body_params,
526
+ post_params=_form_params,
527
+ files=_files,
528
+ auth_settings=_auth_settings,
529
+ collection_formats=_collection_formats,
530
+ _host=_host,
531
+ _request_auth=_request_auth
532
+ )
533
+
534
+