openparser-sdk 0.0.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.

Potentially problematic release.


This version of openparser-sdk might be problematic. Click here for more details.

Files changed (173) hide show
  1. openparser/__init__.py +54 -0
  2. openparser/_files.py +43 -0
  3. openparser/_generated/__init__.py +8 -0
  4. openparser/_generated/api/__init__.py +1 -0
  5. openparser/_generated/api/extract/__init__.py +1 -0
  6. openparser/_generated/api/extract/extract_async.py +280 -0
  7. openparser/_generated/api/extract/extract_batch.py +284 -0
  8. openparser/_generated/api/extract/extract_sync.py +315 -0
  9. openparser/_generated/api/extract/suggest_schema.py +260 -0
  10. openparser/_generated/api/files/__init__.py +1 -0
  11. openparser/_generated/api/files/create_file.py +237 -0
  12. openparser/_generated/api/files/delete_file.py +200 -0
  13. openparser/_generated/api/files/get_file.py +200 -0
  14. openparser/_generated/api/files/get_file_content.py +198 -0
  15. openparser/_generated/api/jobs/__init__.py +1 -0
  16. openparser/_generated/api/jobs/get_job.py +261 -0
  17. openparser/_generated/api/jobs/get_job_result.py +305 -0
  18. openparser/_generated/api/jobs/get_job_source.py +233 -0
  19. openparser/_generated/api/jobs/list_jobs.py +340 -0
  20. openparser/_generated/api/models/__init__.py +1 -0
  21. openparser/_generated/api/models/list_llm_models.py +288 -0
  22. openparser/_generated/api/models/list_ocr_models.py +184 -0
  23. openparser/_generated/api/parse/__init__.py +1 -0
  24. openparser/_generated/api/parse/parse_async.py +316 -0
  25. openparser/_generated/api/parse/parse_batch.py +280 -0
  26. openparser/_generated/api/parse/parse_sync.py +369 -0
  27. openparser/_generated/api/pipelines/__init__.py +1 -0
  28. openparser/_generated/api/pipelines/create_extraction_pipeline.py +242 -0
  29. openparser/_generated/api/pipelines/delete_extraction_pipeline.py +212 -0
  30. openparser/_generated/api/pipelines/get_extraction_pipeline.py +212 -0
  31. openparser/_generated/api/pipelines/list_extraction_pipelines.py +180 -0
  32. openparser/_generated/api/pipelines/update_extraction_pipeline.py +258 -0
  33. openparser/_generated/client.py +270 -0
  34. openparser/_generated/errors.py +14 -0
  35. openparser/_generated/models/__init__.py +261 -0
  36. openparser/_generated/models/batch_child_page.py +97 -0
  37. openparser/_generated/models/batch_child_summary.py +195 -0
  38. openparser/_generated/models/batch_job_accepted.py +139 -0
  39. openparser/_generated/models/batch_job_accepted_operation.py +8 -0
  40. openparser/_generated/models/batch_summary_counts.py +97 -0
  41. openparser/_generated/models/bounding_box.py +82 -0
  42. openparser/_generated/models/chunk_provenance_span.py +97 -0
  43. openparser/_generated/models/content_kind.py +10 -0
  44. openparser/_generated/models/create_extraction_pipeline_request.py +177 -0
  45. openparser/_generated/models/create_extraction_pipeline_request_grounding.py +8 -0
  46. openparser/_generated/models/create_extraction_pipeline_request_llm_options.py +84 -0
  47. openparser/_generated/models/create_extraction_pipeline_request_llm_options_reasoning_effort_type_1.py +13 -0
  48. openparser/_generated/models/create_extraction_pipeline_request_ocr_options.py +78 -0
  49. openparser/_generated/models/create_extraction_pipeline_request_schema.py +68 -0
  50. openparser/_generated/models/create_file_body.py +78 -0
  51. openparser/_generated/models/delete_extraction_pipeline_response.py +66 -0
  52. openparser/_generated/models/delete_file_response.py +57 -0
  53. openparser/_generated/models/error_body.py +106 -0
  54. openparser/_generated/models/error_body_details.py +65 -0
  55. openparser/_generated/models/error_response.py +65 -0
  56. openparser/_generated/models/extract_async_body.py +136 -0
  57. openparser/_generated/models/extract_batch_body.py +143 -0
  58. openparser/_generated/models/extract_batch_item.py +207 -0
  59. openparser/_generated/models/extract_batch_item_grounding.py +8 -0
  60. openparser/_generated/models/extract_batch_item_llm_options.py +84 -0
  61. openparser/_generated/models/extract_batch_item_llm_options_reasoning_effort_type_1.py +13 -0
  62. openparser/_generated/models/extract_batch_item_ocr_options.py +78 -0
  63. openparser/_generated/models/extract_batch_item_schema.py +65 -0
  64. openparser/_generated/models/extract_batch_request.py +99 -0
  65. openparser/_generated/models/extract_batch_request_items_item.py +201 -0
  66. openparser/_generated/models/extract_batch_request_items_item_grounding.py +8 -0
  67. openparser/_generated/models/extract_batch_request_items_item_llm_options.py +84 -0
  68. openparser/_generated/models/extract_batch_request_items_item_llm_options_reasoning_effort_type_1.py +13 -0
  69. openparser/_generated/models/extract_batch_request_items_item_ocr_options.py +78 -0
  70. openparser/_generated/models/extract_batch_request_items_item_schema.py +65 -0
  71. openparser/_generated/models/extract_batch_request_output_format.py +8 -0
  72. openparser/_generated/models/extract_request.py +226 -0
  73. openparser/_generated/models/extract_request_grounding.py +8 -0
  74. openparser/_generated/models/extract_request_llm_options.py +84 -0
  75. openparser/_generated/models/extract_request_llm_options_reasoning_effort_type_1.py +13 -0
  76. openparser/_generated/models/extract_request_ocr_options.py +78 -0
  77. openparser/_generated/models/extract_request_output_format.py +8 -0
  78. openparser/_generated/models/extract_request_schema.py +65 -0
  79. openparser/_generated/models/extract_sync_body.py +136 -0
  80. openparser/_generated/models/extraction_attempt.py +122 -0
  81. openparser/_generated/models/extraction_attempt_kind.py +8 -0
  82. openparser/_generated/models/extraction_attempt_status.py +9 -0
  83. openparser/_generated/models/extraction_chunk.py +184 -0
  84. openparser/_generated/models/extraction_citation.py +169 -0
  85. openparser/_generated/models/extraction_citation_granularity.py +8 -0
  86. openparser/_generated/models/extraction_citation_source_type.py +16 -0
  87. openparser/_generated/models/extraction_grounding_field.py +102 -0
  88. openparser/_generated/models/extraction_grounding_mode.py +8 -0
  89. openparser/_generated/models/extraction_grounding_result.py +87 -0
  90. openparser/_generated/models/extraction_pipeline.py +201 -0
  91. openparser/_generated/models/extraction_pipeline_list_response.py +76 -0
  92. openparser/_generated/models/extraction_pipeline_llm_options.py +84 -0
  93. openparser/_generated/models/extraction_pipeline_llm_options_reasoning_effort_type_0_type_1.py +13 -0
  94. openparser/_generated/models/extraction_pipeline_ocr_options.py +73 -0
  95. openparser/_generated/models/extraction_pipeline_schema.py +67 -0
  96. openparser/_generated/models/extraction_terminal_result.py +206 -0
  97. openparser/_generated/models/extraction_terminal_result_reasoning_effort_type_0.py +13 -0
  98. openparser/_generated/models/extraction_usage_totals.py +80 -0
  99. openparser/_generated/models/job.py +437 -0
  100. openparser/_generated/models/job_accepted.py +131 -0
  101. openparser/_generated/models/job_accepted_operation.py +8 -0
  102. openparser/_generated/models/job_extraction_schema.py +65 -0
  103. openparser/_generated/models/job_failure.py +98 -0
  104. openparser/_generated/models/job_failure_details.py +65 -0
  105. openparser/_generated/models/job_list_response.py +91 -0
  106. openparser/_generated/models/job_operation.py +10 -0
  107. openparser/_generated/models/job_progress.py +68 -0
  108. openparser/_generated/models/job_related_extractions_item.py +145 -0
  109. openparser/_generated/models/job_status.py +11 -0
  110. openparser/_generated/models/job_summary.py +264 -0
  111. openparser/_generated/models/json_schema_object.py +66 -0
  112. openparser/_generated/models/list_llm_models_mode.py +8 -0
  113. openparser/_generated/models/ocr_llm_model_catalog_entry.py +257 -0
  114. openparser/_generated/models/ocr_llm_model_catalog_entry_pricing.py +76 -0
  115. openparser/_generated/models/ocr_llm_model_catalog_entry_reasoning_type_0.py +134 -0
  116. openparser/_generated/models/ocr_llm_model_catalog_entry_reasoning_type_0_default_effort_type_0.py +13 -0
  117. openparser/_generated/models/ocr_llm_model_catalog_entry_reasoning_type_0_supported_efforts_type_0_item.py +13 -0
  118. openparser/_generated/models/ocr_llm_model_catalog_entry_recommendation.py +8 -0
  119. openparser/_generated/models/ocr_llm_models_response.py +150 -0
  120. openparser/_generated/models/ocr_llm_models_response_mode.py +8 -0
  121. openparser/_generated/models/ocr_model.py +7 -0
  122. openparser/_generated/models/ocr_model_catalog_entry.py +131 -0
  123. openparser/_generated/models/ocr_model_catalog_entry_availability.py +9 -0
  124. openparser/_generated/models/ocr_model_catalog_entry_capabilities.py +97 -0
  125. openparser/_generated/models/ocr_model_catalog_entry_capabilities_options.py +73 -0
  126. openparser/_generated/models/ocr_model_catalog_entry_option_defaults.py +73 -0
  127. openparser/_generated/models/ocr_model_catalog_entry_pricing.py +68 -0
  128. openparser/_generated/models/ocr_models_response.py +76 -0
  129. openparser/_generated/models/ocr_output_format.py +8 -0
  130. openparser/_generated/models/paddle_raw_profile.py +76 -0
  131. openparser/_generated/models/paddle_raw_profile_options.py +115 -0
  132. openparser/_generated/models/page_block.py +332 -0
  133. openparser/_generated/models/page_block_kind.py +9 -0
  134. openparser/_generated/models/page_block_polygon_type_0_item.py +65 -0
  135. openparser/_generated/models/parse_async_body.py +133 -0
  136. openparser/_generated/models/parse_batch_body.py +143 -0
  137. openparser/_generated/models/parse_batch_item.py +109 -0
  138. openparser/_generated/models/parse_batch_item_ocr_options.py +78 -0
  139. openparser/_generated/models/parse_batch_request.py +100 -0
  140. openparser/_generated/models/parse_batch_request_items_item.py +108 -0
  141. openparser/_generated/models/parse_batch_request_items_item_ocr_options.py +78 -0
  142. openparser/_generated/models/parse_batch_request_output_format.py +8 -0
  143. openparser/_generated/models/parse_request.py +112 -0
  144. openparser/_generated/models/parse_request_ocr_options.py +78 -0
  145. openparser/_generated/models/parse_request_output_format.py +8 -0
  146. openparser/_generated/models/parse_sync_body.py +133 -0
  147. openparser/_generated/models/parsed_document.py +187 -0
  148. openparser/_generated/models/public_file.py +117 -0
  149. openparser/_generated/models/raw_parse_result.py +110 -0
  150. openparser/_generated/models/raw_parse_result_result.py +65 -0
  151. openparser/_generated/models/region.py +224 -0
  152. openparser/_generated/models/region_content.py +155 -0
  153. openparser/_generated/models/region_polygon_type_0_item.py +65 -0
  154. openparser/_generated/models/region_type.py +16 -0
  155. openparser/_generated/models/suggest_schema_request.py +69 -0
  156. openparser/_generated/models/suggest_schema_response.py +74 -0
  157. openparser/_generated/models/suggest_schema_response_schema.py +66 -0
  158. openparser/_generated/models/update_extraction_pipeline_request.py +227 -0
  159. openparser/_generated/models/update_extraction_pipeline_request_grounding.py +8 -0
  160. openparser/_generated/models/update_extraction_pipeline_request_llm_options_type_0.py +84 -0
  161. openparser/_generated/models/update_extraction_pipeline_request_llm_options_type_0_reasoning_effort_type_1.py +13 -0
  162. openparser/_generated/models/update_extraction_pipeline_request_ocr_options_type_0.py +78 -0
  163. openparser/_generated/models/update_extraction_pipeline_request_schema.py +67 -0
  164. openparser/_generated/py.typed +1 -0
  165. openparser/_generated/types.py +53 -0
  166. openparser/_telemetry.py +34 -0
  167. openparser/client.py +541 -0
  168. openparser/errors.py +172 -0
  169. openparser/py.typed +0 -0
  170. openparser_sdk-0.0.1.dist-info/METADATA +178 -0
  171. openparser_sdk-0.0.1.dist-info/RECORD +173 -0
  172. openparser_sdk-0.0.1.dist-info/WHEEL +4 -0
  173. openparser_sdk-0.0.1.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,315 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, cast
