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,109 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ from ..types import UNSET, Unset
10
+
11
+ from ..types import UNSET, Unset
12
+ from typing import cast
13
+
14
+ if TYPE_CHECKING:
15
+ from ..models.parse_batch_item_ocr_options import ParseBatchItemOcrOptions
16
+
17
+
18
+
19
+
20
+
21
+ T = TypeVar("T", bound="ParseBatchItem")
22
+
23
+
24
+
25
+ @_attrs_define
26
+ class ParseBatchItem:
27
+ """
28
+ Attributes:
29
+ client_item_id (str): Caller-supplied stable identifier for this batch item.
30
+ ocr_model (str):
31
+ file_index (int | Unset): Zero-based index into the uploaded `files` array. Exactly one of `file_index` or
32
+ `file_id` is required per item.
33
+ file_id (str | Unset):
34
+ ocr_options (ParseBatchItemOcrOptions | Unset):
35
+ """
36
+
37
+ client_item_id: str
38
+ ocr_model: str
39
+ file_index: int | Unset = UNSET
40
+ file_id: str | Unset = UNSET
41
+ ocr_options: ParseBatchItemOcrOptions | Unset = UNSET
42
+
43
+
44
+
45
+
46
+
47
+ def to_dict(self) -> dict[str, Any]:
48
+ from ..models.parse_batch_item_ocr_options import ParseBatchItemOcrOptions
49
+ client_item_id = self.client_item_id
50
+
51
+ ocr_model = self.ocr_model
52
+
53
+ file_index = self.file_index
54
+
55
+ file_id = self.file_id
56
+
57
+ ocr_options: dict[str, Any] | Unset = UNSET
58
+ if not isinstance(self.ocr_options, Unset):
59
+ ocr_options = self.ocr_options.to_dict()
60
+
61
+
62
+ field_dict: dict[str, Any] = {}
63
+
64
+ field_dict.update({
65
+ "client_item_id": client_item_id,
66
+ "ocr_model": ocr_model,
67
+ })
68
+ if file_index is not UNSET:
69
+ field_dict["file_index"] = file_index
70
+ if file_id is not UNSET:
71
+ field_dict["file_id"] = file_id
72
+ if ocr_options is not UNSET:
73
+ field_dict["ocr_options"] = ocr_options
74
+
75
+ return field_dict
76
+
77
+
78
+
79
+ @classmethod
80
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
81
+ from ..models.parse_batch_item_ocr_options import ParseBatchItemOcrOptions
82
+ d = dict(src_dict)
83
+ client_item_id = d.pop("client_item_id")
84
+
85
+ ocr_model = d.pop("ocr_model")
86
+
87
+ file_index = d.pop("file_index", UNSET)
88
+
89
+ file_id = d.pop("file_id", UNSET)
90
+
91
+ _ocr_options = d.pop("ocr_options", UNSET)
92
+ ocr_options: ParseBatchItemOcrOptions | Unset
93
+ if isinstance(_ocr_options, Unset):
94
+ ocr_options = UNSET
95
+ else:
96
+ ocr_options = ParseBatchItemOcrOptions.from_dict(_ocr_options)
97
+
98
+
99
+
100
+
101
+ parse_batch_item = cls(
102
+ client_item_id=client_item_id,
103
+ ocr_model=ocr_model,
104
+ file_index=file_index,
105
+ file_id=file_id,
106
+ ocr_options=ocr_options,
107
+ )
108
+
109
+ return parse_batch_item
@@ -0,0 +1,78 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ from ..types import UNSET, Unset
10
+
11
+ from ..types import UNSET, Unset
12
+
13
+
14
+
15
+
16
+
17
+
18
+ T = TypeVar("T", bound="ParseBatchItemOcrOptions")
19
+
20
+
21
+
22
+ @_attrs_define
23
+ class ParseBatchItemOcrOptions:
24
+ """
25
+ Attributes:
26
+ image_block_ocr (bool | Unset):
27
+ chart_recognition (bool | Unset):
28
+ merge_layout_blocks (bool | Unset): Merge nearby cross-column or staggered text regions before recognition.
29
+ Defaults to false to preserve one-to-one text and bounding-box alignment.
30
+ """
31
+
32
+ image_block_ocr: bool | Unset = UNSET
33
+ chart_recognition: bool | Unset = UNSET
34
+ merge_layout_blocks: bool | Unset = UNSET
35
+
36
+
37
+
38
+
39
+
40
+ def to_dict(self) -> dict[str, Any]:
41
+ image_block_ocr = self.image_block_ocr
42
+
43
+ chart_recognition = self.chart_recognition
44
+
45
+ merge_layout_blocks = self.merge_layout_blocks
46
+
47
+
48
+ field_dict: dict[str, Any] = {}
49
+
50
+ field_dict.update({
51
+ })
52
+ if image_block_ocr is not UNSET:
53
+ field_dict["image_block_ocr"] = image_block_ocr
54
+ if chart_recognition is not UNSET:
55
+ field_dict["chart_recognition"] = chart_recognition
56
+ if merge_layout_blocks is not UNSET:
57
+ field_dict["merge_layout_blocks"] = merge_layout_blocks
58
+
59
+ return field_dict
60
+
61
+
62
+
63
+ @classmethod
64
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
65
+ d = dict(src_dict)
66
+ image_block_ocr = d.pop("image_block_ocr", UNSET)
67
+
68
+ chart_recognition = d.pop("chart_recognition", UNSET)
69
+
70
+ merge_layout_blocks = d.pop("merge_layout_blocks", UNSET)
71
+
72
+ parse_batch_item_ocr_options = cls(
73
+ image_block_ocr=image_block_ocr,
74
+ chart_recognition=chart_recognition,
75
+ merge_layout_blocks=merge_layout_blocks,
76
+ )
77
+
78
+ return parse_batch_item_ocr_options
@@ -0,0 +1,100 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ from ..types import UNSET, Unset
10
+
11
+ from ..models.parse_batch_request_output_format import ParseBatchRequestOutputFormat
12
+ from ..types import UNSET, Unset
13
+ from typing import cast
14
+
15
+ if TYPE_CHECKING:
16
+ from ..models.parse_batch_request_items_item import ParseBatchRequestItemsItem
17
+
18
+
19
+
20
+
21
+
22
+ T = TypeVar("T", bound="ParseBatchRequest")
23
+
24
+
25
+
26
+ @_attrs_define
27
+ class ParseBatchRequest:
28
+ """
29
+ Attributes:
30
+ items (list[ParseBatchRequestItemsItem]): Ordered batch items. Each item references either an uploaded `files`
31
+ entry via
32
+ `file_index` or an Eigenpal reusable `file_id`. Uploaded files must be covered by
33
+ exactly one unique `file_index` in `[0, files.length)`.
34
+ output_format (ParseBatchRequestOutputFormat | Unset): Default: ParseBatchRequestOutputFormat.OPENPARSER1.
35
+ """
36
+
37
+ items: list[ParseBatchRequestItemsItem]
38
+ output_format: ParseBatchRequestOutputFormat | Unset = ParseBatchRequestOutputFormat.OPENPARSER1
39
+
40
+
41
+
42
+
43
+
44
+ def to_dict(self) -> dict[str, Any]:
45
+ from ..models.parse_batch_request_items_item import ParseBatchRequestItemsItem
46
+ items = []
47
+ for items_item_data in self.items:
48
+ items_item = items_item_data.to_dict()
49
+ items.append(items_item)
50
+
51
+
52
+
53
+ output_format: str | Unset = UNSET
54
+ if not isinstance(self.output_format, Unset):
55
+ output_format = self.output_format.value
56
+
57
+
58
+
59
+ field_dict: dict[str, Any] = {}
60
+
61
+ field_dict.update({
62
+ "items": items,
63
+ })
64
+ if output_format is not UNSET:
65
+ field_dict["output_format"] = output_format
66
+
67
+ return field_dict
68
+
69
+
70
+
71
+ @classmethod
72
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
73
+ from ..models.parse_batch_request_items_item import ParseBatchRequestItemsItem
74
+ d = dict(src_dict)
75
+ items = []
76
+ _items = d.pop("items")
77
+ for items_item_data in (_items):
78
+ items_item = ParseBatchRequestItemsItem.from_dict(items_item_data)
79
+
80
+
81
+
82
+ items.append(items_item)
83
+
84
+
85
+ _output_format = d.pop("output_format", UNSET)
86
+ output_format: ParseBatchRequestOutputFormat | Unset
87
+ if isinstance(_output_format, Unset):
88
+ output_format = UNSET
89
+ else:
90
+ output_format = ParseBatchRequestOutputFormat(_output_format)
91
+
92
+
93
+
94
+
95
+ parse_batch_request = cls(
96
+ items=items,
97
+ output_format=output_format,
98
+ )
99
+
100
+ return parse_batch_request
@@ -0,0 +1,108 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ from ..types import UNSET, Unset
10
+
11
+ from ..types import UNSET, Unset
12
+ from typing import cast
13
+
14
+ if TYPE_CHECKING:
15
+ from ..models.parse_batch_request_items_item_ocr_options import ParseBatchRequestItemsItemOcrOptions
16
+
17
+
18
+
19
+
20
+
21
+ T = TypeVar("T", bound="ParseBatchRequestItemsItem")
22
+
23
+
24
+
25
+ @_attrs_define
26
+ class ParseBatchRequestItemsItem:
27
+ """
28
+ Attributes:
29
+ client_item_id (str):
30
+ ocr_model (str):
31
+ file_index (int | Unset):
32
+ file_id (str | Unset):
33
+ ocr_options (ParseBatchRequestItemsItemOcrOptions | Unset):
34
+ """
35
+
36
+ client_item_id: str
37
+ ocr_model: str
38
+ file_index: int | Unset = UNSET
39
+ file_id: str | Unset = UNSET
40
+ ocr_options: ParseBatchRequestItemsItemOcrOptions | Unset = UNSET
41
+
42
+
43
+
44
+
45
+
46
+ def to_dict(self) -> dict[str, Any]:
47
+ from ..models.parse_batch_request_items_item_ocr_options import ParseBatchRequestItemsItemOcrOptions
48
+ client_item_id = self.client_item_id
49
+
50
+ ocr_model = self.ocr_model
51
+
52
+ file_index = self.file_index
53
+
54
+ file_id = self.file_id
55
+
56
+ ocr_options: dict[str, Any] | Unset = UNSET
57
+ if not isinstance(self.ocr_options, Unset):
58
+ ocr_options = self.ocr_options.to_dict()
59
+
60
+
61
+ field_dict: dict[str, Any] = {}
62
+
63
+ field_dict.update({
64
+ "client_item_id": client_item_id,
65
+ "ocr_model": ocr_model,
66
+ })
67
+ if file_index is not UNSET:
68
+ field_dict["file_index"] = file_index
69
+ if file_id is not UNSET:
70
+ field_dict["file_id"] = file_id
71
+ if ocr_options is not UNSET:
72
+ field_dict["ocr_options"] = ocr_options
73
+
74
+ return field_dict
75
+
76
+
77
+
78
+ @classmethod
79
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
80
+ from ..models.parse_batch_request_items_item_ocr_options import ParseBatchRequestItemsItemOcrOptions
81
+ d = dict(src_dict)
82
+ client_item_id = d.pop("client_item_id")
83
+
84
+ ocr_model = d.pop("ocr_model")
85
+
86
+ file_index = d.pop("file_index", UNSET)
87
+
88
+ file_id = d.pop("file_id", UNSET)
89
+
90
+ _ocr_options = d.pop("ocr_options", UNSET)
91
+ ocr_options: ParseBatchRequestItemsItemOcrOptions | Unset
92
+ if isinstance(_ocr_options, Unset):
93
+ ocr_options = UNSET
94
+ else:
95
+ ocr_options = ParseBatchRequestItemsItemOcrOptions.from_dict(_ocr_options)
96
+
97
+
98
+
99
+
100
+ parse_batch_request_items_item = cls(
101
+ client_item_id=client_item_id,
102
+ ocr_model=ocr_model,
103
+ file_index=file_index,
104
+ file_id=file_id,
105
+ ocr_options=ocr_options,
106
+ )
107
+
108
+ return parse_batch_request_items_item
@@ -0,0 +1,78 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ from ..types import UNSET, Unset
10
+
11
+ from ..types import UNSET, Unset
12
+
13
+
14
+
15
+
16
+
17
+
18
+ T = TypeVar("T", bound="ParseBatchRequestItemsItemOcrOptions")
19
+
20
+
21
+
22
+ @_attrs_define
23
+ class ParseBatchRequestItemsItemOcrOptions:
24
+ """
25
+ Attributes:
26
+ image_block_ocr (bool | Unset):
27
+ chart_recognition (bool | Unset):
28
+ merge_layout_blocks (bool | Unset): Merge nearby cross-column or staggered text regions before recognition.
29
+ Defaults to false to preserve one-to-one text and bounding-box alignment.
30
+ """
31
+
32
+ image_block_ocr: bool | Unset = UNSET
33
+ chart_recognition: bool | Unset = UNSET
34
+ merge_layout_blocks: bool | Unset = UNSET
35
+
36
+
37
+
38
+
39
+
40
+ def to_dict(self) -> dict[str, Any]:
41
+ image_block_ocr = self.image_block_ocr
42
+
43
+ chart_recognition = self.chart_recognition
44
+
45
+ merge_layout_blocks = self.merge_layout_blocks
46
+
47
+
48
+ field_dict: dict[str, Any] = {}
49
+
50
+ field_dict.update({
51
+ })
52
+ if image_block_ocr is not UNSET:
53
+ field_dict["image_block_ocr"] = image_block_ocr
54
+ if chart_recognition is not UNSET:
55
+ field_dict["chart_recognition"] = chart_recognition
56
+ if merge_layout_blocks is not UNSET:
57
+ field_dict["merge_layout_blocks"] = merge_layout_blocks
58
+
59
+ return field_dict
60
+
61
+
62
+
63
+ @classmethod
64
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
65
+ d = dict(src_dict)
66
+ image_block_ocr = d.pop("image_block_ocr", UNSET)
67
+
68
+ chart_recognition = d.pop("chart_recognition", UNSET)
69
+
70
+ merge_layout_blocks = d.pop("merge_layout_blocks", UNSET)
71
+
72
+ parse_batch_request_items_item_ocr_options = cls(
73
+ image_block_ocr=image_block_ocr,
74
+ chart_recognition=chart_recognition,
75
+ merge_layout_blocks=merge_layout_blocks,
76
+ )
77
+
78
+ return parse_batch_request_items_item_ocr_options
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+ class ParseBatchRequestOutputFormat(str, Enum):
4
+ OPENPARSER1 = "openparser@1"
5
+ RAW = "raw"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -0,0 +1,112 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ from ..types import UNSET, Unset
10
+
11
+ from ..models.parse_request_output_format import ParseRequestOutputFormat
12
+ from ..types import UNSET, Unset
13
+ from typing import cast
14
+
15
+ if TYPE_CHECKING:
16
+ from ..models.parse_request_ocr_options import ParseRequestOcrOptions
17
+
18
+
19
+
20
+
21
+
22
+ T = TypeVar("T", bound="ParseRequest")
23
+
24
+
25
+
26
+ @_attrs_define
27
+ class ParseRequest:
28
+ """
29
+ Attributes:
30
+ ocr_model (str):
31
+ ocr_options (ParseRequestOcrOptions | Unset):
32
+ file_id (str | Unset):
33
+ output_format (ParseRequestOutputFormat | Unset): Default: ParseRequestOutputFormat.OPENPARSER1.
34
+ """
35
+
36
+ ocr_model: str
37
+ ocr_options: ParseRequestOcrOptions | Unset = UNSET
38
+ file_id: str | Unset = UNSET
39
+ output_format: ParseRequestOutputFormat | Unset = ParseRequestOutputFormat.OPENPARSER1
40
+
41
+
42
+
43
+
44
+
45
+ def to_dict(self) -> dict[str, Any]:
46
+ from ..models.parse_request_ocr_options import ParseRequestOcrOptions
47
+ ocr_model = self.ocr_model
48
+
49
+ ocr_options: dict[str, Any] | Unset = UNSET
50
+ if not isinstance(self.ocr_options, Unset):
51
+ ocr_options = self.ocr_options.to_dict()
52
+
53
+ file_id = self.file_id
54
+
55
+ output_format: str | Unset = UNSET
56
+ if not isinstance(self.output_format, Unset):
57
+ output_format = self.output_format.value
58
+
59
+
60
+
61
+ field_dict: dict[str, Any] = {}
62
+
63
+ field_dict.update({
64
+ "ocr_model": ocr_model,
65
+ })
66
+ if ocr_options is not UNSET:
67
+ field_dict["ocr_options"] = ocr_options
68
+ if file_id is not UNSET:
69
+ field_dict["file_id"] = file_id
70
+ if output_format is not UNSET:
71
+ field_dict["output_format"] = output_format
72
+
73
+ return field_dict
74
+
75
+
76
+
77
+ @classmethod
78
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
79
+ from ..models.parse_request_ocr_options import ParseRequestOcrOptions
80
+ d = dict(src_dict)
81
+ ocr_model = d.pop("ocr_model")
82
+
83
+ _ocr_options = d.pop("ocr_options", UNSET)
84
+ ocr_options: ParseRequestOcrOptions | Unset
85
+ if isinstance(_ocr_options, Unset):
86
+ ocr_options = UNSET
87
+ else:
88
+ ocr_options = ParseRequestOcrOptions.from_dict(_ocr_options)
89
+
90
+
91
+
92
+
93
+ file_id = d.pop("file_id", UNSET)
94
+
95
+ _output_format = d.pop("output_format", UNSET)
96
+ output_format: ParseRequestOutputFormat | Unset
97
+ if isinstance(_output_format, Unset):
98
+ output_format = UNSET
99
+ else:
100
+ output_format = ParseRequestOutputFormat(_output_format)
101
+
102
+
103
+
104
+
105
+ parse_request = cls(
106
+ ocr_model=ocr_model,
107
+ ocr_options=ocr_options,
108
+ file_id=file_id,
109
+ output_format=output_format,
110
+ )
111
+
112
+ return parse_request
@@ -0,0 +1,78 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ from ..types import UNSET, Unset
10
+
11
+ from ..types import UNSET, Unset
12
+
13
+
14
+
15
+
16
+
17
+
18
+ T = TypeVar("T", bound="ParseRequestOcrOptions")
19
+
20
+
21
+
22
+ @_attrs_define
23
+ class ParseRequestOcrOptions:
24
+ """
25
+ Attributes:
26
+ image_block_ocr (bool | Unset):
27
+ chart_recognition (bool | Unset):
28
+ merge_layout_blocks (bool | Unset): Merge nearby cross-column or staggered text regions before recognition.
29
+ Defaults to false to preserve one-to-one text and bounding-box alignment.
30
+ """
31
+
32
+ image_block_ocr: bool | Unset = UNSET
33
+ chart_recognition: bool | Unset = UNSET
34
+ merge_layout_blocks: bool | Unset = UNSET
35
+
36
+
37
+
38
+
39
+
40
+ def to_dict(self) -> dict[str, Any]:
41
+ image_block_ocr = self.image_block_ocr
42
+
43
+ chart_recognition = self.chart_recognition
44
+
45
+ merge_layout_blocks = self.merge_layout_blocks
46
+
47
+
48
+ field_dict: dict[str, Any] = {}
49
+
50
+ field_dict.update({
51
+ })
52
+ if image_block_ocr is not UNSET:
53
+ field_dict["image_block_ocr"] = image_block_ocr
54
+ if chart_recognition is not UNSET:
55
+ field_dict["chart_recognition"] = chart_recognition
56
+ if merge_layout_blocks is not UNSET:
57
+ field_dict["merge_layout_blocks"] = merge_layout_blocks
58
+
59
+ return field_dict
60
+
61
+
62
+
63
+ @classmethod
64
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
65
+ d = dict(src_dict)
66
+ image_block_ocr = d.pop("image_block_ocr", UNSET)
67
+
68
+ chart_recognition = d.pop("chart_recognition", UNSET)
69
+
70
+ merge_layout_blocks = d.pop("merge_layout_blocks", UNSET)
71
+
72
+ parse_request_ocr_options = cls(
73
+ image_block_ocr=image_block_ocr,
74
+ chart_recognition=chart_recognition,
75
+ merge_layout_blocks=merge_layout_blocks,
76
+ )
77
+
78
+ return parse_request_ocr_options
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+ class ParseRequestOutputFormat(str, Enum):
4
+ OPENPARSER1 = "openparser@1"
5
+ RAW = "raw"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)