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.
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,305 @@
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.ocr_output_format import OcrOutputFormat
13
+ from ...models.parsed_document import ParsedDocument
14
+ from ...models.raw_parse_result import RawParseResult
15
+ from ...types import UNSET, Unset
16
+ from typing import cast
17
+
18
+
19
+
20
+ def _get_kwargs(
21
+ id: str,
22
+ *,
23
+ format_: OcrOutputFormat | Unset = UNSET,
24
+
25
+ ) -> dict[str, Any]:
26
+
27
+
28
+
29
+
30
+ params: dict[str, Any] = {}
31
+
32
+ json_format_: str | Unset = UNSET
33
+ if not isinstance(format_, Unset):
34
+ json_format_ = format_.value
35
+
36
+ params["format"] = json_format_
37
+
38
+
39
+ params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
40
+
41
+
42
+ _kwargs: dict[str, Any] = {
43
+ "method": "get",
44
+ "url": "/jobs/{id}/result".format(id=quote(str(id), safe=""),),
45
+ "params": params,
46
+ }
47
+
48
+
49
+ return _kwargs
50
+
51
+
52
+
53
+ def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> ErrorResponse | ParsedDocument | RawParseResult | None:
54
+ if response.status_code == 200:
55
+ def _parse_response_200(data: object) -> ParsedDocument | RawParseResult:
56
+ try:
57
+ if not isinstance(data, dict):
58
+ raise TypeError()
59
+ componentsschemas_parse_result_type_0 = ParsedDocument.from_dict(data)
60
+
61
+
62
+
63
+ return componentsschemas_parse_result_type_0
64
+ except (TypeError, ValueError, AttributeError, KeyError):
65
+ pass
66
+ if not isinstance(data, dict):
67
+ raise TypeError()
68
+ componentsschemas_parse_result_type_1 = RawParseResult.from_dict(data)
69
+
70
+
71
+
72
+ return componentsschemas_parse_result_type_1
73
+
74
+ response_200 = _parse_response_200(response.json())
75
+
76
+ return response_200
77
+
78
+ if response.status_code == 400:
79
+ response_400 = ErrorResponse.from_dict(response.json())
80
+
81
+
82
+
83
+ return response_400
84
+
85
+ if response.status_code == 401:
86
+ response_401 = ErrorResponse.from_dict(response.json())
87
+
88
+
89
+
90
+ return response_401
91
+
92
+ if response.status_code == 403:
93
+ response_403 = ErrorResponse.from_dict(response.json())
94
+
95
+
96
+
97
+ return response_403
98
+
99
+ if response.status_code == 404:
100
+ response_404 = ErrorResponse.from_dict(response.json())
101
+
102
+
103
+
104
+ return response_404
105
+
106
+ if response.status_code == 409:
107
+ response_409 = ErrorResponse.from_dict(response.json())
108
+
109
+
110
+
111
+ return response_409
112
+
113
+ if response.status_code == 422:
114
+ response_422 = ErrorResponse.from_dict(response.json())
115
+
116
+
117
+
118
+ return response_422
119
+
120
+ if response.status_code == 429:
121
+ response_429 = ErrorResponse.from_dict(response.json())
122
+
123
+
124
+
125
+ return response_429
126
+
127
+ if response.status_code == 504:
128
+ response_504 = ErrorResponse.from_dict(response.json())
129
+
130
+
131
+
132
+ return response_504
133
+
134
+ if client.raise_on_unexpected_status:
135
+ raise errors.UnexpectedStatus(response.status_code, response.content)
136
+ else:
137
+ return None
138
+
139
+
140
+ def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[ErrorResponse | ParsedDocument | RawParseResult]:
141
+ return Response(
142
+ status_code=HTTPStatus(response.status_code),
143
+ content=response.content,
144
+ headers=response.headers,
145
+ parsed=_parse_response(client=client, response=response),
146
+ )
147
+
148
+
149
+ def sync_detailed(
150
+ id: str,
151
+ *,
152
+ client: AuthenticatedClient | Client,
153
+ format_: OcrOutputFormat | Unset = UNSET,
154
+
155
+ ) -> Response[ErrorResponse | ParsedDocument | RawParseResult]:
156
+ """ Get a parse job result representation
157
+
158
+ Return the selected parse wire body for a tenant-owned succeeded parse job.
159
+ `format` defaults to the job's original `output_format`. Fresh dual-artifact parses
160
+ can serve either `openparser@1` or `raw` from object storage without re-running HPS
161
+ or charging pages. Historical jobs only serve the representation already present in
162
+ `result_json`; unavailable alternates return `422 result_format_unavailable` with
163
+ guidance. Non-terminal jobs return `409 job_not_terminal`. Playground tokens
164
+ (`ocr:playground`) and `ocr:full` keys are both accepted.
165
+
166
+ Args:
167
+ id (str): Prefixed public id for an OCR job (`opj_…`). Example: opj_V1StGXR8_Z5jdHi6B-myT.
168
+ format_ (OcrOutputFormat | Unset):
169
+
170
+ Raises:
171
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
172
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
173
+
174
+ Returns:
175
+ Response[ErrorResponse | ParsedDocument | RawParseResult]
176
+ """
177
+
178
+
179
+ kwargs = _get_kwargs(
180
+ id=id,
181
+ format_=format_,
182
+
183
+ )
184
+
185
+ response = client.get_httpx_client().request(
186
+ **kwargs,
187
+ )
188
+
189
+ return _build_response(client=client, response=response)
190
+
191
+ def sync(
192
+ id: str,
193
+ *,
194
+ client: AuthenticatedClient | Client,
195
+ format_: OcrOutputFormat | Unset = UNSET,
196
+
197
+ ) -> ErrorResponse | ParsedDocument | RawParseResult | None:
198
+ """ Get a parse job result representation
199
+
200
+ Return the selected parse wire body for a tenant-owned succeeded parse job.
201
+ `format` defaults to the job's original `output_format`. Fresh dual-artifact parses
202
+ can serve either `openparser@1` or `raw` from object storage without re-running HPS
203
+ or charging pages. Historical jobs only serve the representation already present in
204
+ `result_json`; unavailable alternates return `422 result_format_unavailable` with
205
+ guidance. Non-terminal jobs return `409 job_not_terminal`. Playground tokens
206
+ (`ocr:playground`) and `ocr:full` keys are both accepted.
207
+
208
+ Args:
209
+ id (str): Prefixed public id for an OCR job (`opj_…`). Example: opj_V1StGXR8_Z5jdHi6B-myT.
210
+ format_ (OcrOutputFormat | Unset):
211
+
212
+ Raises:
213
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
214
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
215
+
216
+ Returns:
217
+ ErrorResponse | ParsedDocument | RawParseResult
218
+ """
219
+
220
+
221
+ return sync_detailed(
222
+ id=id,
223
+ client=client,
224
+ format_=format_,
225
+
226
+ ).parsed
227
+
228
+ async def asyncio_detailed(
229
+ id: str,
230
+ *,
231
+ client: AuthenticatedClient | Client,
232
+ format_: OcrOutputFormat | Unset = UNSET,
233
+
234
+ ) -> Response[ErrorResponse | ParsedDocument | RawParseResult]:
235
+ """ Get a parse job result representation
236
+
237
+ Return the selected parse wire body for a tenant-owned succeeded parse job.
238
+ `format` defaults to the job's original `output_format`. Fresh dual-artifact parses
239
+ can serve either `openparser@1` or `raw` from object storage without re-running HPS
240
+ or charging pages. Historical jobs only serve the representation already present in
241
+ `result_json`; unavailable alternates return `422 result_format_unavailable` with
242
+ guidance. Non-terminal jobs return `409 job_not_terminal`. Playground tokens
243
+ (`ocr:playground`) and `ocr:full` keys are both accepted.
244
+
245
+ Args:
246
+ id (str): Prefixed public id for an OCR job (`opj_…`). Example: opj_V1StGXR8_Z5jdHi6B-myT.
247
+ format_ (OcrOutputFormat | Unset):
248
+
249
+ Raises:
250
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
251
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
252
+
253
+ Returns:
254
+ Response[ErrorResponse | ParsedDocument | RawParseResult]
255
+ """
256
+
257
+
258
+ kwargs = _get_kwargs(
259
+ id=id,
260
+ format_=format_,
261
+
262
+ )
263
+
264
+ response = await client.get_async_httpx_client().request(
265
+ **kwargs
266
+ )
267
+
268
+ return _build_response(client=client, response=response)
269
+
270
+ async def asyncio(
271
+ id: str,
272
+ *,
273
+ client: AuthenticatedClient | Client,
274
+ format_: OcrOutputFormat | Unset = UNSET,
275
+
276
+ ) -> ErrorResponse | ParsedDocument | RawParseResult | None:
277
+ """ Get a parse job result representation
278
+
279
+ Return the selected parse wire body for a tenant-owned succeeded parse job.
280
+ `format` defaults to the job's original `output_format`. Fresh dual-artifact parses
281
+ can serve either `openparser@1` or `raw` from object storage without re-running HPS
282
+ or charging pages. Historical jobs only serve the representation already present in
283
+ `result_json`; unavailable alternates return `422 result_format_unavailable` with
284
+ guidance. Non-terminal jobs return `409 job_not_terminal`. Playground tokens
285
+ (`ocr:playground`) and `ocr:full` keys are both accepted.
286
+
287
+ Args:
288
+ id (str): Prefixed public id for an OCR job (`opj_…`). Example: opj_V1StGXR8_Z5jdHi6B-myT.
289
+ format_ (OcrOutputFormat | Unset):
290
+
291
+ Raises:
292
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
293
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
294
+
295
+ Returns:
296
+ ErrorResponse | ParsedDocument | RawParseResult
297
+ """
298
+
299
+
300
+ return (await asyncio_detailed(
301
+ id=id,
302
+ client=client,
303
+ format_=format_,
304
+
305
+ )).parsed
@@ -0,0 +1,233 @@
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
9
+ from ... import errors
10
+
11
+ from ...models.error_response import ErrorResponse
12
+
13
+
14
+
15
+ def _get_kwargs(
16
+ id: str,
17
+
18
+ ) -> dict[str, Any]:
19
+
20
+
21
+
22
+
23
+
24
+
25
+ _kwargs: dict[str, Any] = {
26
+ "method": "get",
27
+ "url": "/jobs/{id}/source".format(id=quote(str(id), safe=""),),
28
+ }
29
+
30
+
31
+ return _kwargs
32
+
33
+
34
+
35
+ def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Any | ErrorResponse | bytes | None:
36
+ if response.status_code == 200:
37
+ response_200 = response.content
38
+
39
+
40
+
41
+ return response_200
42
+
43
+ if response.status_code == 206:
44
+ response_206 = response.content
45
+
46
+
47
+
48
+ return response_206
49
+
50
+ if response.status_code == 401:
51
+ response_401 = ErrorResponse.from_dict(response.json())
52
+
53
+
54
+
55
+ return response_401
56
+
57
+ if response.status_code == 403:
58
+ response_403 = ErrorResponse.from_dict(response.json())
59
+
60
+
61
+
62
+ return response_403
63
+
64
+ if response.status_code == 404:
65
+ response_404 = ErrorResponse.from_dict(response.json())
66
+
67
+
68
+
69
+ return response_404
70
+
71
+ if response.status_code == 416:
72
+ response_416 = cast(Any, None)
73
+ return response_416
74
+
75
+ if response.status_code == 429:
76
+ response_429 = ErrorResponse.from_dict(response.json())
77
+
78
+
79
+
80
+ return response_429
81
+
82
+ if client.raise_on_unexpected_status:
83
+ raise errors.UnexpectedStatus(response.status_code, response.content)
84
+ else:
85
+ return None
86
+
87
+
88
+ def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[Any | ErrorResponse | bytes]:
89
+ return Response(
90
+ status_code=HTTPStatus(response.status_code),
91
+ content=response.content,
92
+ headers=response.headers,
93
+ parsed=_parse_response(client=client, response=response),
94
+ )
95
+
96
+
97
+ def sync_detailed(
98
+ id: str,
99
+ *,
100
+ client: AuthenticatedClient | Client,
101
+
102
+ ) -> Response[Any | ErrorResponse | bytes]:
103
+ """ Download retained job source bytes
104
+
105
+ Stream the retained source document for a parse or single-document extract job. Jobs without
106
+ retained source bytes return `404 source_not_available`. Check `has_source` on `GET /jobs/{id}`
107
+ before calling. Playground tokens (`ocr:playground`) and `ocr:full` keys are both accepted,
108
+ matching other job read routes. Optional `Range` requests may return `206` partial content or
109
+ `416` when the range is unsatisfiable.
110
+
111
+ Args:
112
+ id (str): Prefixed public id for an OCR job (`opj_…`). Example: opj_V1StGXR8_Z5jdHi6B-myT.
113
+
114
+ Raises:
115
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
116
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
117
+
118
+ Returns:
119
+ Response[Any | ErrorResponse | bytes]
120
+ """
121
+
122
+
123
+ kwargs = _get_kwargs(
124
+ id=id,
125
+
126
+ )
127
+
128
+ response = client.get_httpx_client().request(
129
+ **kwargs,
130
+ )
131
+
132
+ return _build_response(client=client, response=response)
133
+
134
+ def sync(
135
+ id: str,
136
+ *,
137
+ client: AuthenticatedClient | Client,
138
+
139
+ ) -> Any | ErrorResponse | bytes | None:
140
+ """ Download retained job source bytes
141
+
142
+ Stream the retained source document for a parse or single-document extract job. Jobs without
143
+ retained source bytes return `404 source_not_available`. Check `has_source` on `GET /jobs/{id}`
144
+ before calling. Playground tokens (`ocr:playground`) and `ocr:full` keys are both accepted,
145
+ matching other job read routes. Optional `Range` requests may return `206` partial content or
146
+ `416` when the range is unsatisfiable.
147
+
148
+ Args:
149
+ id (str): Prefixed public id for an OCR job (`opj_…`). Example: opj_V1StGXR8_Z5jdHi6B-myT.
150
+
151
+ Raises:
152
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
153
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
154
+
155
+ Returns:
156
+ Any | ErrorResponse | bytes
157
+ """
158
+
159
+
160
+ return sync_detailed(
161
+ id=id,
162
+ client=client,
163
+
164
+ ).parsed
165
+
166
+ async def asyncio_detailed(
167
+ id: str,
168
+ *,
169
+ client: AuthenticatedClient | Client,
170
+
171
+ ) -> Response[Any | ErrorResponse | bytes]:
172
+ """ Download retained job source bytes
173
+
174
+ Stream the retained source document for a parse or single-document extract job. Jobs without
175
+ retained source bytes return `404 source_not_available`. Check `has_source` on `GET /jobs/{id}`
176
+ before calling. Playground tokens (`ocr:playground`) and `ocr:full` keys are both accepted,
177
+ matching other job read routes. Optional `Range` requests may return `206` partial content or
178
+ `416` when the range is unsatisfiable.
179
+
180
+ Args:
181
+ id (str): Prefixed public id for an OCR job (`opj_…`). Example: opj_V1StGXR8_Z5jdHi6B-myT.
182
+
183
+ Raises:
184
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
185
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
186
+
187
+ Returns:
188
+ Response[Any | ErrorResponse | bytes]
189
+ """
190
+
191
+
192
+ kwargs = _get_kwargs(
193
+ id=id,
194
+
195
+ )
196
+
197
+ response = await client.get_async_httpx_client().request(
198
+ **kwargs
199
+ )
200
+
201
+ return _build_response(client=client, response=response)
202
+
203
+ async def asyncio(
204
+ id: str,
205
+ *,
206
+ client: AuthenticatedClient | Client,
207
+
208
+ ) -> Any | ErrorResponse | bytes | None:
209
+ """ Download retained job source bytes
210
+
211
+ Stream the retained source document for a parse or single-document extract job. Jobs without
212
+ retained source bytes return `404 source_not_available`. Check `has_source` on `GET /jobs/{id}`
213
+ before calling. Playground tokens (`ocr:playground`) and `ocr:full` keys are both accepted,
214
+ matching other job read routes. Optional `Range` requests may return `206` partial content or
215
+ `416` when the range is unsatisfiable.
216
+
217
+ Args:
218
+ id (str): Prefixed public id for an OCR job (`opj_…`). Example: opj_V1StGXR8_Z5jdHi6B-myT.
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
+ Any | ErrorResponse | bytes
226
+ """
227
+
228
+
229
+ return (await asyncio_detailed(
230
+ id=id,
231
+ client=client,
232
+
233
+ )).parsed