3
+ from urllib.parse import quote
4
+
5
+ import httpx
6
+
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...types import Response, UNSET
9
+ from ... import errors
10
+
11
+ from ...models.error_response import ErrorResponse
12
+ from ...models.extract_sync_body import ExtractSyncBody
13
+ from ...models.extraction_terminal_result import ExtractionTerminalResult
14
+ from ...models.job_accepted import JobAccepted
15
+ from typing import cast
16
+
17
+
18
+
19
+ def _get_kwargs(
20
+ *,
21
+ body: ExtractSyncBody,
22
+ idempotency_key: str,
23
+
24
+ ) -> dict[str, Any]:
25
+ headers: dict[str, Any] = {}
26
+ headers["Idempotency-Key"] = idempotency_key
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+ _kwargs: dict[str, Any] = {
35
+ "method": "post",
36
+ "url": "/extract",
37
+ }
38
+
39
+ _kwargs["files"] = body.to_multipart()
40
+
41
+
42
+
43
+ _kwargs["headers"] = headers
44
+ return _kwargs
45
+
46
+
47
+
48
+ def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> ErrorResponse | ExtractionTerminalResult | JobAccepted | None:
49
+ if response.status_code == 200:
50
+ response_200 = ExtractionTerminalResult.from_dict(response.json())
51
+
52
+
53
+
54
+ return response_200
55
+
56
+ if response.status_code == 202:
57
+ response_202 = JobAccepted.from_dict(response.json())
58
+
59
+
60
+
61
+ return response_202
62
+
63
+ if response.status_code == 400:
64
+ response_400 = ErrorResponse.from_dict(response.json())
65
+
66
+
67
+
68
+ return response_400
69
+
70
+ if response.status_code == 401:
71
+ response_401 = ErrorResponse.from_dict(response.json())
72
+
73
+
74
+
75
+ return response_401
76
+
77
+ if response.status_code == 402:
78
+ response_402 = ErrorResponse.from_dict(response.json())
79
+
80
+
81
+
82
+ return response_402
83
+
84
+ if response.status_code == 403:
85
+ response_403 = ErrorResponse.from_dict(response.json())
86
+
87
+
88
+
89
+ return response_403
90
+
91
+ if response.status_code == 409:
92
+ response_409 = ErrorResponse.from_dict(response.json())
93
+
94
+
95
+
96
+ return response_409
97
+
98
+ if response.status_code == 413:
99
+ response_413 = ErrorResponse.from_dict(response.json())
100
+
101
+
102
+
103
+ return response_413
104
+
105
+ if response.status_code == 415:
106
+ response_415 = ErrorResponse.from_dict(response.json())
107
+
108
+
109
+
110
+ return response_415
111
+
112
+ if response.status_code == 422:
113
+ response_422 = ErrorResponse.from_dict(response.json())
114
+
115
+
116
+
117
+ return response_422
118
+
119
+ if response.status_code == 429:
120
+ response_429 = ErrorResponse.from_dict(response.json())
121
+
122
+
123
+
124
+ return response_429
125
+
126
+ if response.status_code == 503:
127
+ response_503 = ErrorResponse.from_dict(response.json())
128
+
129
+
130
+
131
+ return response_503
132
+
133
+ if response.status_code == 504:
134
+ response_504 = ErrorResponse.from_dict(response.json())
135
+
136
+
137
+
138
+ return response_504
139
+
140
+ if client.raise_on_unexpected_status:
141
+ raise errors.UnexpectedStatus(response.status_code, response.content)
142
+ else:
143
+ return None
144
+
145
+
146
+ def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[ErrorResponse | ExtractionTerminalResult | JobAccepted]:
147
+ return Response(
148
+ status_code=HTTPStatus(response.status_code),
149
+ content=response.content,
150
+ headers=response.headers,
151
+ parsed=_parse_response(client=client, response=response),
152
+ )
153
+
154
+
155
+ def sync_detailed(
156
+ *,
157
+ client: AuthenticatedClient | Client,
158
+ body: ExtractSyncBody,
159
+ idempotency_key: str,
160
+
161
+ ) -> Response[ErrorResponse | ExtractionTerminalResult | JobAccepted]:
162
+ """ Extract structured data synchronously
163
+
164
+ Admit a single extract job from file bytes, `file_id`, or a tenant-owned succeeded
165
+ `parse_job_id`, then run schema-constrained OpenRouter extraction via `llm_model`. A
166
+ `parse_job_id` source reuses the canonical ParsedDocument (from dual artifacts or legacy
167
+ `result_json`) without OCR or another page charge; historical raw-only parses return
168
+ `422 canonical_result_unavailable`. Wait up to the sync wait limit and return
169
+ `ExtractionTerminalResult` when ready. Terminal `failed` within the wait window returns
170
+ `422`; terminal `indeterminate` returns `504`. Returns `202` with a durable job reference
171
+ and `Location` if the wait expires.
172
+
173
+ Args:
174
+ idempotency_key (str):
175
+ body (ExtractSyncBody):
176
+
177
+ Raises:
178
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
179
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
180
+
181
+ Returns:
182
+ Response[ErrorResponse | ExtractionTerminalResult | JobAccepted]
183
+ """
184
+
185
+
186
+ kwargs = _get_kwargs(
187
+ body=body,
188
+ idempotency_key=idempotency_key,
189
+
190
+ )
191
+
192
+ response = client.get_httpx_client().request(
193
+ **kwargs,
194
+ )
195
+
196
+ return _build_response(client=client, response=response)
197
+
198
+ def sync(
199
+ *,
200
+ client: AuthenticatedClient | Client,
201
+ body: ExtractSyncBody,
202
+ idempotency_key: str,
203
+
204
+ ) -> ErrorResponse | ExtractionTerminalResult | JobAccepted | None:
205
+ """ Extract structured data synchronously
206
+
207
+ Admit a single extract job from file bytes, `file_id`, or a tenant-owned succeeded
208
+ `parse_job_id`, then run schema-constrained OpenRouter extraction via `llm_model`. A
209
+ `parse_job_id` source reuses the canonical ParsedDocument (from dual artifacts or legacy
210
+ `result_json`) without OCR or another page charge; historical raw-only parses return
211
+ `422 canonical_result_unavailable`. Wait up to the sync wait limit and return
212
+ `ExtractionTerminalResult` when ready. Terminal `failed` within the wait window returns
213
+ `422`; terminal `indeterminate` returns `504`. Returns `202` with a durable job reference
214
+ and `Location` if the wait expires.
215
+
216
+ Args:
217
+ idempotency_key (str):
218
+ body (ExtractSyncBody):
219
+
220
+ Raises:
221
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
222
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
223
+
224
+ Returns:
225
+ ErrorResponse | ExtractionTerminalResult | JobAccepted
226
+ """
227
+
228
+
229
+ return sync_detailed(
230
+ client=client,
231
+ body=body,
232
+ idempotency_key=idempotency_key,
233
+
234
+ ).parsed
235
+
236
+ async def asyncio_detailed(
237
+ *,
238
+ client: AuthenticatedClient | Client,
239
+ body: ExtractSyncBody,
240
+ idempotency_key: str,
241
+
242
+ ) -> Response[ErrorResponse | ExtractionTerminalResult | JobAccepted]:
243
+ """ Extract structured data synchronously
244
+
245
+ Admit a single extract job from file bytes, `file_id`, or a tenant-owned succeeded
246
+ `parse_job_id`, then run schema-constrained OpenRouter extraction via `llm_model`. A
247
+ `parse_job_id` source reuses the canonical ParsedDocument (from dual artifacts or legacy
248
+ `result_json`) without OCR or another page charge; historical raw-only parses return
249
+ `422 canonical_result_unavailable`. Wait up to the sync wait limit and return
250
+ `ExtractionTerminalResult` when ready. Terminal `failed` within the wait window returns
251
+ `422`; terminal `indeterminate` returns `504`. Returns `202` with a durable job reference
252
+ and `Location` if the wait expires.
253
+
254
+ Args:
255
+ idempotency_key (str):
256
+ body (ExtractSyncBody):
257
+
258
+ Raises:
259
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
260
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
261
+
262
+ Returns:
263
+ Response[ErrorResponse | ExtractionTerminalResult | JobAccepted]
264
+ """
265
+
266
+
267
+ kwargs = _get_kwargs(
268
+ body=body,
269
+ idempotency_key=idempotency_key,
270
+
271
+ )
272
+
273
+ response = await client.get_async_httpx_client().request(
274
+ **kwargs
275
+ )
276
+
277
+ return _build_response(client=client, response=response)
278
+
279
+ async def asyncio(
280
+ *,
281
+ client: AuthenticatedClient | Client,
282
+ body: ExtractSyncBody,
283
+ idempotency_key: str,
284
+
285
+ ) -> ErrorResponse | ExtractionTerminalResult | JobAccepted | None:
286
+ """ Extract structured data synchronously
287
+
288
+ Admit a single extract job from file bytes, `file_id`, or a tenant-owned succeeded
289
+ `parse_job_id`, then run schema-constrained OpenRouter extraction via `llm_model`. A
290
+ `parse_job_id` source reuses the canonical ParsedDocument (from dual artifacts or legacy
291
+ `result_json`) without OCR or another page charge; historical raw-only parses return
292
+ `422 canonical_result_unavailable`. Wait up to the sync wait limit and return
293
+ `ExtractionTerminalResult` when ready. Terminal `failed` within the wait window returns
294
+ `422`; terminal `indeterminate` returns `504`. Returns `202` with a durable job reference
295
+ and `Location` if the wait expires.
296
+
297
+ Args:
298
+ idempotency_key (str):
299
+ body (ExtractSyncBody):
300
+
301
+ Raises:
302
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
303
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
304
+
305
+ Returns:
306
+ ErrorResponse | ExtractionTerminalResult | JobAccepted
307
+ """
308
+
309
+
310
+ return (await asyncio_detailed(
311
+ client=client,
312
+ body=body,
313
+ idempotency_key=idempotency_key,
314
+
315
+ )).parsed
@@ -0,0 +1,260 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, cast
3
+ from urllib.parse import quote
4
+
5
+ import httpx
6
+
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...types import Response, UNSET
9
+ from ... import errors
10
+
11
+ from ...models.error_response import ErrorResponse
12
+ from ...models.suggest_schema_request import SuggestSchemaRequest
13
+ from ...models.suggest_schema_response import SuggestSchemaResponse
14
+ from typing import cast
15
+
16
+
17
+
18
+ def _get_kwargs(
19
+ *,
20
+ body: SuggestSchemaRequest,
21
+
22
+ ) -> dict[str, Any]:
23
+ headers: dict[str, Any] = {}
24
+
25
+
26
+
27
+
28
+
29
+
30
+ _kwargs: dict[str, Any] = {
31
+ "method": "post",
32
+ "url": "/suggest-schema",
33
+ }
34
+
35
+ _kwargs["json"] = body.to_dict()
36
+
37
+
38
+ headers["Content-Type"] = "application/json"
39
+
40
+ _kwargs["headers"] = headers
41
+ return _kwargs
42
+
43
+
44
+
45
+ def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> ErrorResponse | SuggestSchemaResponse | None:
46
+ if response.status_code == 200:
47
+ response_200 = SuggestSchemaResponse.from_dict(response.json())
48
+
49
+
50
+
51
+ return response_200
52
+
53
+ if response.status_code == 400:
54
+ response_400 = ErrorResponse.from_dict(response.json())
55
+
56
+
57
+
58
+ return response_400
59
+
60
+ if response.status_code == 401:
61
+ response_401 = ErrorResponse.from_dict(response.json())
62
+
63
+
64
+
65
+ return response_401
66
+
67
+ if response.status_code == 403:
68
+ response_403 = ErrorResponse.from_dict(response.json())
69
+
70
+
71
+
72
+ return response_403
73
+
74
+ if response.status_code == 404:
75
+ response_404 = ErrorResponse.from_dict(response.json())
76
+
77
+
78
+
79
+ return response_404
80
+
81
+ if response.status_code == 422:
82
+ response_422 = ErrorResponse.from_dict(response.json())
83
+
84
+
85
+
86
+ return response_422
87
+
88
+ if response.status_code == 429:
89
+ response_429 = ErrorResponse.from_dict(response.json())
90
+
91
+
92
+
93
+ return response_429
94
+
95
+ if response.status_code == 503:
96
+ response_503 = ErrorResponse.from_dict(response.json())
97
+
98
+
99
+
100
+ return response_503
101
+
102
+ if response.status_code == 504:
103
+ response_504 = ErrorResponse.from_dict(response.json())
104
+
105
+
106
+
107
+ return response_504
108
+
109
+ if client.raise_on_unexpected_status:
110
+ raise errors.UnexpectedStatus(response.status_code, response.content)
111
+ else:
112
+ return None
113
+
114
+
115
+ def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[ErrorResponse | SuggestSchemaResponse]:
116
+ return Response(
117
+ status_code=HTTPStatus(response.status_code),
118
+ content=response.content,
119
+ headers=response.headers,
120
+ parsed=_parse_response(client=client, response=response),
121
+ )
122
+
123
+
124
+ def sync_detailed(
125
+ *,
126
+ client: AuthenticatedClient | Client,
127
+ body: SuggestSchemaRequest,
128
+
129
+ ) -> Response[ErrorResponse | SuggestSchemaResponse]:
130
+ """ Suggest an extraction schema
131
+
132
+ Suggest an extraction JSON Schema from a tenant-owned succeeded parse result.
133
+ Optional `hint` is capped at 500 characters. Definitive failures return
134
+ `schema_suggestion_failed`.
135
+
136
+ Args:
137
+ body (SuggestSchemaRequest): Suggest an extraction JSON Schema from a tenant-owned
138
+ succeeded `parse` job.
139
+ Optional `hint` is caller guidance capped at 500 characters.
140
+
141
+ Raises:
142
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
143
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
144
+
145
+ Returns:
146
+ Response[ErrorResponse | SuggestSchemaResponse]
147
+ """
148
+
149
+
150
+ kwargs = _get_kwargs(
151
+ body=body,
152
+
153
+ )
154
+
155
+ response = client.get_httpx_client().request(
156
+ **kwargs,
157
+ )
158
+
159
+ return _build_response(client=client, response=response)
160
+
161
+ def sync(
162
+ *,
163
+ client: AuthenticatedClient | Client,
164
+ body: SuggestSchemaRequest,
165
+
166
+ ) -> ErrorResponse | SuggestSchemaResponse | None:
167
+ """ Suggest an extraction schema
168
+
169
+ Suggest an extraction JSON Schema from a tenant-owned succeeded parse result.
170
+ Optional `hint` is capped at 500 characters. Definitive failures return
171
+ `schema_suggestion_failed`.
172
+
173
+ Args:
174
+ body (SuggestSchemaRequest): Suggest an extraction JSON Schema from a tenant-owned
175
+ succeeded `parse` job.
176
+ Optional `hint` is caller guidance capped at 500 characters.
177
+
178
+ Raises:
179
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
180
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
181
+
182
+ Returns:
183
+ ErrorResponse | SuggestSchemaResponse
184
+ """
185
+
186
+
187
+ return sync_detailed(
188
+ client=client,
189
+ body=body,
190
+
191
+ ).parsed
192
+
193
+ async def asyncio_detailed(
194
+ *,
195
+ client: AuthenticatedClient | Client,
196
+ body: SuggestSchemaRequest,
197
+
198
+ ) -> Response[ErrorResponse | SuggestSchemaResponse]:
199
+ """ Suggest an extraction schema
200
+
201
+ Suggest an extraction JSON Schema from a tenant-owned succeeded parse result.
202
+ Optional `hint` is capped at 500 characters. Definitive failures return
203
+ `schema_suggestion_failed`.
204
+
205
+ Args:
206
+ body (SuggestSchemaRequest): Suggest an extraction JSON Schema from a tenant-owned
207
+ succeeded `parse` job.
208
+ Optional `hint` is caller guidance capped at 500 characters.
209
+
210
+ Raises:
211
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
212
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
213
+
214
+ Returns:
215
+ Response[ErrorResponse | SuggestSchemaResponse]
216
+ """
217
+
218
+
219
+ kwargs = _get_kwargs(
220
+ body=body,
221
+
222
+ )
223
+
224
+ response = await client.get_async_httpx_client().request(
225
+ **kwargs
226
+ )
227
+
228
+ return _build_response(client=client, response=response)
229
+
230
+ async def asyncio(
231
+ *,
232
+ client: AuthenticatedClient | Client,
233
+ body: SuggestSchemaRequest,
234
+
235
+ ) -> ErrorResponse | SuggestSchemaResponse | None:
236
+ """ Suggest an extraction schema
237
+
238
+ Suggest an extraction JSON Schema from a tenant-owned succeeded parse result.
239
+ Optional `hint` is capped at 500 characters. Definitive failures return
240
+ `schema_suggestion_failed`.
241
+
242
+ Args:
243
+ body (SuggestSchemaRequest): Suggest an extraction JSON Schema from a tenant-owned
244
+ succeeded `parse` job.
245
+ Optional `hint` is caller guidance capped at 500 characters.
246
+
247
+ Raises:
248
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
249
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
250
+
251
+ Returns:
252
+ ErrorResponse | SuggestSchemaResponse
253
+ """
254
+
255
+
256
+ return (await asyncio_detailed(
257
+ client=client,
258
+ body=body,
259
+
260
+ )).parsed
@@ -0,0 +1 @@
1
+ """ Contains endpoint functions for accessing the API """