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,237 @@
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.create_file_body import CreateFileBody
12
+ from ...models.error_response import ErrorResponse
13
+ from ...models.public_file import PublicFile
14
+ from typing import cast
15
+
16
+
17
+
18
+ def _get_kwargs(
19
+ *,
20
+ body: CreateFileBody,
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": "/files",
33
+ }
34
+
35
+ _kwargs["files"] = body.to_multipart()
36
+
37
+
38
+
39
+ _kwargs["headers"] = headers
40
+ return _kwargs
41
+
42
+
43
+
44
+ def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> ErrorResponse | PublicFile | None:
45
+ if response.status_code == 200:
46
+ response_200 = PublicFile.from_dict(response.json())
47
+
48
+
49
+
50
+ return response_200
51
+
52
+ if response.status_code == 400:
53
+ response_400 = ErrorResponse.from_dict(response.json())
54
+
55
+
56
+
57
+ return response_400
58
+
59
+ if response.status_code == 401:
60
+ response_401 = ErrorResponse.from_dict(response.json())
61
+
62
+
63
+
64
+ return response_401
65
+
66
+ if response.status_code == 403:
67
+ response_403 = ErrorResponse.from_dict(response.json())
68
+
69
+
70
+
71
+ return response_403
72
+
73
+ if response.status_code == 413:
74
+ response_413 = ErrorResponse.from_dict(response.json())
75
+
76
+
77
+
78
+ return response_413
79
+
80
+ if response.status_code == 415:
81
+ response_415 = ErrorResponse.from_dict(response.json())
82
+
83
+
84
+
85
+ return response_415
86
+
87
+ if response.status_code == 429:
88
+ response_429 = ErrorResponse.from_dict(response.json())
89
+
90
+
91
+
92
+ return response_429
93
+
94
+ if client.raise_on_unexpected_status:
95
+ raise errors.UnexpectedStatus(response.status_code, response.content)
96
+ else:
97
+ return None
98
+
99
+
100
+ def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[ErrorResponse | PublicFile]:
101
+ return Response(
102
+ status_code=HTTPStatus(response.status_code),
103
+ content=response.content,
104
+ headers=response.headers,
105
+ parsed=_parse_response(client=client, response=response),
106
+ )
107
+
108
+
109
+ def sync_detailed(
110
+ *,
111
+ client: AuthenticatedClient | Client,
112
+ body: CreateFileBody,
113
+
114
+ ) -> Response[ErrorResponse | PublicFile]:
115
+ """ Upload a reusable file
116
+
117
+ Upload bytes directly to OpenParser's Eigenpal-compatible tenant file pool. Files may be
118
+ reused by later parse or extract requests through `file_id`; bytes do not pass through
119
+ Vercel.
120
+
121
+ Args:
122
+ body (CreateFileBody):
123
+
124
+ Raises:
125
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
126
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
127
+
128
+ Returns:
129
+ Response[ErrorResponse | PublicFile]
130
+ """
131
+
132
+
133
+ kwargs = _get_kwargs(
134
+ body=body,
135
+
136
+ )
137
+
138
+ response = client.get_httpx_client().request(
139
+ **kwargs,
140
+ )
141
+
142
+ return _build_response(client=client, response=response)
143
+
144
+ def sync(
145
+ *,
146
+ client: AuthenticatedClient | Client,
147
+ body: CreateFileBody,
148
+
149
+ ) -> ErrorResponse | PublicFile | None:
150
+ """ Upload a reusable file
151
+
152
+ Upload bytes directly to OpenParser's Eigenpal-compatible tenant file pool. Files may be
153
+ reused by later parse or extract requests through `file_id`; bytes do not pass through
154
+ Vercel.
155
+
156
+ Args:
157
+ body (CreateFileBody):
158
+
159
+ Raises:
160
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
161
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
162
+
163
+ Returns:
164
+ ErrorResponse | PublicFile
165
+ """
166
+
167
+
168
+ return sync_detailed(
169
+ client=client,
170
+ body=body,
171
+
172
+ ).parsed
173
+
174
+ async def asyncio_detailed(
175
+ *,
176
+ client: AuthenticatedClient | Client,
177
+ body: CreateFileBody,
178
+
179
+ ) -> Response[ErrorResponse | PublicFile]:
180
+ """ Upload a reusable file
181
+
182
+ Upload bytes directly to OpenParser's Eigenpal-compatible tenant file pool. Files may be
183
+ reused by later parse or extract requests through `file_id`; bytes do not pass through
184
+ Vercel.
185
+
186
+ Args:
187
+ body (CreateFileBody):
188
+
189
+ Raises:
190
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
191
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
192
+
193
+ Returns:
194
+ Response[ErrorResponse | PublicFile]
195
+ """
196
+
197
+
198
+ kwargs = _get_kwargs(
199
+ body=body,
200
+
201
+ )
202
+
203
+ response = await client.get_async_httpx_client().request(
204
+ **kwargs
205
+ )
206
+
207
+ return _build_response(client=client, response=response)
208
+
209
+ async def asyncio(
210
+ *,
211
+ client: AuthenticatedClient | Client,
212
+ body: CreateFileBody,
213
+
214
+ ) -> ErrorResponse | PublicFile | None:
215
+ """ Upload a reusable file
216
+
217
+ Upload bytes directly to OpenParser's Eigenpal-compatible tenant file pool. Files may be
218
+ reused by later parse or extract requests through `file_id`; bytes do not pass through
219
+ Vercel.
220
+
221
+ Args:
222
+ body (CreateFileBody):
223
+
224
+ Raises:
225
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
226
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
227
+
228
+ Returns:
229
+ ErrorResponse | PublicFile
230
+ """
231
+
232
+
233
+ return (await asyncio_detailed(
234
+ client=client,
235
+ body=body,
236
+
237
+ )).parsed
@@ -0,0 +1,200 @@
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.delete_file_response import DeleteFileResponse
12
+ from ...models.error_response import ErrorResponse
13
+ from typing import cast
14
+
15
+
16
+
17
+ def _get_kwargs(
18
+ id: str,
19
+
20
+ ) -> dict[str, Any]:
21
+
22
+
23
+
24
+
25
+
26
+
27
+ _kwargs: dict[str, Any] = {
28
+ "method": "delete",
29
+ "url": "/files/{id}".format(id=quote(str(id), safe=""),),
30
+ }
31
+
32
+
33
+ return _kwargs
34
+
35
+
36
+
37
+ def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> DeleteFileResponse | ErrorResponse | None:
38
+ if response.status_code == 200:
39
+ response_200 = DeleteFileResponse.from_dict(response.json())
40
+
41
+
42
+
43
+ return response_200
44
+
45
+ if response.status_code == 401:
46
+ response_401 = ErrorResponse.from_dict(response.json())
47
+
48
+
49
+
50
+ return response_401
51
+
52
+ if response.status_code == 403:
53
+ response_403 = ErrorResponse.from_dict(response.json())
54
+
55
+
56
+
57
+ return response_403
58
+
59
+ if response.status_code == 404:
60
+ response_404 = ErrorResponse.from_dict(response.json())
61
+
62
+
63
+
64
+ return response_404
65
+
66
+ if response.status_code == 429:
67
+ response_429 = ErrorResponse.from_dict(response.json())
68
+
69
+
70
+
71
+ return response_429
72
+
73
+ if client.raise_on_unexpected_status:
74
+ raise errors.UnexpectedStatus(response.status_code, response.content)
75
+ else:
76
+ return None
77
+
78
+
79
+ def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[DeleteFileResponse | ErrorResponse]:
80
+ return Response(
81
+ status_code=HTTPStatus(response.status_code),
82
+ content=response.content,
83
+ headers=response.headers,
84
+ parsed=_parse_response(client=client, response=response),
85
+ )
86
+
87
+
88
+ def sync_detailed(
89
+ id: str,
90
+ *,
91
+ client: AuthenticatedClient | Client,
92
+
93
+ ) -> Response[DeleteFileResponse | ErrorResponse]:
94
+ """ Delete a reusable file
95
+
96
+ Args:
97
+ id (str):
98
+
99
+ Raises:
100
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
101
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
102
+
103
+ Returns:
104
+ Response[DeleteFileResponse | ErrorResponse]
105
+ """
106
+
107
+
108
+ kwargs = _get_kwargs(
109
+ id=id,
110
+
111
+ )
112
+
113
+ response = client.get_httpx_client().request(
114
+ **kwargs,
115
+ )
116
+
117
+ return _build_response(client=client, response=response)
118
+
119
+ def sync(
120
+ id: str,
121
+ *,
122
+ client: AuthenticatedClient | Client,
123
+
124
+ ) -> DeleteFileResponse | ErrorResponse | None:
125
+ """ Delete a reusable file
126
+
127
+ Args:
128
+ id (str):
129
+
130
+ Raises:
131
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
132
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
133
+
134
+ Returns:
135
+ DeleteFileResponse | ErrorResponse
136
+ """
137
+
138
+
139
+ return sync_detailed(
140
+ id=id,
141
+ client=client,
142
+
143
+ ).parsed
144
+
145
+ async def asyncio_detailed(
146
+ id: str,
147
+ *,
148
+ client: AuthenticatedClient | Client,
149
+
150
+ ) -> Response[DeleteFileResponse | ErrorResponse]:
151
+ """ Delete a reusable file
152
+
153
+ Args:
154
+ id (str):
155
+
156
+ Raises:
157
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
158
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
159
+
160
+ Returns:
161
+ Response[DeleteFileResponse | ErrorResponse]
162
+ """
163
+
164
+
165
+ kwargs = _get_kwargs(
166
+ id=id,
167
+
168
+ )
169
+
170
+ response = await client.get_async_httpx_client().request(
171
+ **kwargs
172
+ )
173
+
174
+ return _build_response(client=client, response=response)
175
+
176
+ async def asyncio(
177
+ id: str,
178
+ *,
179
+ client: AuthenticatedClient | Client,
180
+
181
+ ) -> DeleteFileResponse | ErrorResponse | None:
182
+ """ Delete a reusable file
183
+
184
+ Args:
185
+ id (str):
186
+
187
+ Raises:
188
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
189
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
190
+
191
+ Returns:
192
+ DeleteFileResponse | ErrorResponse
193
+ """
194
+
195
+
196
+ return (await asyncio_detailed(
197
+ id=id,
198
+ client=client,
199
+
200
+ )).parsed
@@ -0,0 +1,200 @@
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.public_file import PublicFile
13
+ from typing import cast
14
+
15
+
16
+
17
+ def _get_kwargs(
18
+ id: str,
19
+
20
+ ) -> dict[str, Any]:
21
+
22
+
23
+
24
+
25
+
26
+
27
+ _kwargs: dict[str, Any] = {
28
+ "method": "get",
29
+ "url": "/files/{id}".format(id=quote(str(id), safe=""),),
30
+ }
31
+
32
+
33
+ return _kwargs
34
+
35
+
36
+
37
+ def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> ErrorResponse | PublicFile | None:
38
+ if response.status_code == 200:
39
+ response_200 = PublicFile.from_dict(response.json())
40
+
41
+
42
+
43
+ return response_200
44
+
45
+ if response.status_code == 401:
46
+ response_401 = ErrorResponse.from_dict(response.json())
47
+
48
+
49
+
50
+ return response_401
51
+
52
+ if response.status_code == 403:
53
+ response_403 = ErrorResponse.from_dict(response.json())
54
+
55
+
56
+
57
+ return response_403
58
+
59
+ if response.status_code == 404:
60
+ response_404 = ErrorResponse.from_dict(response.json())
61
+
62
+
63
+
64
+ return response_404
65
+
66
+ if response.status_code == 429:
67
+ response_429 = ErrorResponse.from_dict(response.json())
68
+
69
+
70
+
71
+ return response_429
72
+
73
+ if client.raise_on_unexpected_status:
74
+ raise errors.UnexpectedStatus(response.status_code, response.content)
75
+ else:
76
+ return None
77
+
78
+
79
+ def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[ErrorResponse | PublicFile]:
80
+ return Response(
81
+ status_code=HTTPStatus(response.status_code),
82
+ content=response.content,
83
+ headers=response.headers,
84
+ parsed=_parse_response(client=client, response=response),
85
+ )
86
+
87
+
88
+ def sync_detailed(
89
+ id: str,
90
+ *,
91
+ client: AuthenticatedClient | Client,
92
+
93
+ ) -> Response[ErrorResponse | PublicFile]:
94
+ """ Get reusable file metadata
95
+
96
+ Args:
97
+ id (str):
98
+
99
+ Raises:
100
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
101
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
102
+
103
+ Returns:
104
+ Response[ErrorResponse | PublicFile]
105
+ """
106
+
107
+
108
+ kwargs = _get_kwargs(
109
+ id=id,
110
+
111
+ )
112
+
113
+ response = client.get_httpx_client().request(
114
+ **kwargs,
115
+ )
116
+
117
+ return _build_response(client=client, response=response)
118
+
119
+ def sync(
120
+ id: str,
121
+ *,
122
+ client: AuthenticatedClient | Client,
123
+
124
+ ) -> ErrorResponse | PublicFile | None:
125
+ """ Get reusable file metadata
126
+
127
+ Args:
128
+ id (str):
129
+
130
+ Raises:
131
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
132
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
133
+
134
+ Returns:
135
+ ErrorResponse | PublicFile
136
+ """
137
+
138
+
139
+ return sync_detailed(
140
+ id=id,
141
+ client=client,
142
+
143
+ ).parsed
144
+
145
+ async def asyncio_detailed(
146
+ id: str,
147
+ *,
148
+ client: AuthenticatedClient | Client,
149
+
150
+ ) -> Response[ErrorResponse | PublicFile]:
151
+ """ Get reusable file metadata
152
+
153
+ Args:
154
+ id (str):
155
+
156
+ Raises:
157
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
158
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
159
+
160
+ Returns:
161
+ Response[ErrorResponse | PublicFile]
162
+ """
163
+
164
+
165
+ kwargs = _get_kwargs(
166
+ id=id,
167
+
168
+ )
169
+
170
+ response = await client.get_async_httpx_client().request(
171
+ **kwargs
172
+ )
173
+
174
+ return _build_response(client=client, response=response)
175
+
176
+ async def asyncio(
177
+ id: str,
178
+ *,
179
+ client: AuthenticatedClient | Client,
180
+
181
+ ) -> ErrorResponse | PublicFile | None:
182
+ """ Get reusable file metadata
183
+
184
+ Args:
185
+ id (str):
186
+
187
+ Raises:
188
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
189
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
190
+
191
+ Returns:
192
+ ErrorResponse | PublicFile
193
+ """
194
+
195
+
196
+ return (await asyncio_detailed(
197
+ id=id,
198
+ client=client,
199
+
200
+ )).parsed