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,224 @@
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.region_type import RegionType
12
+ from ..types import UNSET, Unset
13
+ from typing import cast
14
+
15
+ if TYPE_CHECKING:
16
+ from ..models.bounding_box import BoundingBox
17
+ from ..models.region_polygon_type_0_item import RegionPolygonType0Item
18
+
19
+
20
+
21
+
22
+
23
+ T = TypeVar("T", bound="Region")
24
+
25
+
26
+
27
+ @_attrs_define
28
+ class Region:
29
+ """
30
+ Attributes:
31
+ id (str):
32
+ page_number (int):
33
+ type_ (RegionType):
34
+ bbox (BoundingBox): Axis-aligned integer page coordinates with exclusive right and bottom edges.
35
+ polygon (list[RegionPolygonType0Item] | None | Unset):
36
+ coordinate_width (int | None | Unset):
37
+ coordinate_height (int | None | Unset):
38
+ confidence (float | None | Unset):
39
+ source_label (None | str | Unset):
40
+ """
41
+
42
+ id: str
43
+ page_number: int
44
+ type_: RegionType
45
+ bbox: BoundingBox
46
+ polygon: list[RegionPolygonType0Item] | None | Unset = UNSET
47
+ coordinate_width: int | None | Unset = UNSET
48
+ coordinate_height: int | None | Unset = UNSET
49
+ confidence: float | None | Unset = UNSET
50
+ source_label: None | str | Unset = UNSET
51
+
52
+
53
+
54
+
55
+
56
+ def to_dict(self) -> dict[str, Any]:
57
+ from ..models.bounding_box import BoundingBox
58
+ from ..models.region_polygon_type_0_item import RegionPolygonType0Item
59
+ id = self.id
60
+
61
+ page_number = self.page_number
62
+
63
+ type_ = self.type_.value
64
+
65
+ bbox = self.bbox.to_dict()
66
+
67
+ polygon: list[dict[str, Any]] | None | Unset
68
+ if isinstance(self.polygon, Unset):
69
+ polygon = UNSET
70
+ elif isinstance(self.polygon, list):
71
+ polygon = []
72
+ for polygon_type_0_item_data in self.polygon:
73
+ polygon_type_0_item = polygon_type_0_item_data.to_dict()
74
+ polygon.append(polygon_type_0_item)
75
+
76
+
77
+ else:
78
+ polygon = self.polygon
79
+
80
+ coordinate_width: int | None | Unset
81
+ if isinstance(self.coordinate_width, Unset):
82
+ coordinate_width = UNSET
83
+ else:
84
+ coordinate_width = self.coordinate_width
85
+
86
+ coordinate_height: int | None | Unset
87
+ if isinstance(self.coordinate_height, Unset):
88
+ coordinate_height = UNSET
89
+ else:
90
+ coordinate_height = self.coordinate_height
91
+
92
+ confidence: float | None | Unset
93
+ if isinstance(self.confidence, Unset):
94
+ confidence = UNSET
95
+ else:
96
+ confidence = self.confidence
97
+
98
+ source_label: None | str | Unset
99
+ if isinstance(self.source_label, Unset):
100
+ source_label = UNSET
101
+ else:
102
+ source_label = self.source_label
103
+
104
+
105
+ field_dict: dict[str, Any] = {}
106
+
107
+ field_dict.update({
108
+ "id": id,
109
+ "page_number": page_number,
110
+ "type": type_,
111
+ "bbox": bbox,
112
+ })
113
+ if polygon is not UNSET:
114
+ field_dict["polygon"] = polygon
115
+ if coordinate_width is not UNSET:
116
+ field_dict["coordinate_width"] = coordinate_width
117
+ if coordinate_height is not UNSET:
118
+ field_dict["coordinate_height"] = coordinate_height
119
+ if confidence is not UNSET:
120
+ field_dict["confidence"] = confidence
121
+ if source_label is not UNSET:
122
+ field_dict["source_label"] = source_label
123
+
124
+ return field_dict
125
+
126
+
127
+
128
+ @classmethod
129
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
130
+ from ..models.bounding_box import BoundingBox
131
+ from ..models.region_polygon_type_0_item import RegionPolygonType0Item
132
+ d = dict(src_dict)
133
+ id = d.pop("id")
134
+
135
+ page_number = d.pop("page_number")
136
+
137
+ type_ = RegionType(d.pop("type"))
138
+
139
+
140
+
141
+
142
+ bbox = BoundingBox.from_dict(d.pop("bbox"))
143
+
144
+
145
+
146
+
147
+ def _parse_polygon(data: object) -> list[RegionPolygonType0Item] | None | Unset:
148
+ if data is None:
149
+ return data
150
+ if isinstance(data, Unset):
151
+ return data
152
+ try:
153
+ if not isinstance(data, list):
154
+ raise TypeError()
155
+ polygon_type_0 = []
156
+ _polygon_type_0 = data
157
+ for polygon_type_0_item_data in (_polygon_type_0):
158
+ polygon_type_0_item = RegionPolygonType0Item.from_dict(polygon_type_0_item_data)
159
+
160
+
161
+
162
+ polygon_type_0.append(polygon_type_0_item)
163
+
164
+ return polygon_type_0
165
+ except (TypeError, ValueError, AttributeError, KeyError):
166
+ pass
167
+ return cast(list[RegionPolygonType0Item] | None | Unset, data)
168
+
169
+ polygon = _parse_polygon(d.pop("polygon", UNSET))
170
+
171
+
172
+ def _parse_coordinate_width(data: object) -> int | None | Unset:
173
+ if data is None:
174
+ return data
175
+ if isinstance(data, Unset):
176
+ return data
177
+ return cast(int | None | Unset, data)
178
+
179
+ coordinate_width = _parse_coordinate_width(d.pop("coordinate_width", UNSET))
180
+
181
+
182
+ def _parse_coordinate_height(data: object) -> int | None | Unset:
183
+ if data is None:
184
+ return data
185
+ if isinstance(data, Unset):
186
+ return data
187
+ return cast(int | None | Unset, data)
188
+
189
+ coordinate_height = _parse_coordinate_height(d.pop("coordinate_height", UNSET))
190
+
191
+
192
+ def _parse_confidence(data: object) -> float | None | Unset:
193
+ if data is None:
194
+ return data
195
+ if isinstance(data, Unset):
196
+ return data
197
+ return cast(float | None | Unset, data)
198
+
199
+ confidence = _parse_confidence(d.pop("confidence", UNSET))
200
+
201
+
202
+ def _parse_source_label(data: object) -> None | str | Unset:
203
+ if data is None:
204
+ return data
205
+ if isinstance(data, Unset):
206
+ return data
207
+ return cast(None | str | Unset, data)
208
+
209
+ source_label = _parse_source_label(d.pop("source_label", UNSET))
210
+
211
+
212
+ region = cls(
213
+ id=id,
214
+ page_number=page_number,
215
+ type_=type_,
216
+ bbox=bbox,
217
+ polygon=polygon,
218
+ coordinate_width=coordinate_width,
219
+ coordinate_height=coordinate_height,
220
+ confidence=confidence,
221
+ source_label=source_label,
222
+ )
223
+
224
+ return region
@@ -0,0 +1,155 @@
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.content_kind import ContentKind
12
+ from ..types import UNSET, Unset
13
+ from typing import cast
14
+
15
+
16
+
17
+
18
+
19
+
20
+ T = TypeVar("T", bound="RegionContent")
21
+
22
+
23
+
24
+ @_attrs_define
25
+ class RegionContent:
26
+ """
27
+ Attributes:
28
+ region_id (str):
29
+ kind (ContentKind):
30
+ text (None | str | Unset):
31
+ table_html (None | str | Unset):
32
+ detected_state (bool | None | Unset):
33
+ confidence (float | None | Unset):
34
+ """
35
+
36
+ region_id: str
37
+ kind: ContentKind
38
+ text: None | str | Unset = UNSET
39
+ table_html: None | str | Unset = UNSET
40
+ detected_state: bool | None | Unset = UNSET
41
+ confidence: float | None | Unset = UNSET
42
+
43
+
44
+
45
+
46
+
47
+ def to_dict(self) -> dict[str, Any]:
48
+ region_id = self.region_id
49
+
50
+ kind = self.kind.value
51
+
52
+ text: None | str | Unset
53
+ if isinstance(self.text, Unset):
54
+ text = UNSET
55
+ else:
56
+ text = self.text
57
+
58
+ table_html: None | str | Unset
59
+ if isinstance(self.table_html, Unset):
60
+ table_html = UNSET
61
+ else:
62
+ table_html = self.table_html
63
+
64
+ detected_state: bool | None | Unset
65
+ if isinstance(self.detected_state, Unset):
66
+ detected_state = UNSET
67
+ else:
68
+ detected_state = self.detected_state
69
+
70
+ confidence: float | None | Unset
71
+ if isinstance(self.confidence, Unset):
72
+ confidence = UNSET
73
+ else:
74
+ confidence = self.confidence
75
+
76
+
77
+ field_dict: dict[str, Any] = {}
78
+
79
+ field_dict.update({
80
+ "region_id": region_id,
81
+ "kind": kind,
82
+ })
83
+ if text is not UNSET:
84
+ field_dict["text"] = text
85
+ if table_html is not UNSET:
86
+ field_dict["table_html"] = table_html
87
+ if detected_state is not UNSET:
88
+ field_dict["detected_state"] = detected_state
89
+ if confidence is not UNSET:
90
+ field_dict["confidence"] = confidence
91
+
92
+ return field_dict
93
+
94
+
95
+
96
+ @classmethod
97
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
98
+ d = dict(src_dict)
99
+ region_id = d.pop("region_id")
100
+
101
+ kind = ContentKind(d.pop("kind"))
102
+
103
+
104
+
105
+
106
+ def _parse_text(data: object) -> None | str | Unset:
107
+ if data is None:
108
+ return data
109
+ if isinstance(data, Unset):
110
+ return data
111
+ return cast(None | str | Unset, data)
112
+
113
+ text = _parse_text(d.pop("text", UNSET))
114
+
115
+
116
+ def _parse_table_html(data: object) -> None | str | Unset:
117
+ if data is None:
118
+ return data
119
+ if isinstance(data, Unset):
120
+ return data
121
+ return cast(None | str | Unset, data)
122
+
123
+ table_html = _parse_table_html(d.pop("table_html", UNSET))
124
+
125
+
126
+ def _parse_detected_state(data: object) -> bool | None | Unset:
127
+ if data is None:
128
+ return data
129
+ if isinstance(data, Unset):
130
+ return data
131
+ return cast(bool | None | Unset, data)
132
+
133
+ detected_state = _parse_detected_state(d.pop("detected_state", UNSET))
134
+
135
+
136
+ def _parse_confidence(data: object) -> float | None | Unset:
137
+ if data is None:
138
+ return data
139
+ if isinstance(data, Unset):
140
+ return data
141
+ return cast(float | None | Unset, data)
142
+
143
+ confidence = _parse_confidence(d.pop("confidence", UNSET))
144
+
145
+
146
+ region_content = cls(
147
+ region_id=region_id,
148
+ kind=kind,
149
+ text=text,
150
+ table_html=table_html,
151
+ detected_state=detected_state,
152
+ confidence=confidence,
153
+ )
154
+
155
+ return region_content
@@ -0,0 +1,65 @@
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
+
12
+
13
+
14
+
15
+
16
+
17
+ T = TypeVar("T", bound="RegionPolygonType0Item")
18
+
19
+
20
+
21
+ @_attrs_define
22
+ class RegionPolygonType0Item:
23
+ """
24
+ Attributes:
25
+ x (float):
26
+ y (float):
27
+ """
28
+
29
+ x: float
30
+ y: float
31
+
32
+
33
+
34
+
35
+
36
+ def to_dict(self) -> dict[str, Any]:
37
+ x = self.x
38
+
39
+ y = self.y
40
+
41
+
42
+ field_dict: dict[str, Any] = {}
43
+
44
+ field_dict.update({
45
+ "x": x,
46
+ "y": y,
47
+ })
48
+
49
+ return field_dict
50
+
51
+
52
+
53
+ @classmethod
54
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
55
+ d = dict(src_dict)
56
+ x = d.pop("x")
57
+
58
+ y = d.pop("y")
59
+
60
+ region_polygon_type_0_item = cls(
61
+ x=x,
62
+ y=y,
63
+ )
64
+
65
+ return region_polygon_type_0_item
@@ -0,0 +1,16 @@
1
+ from enum import Enum
2
+
3
+ class RegionType(str, Enum):
4
+ BARCODE = "barcode"
5
+ CHECKBOX = "checkbox"
6
+ FIGURE = "figure"
7
+ FORMULA = "formula"
8
+ HEADER_FOOTER = "header_footer"
9
+ HEADING = "heading"
10
+ KEY_VALUE = "key_value"
11
+ SIGNATURE = "signature"
12
+ TABLE = "table"
13
+ TEXT = "text"
14
+
15
+ def __str__(self) -> str:
16
+ return str(self.value)
@@ -0,0 +1,69 @@
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="SuggestSchemaRequest")
19
+
20
+
21
+
22
+ @_attrs_define
23
+ class SuggestSchemaRequest:
24
+ """ Suggest an extraction JSON Schema from a tenant-owned succeeded `parse` job.
25
+ Optional `hint` is caller guidance capped at 500 characters.
26
+
27
+ Attributes:
28
+ parse_job_id (str): Prefixed id (`opj_…`) of a succeeded `parse` job in the same tenant.
29
+ hint (str | Unset): Optional free-text guidance for the suggestion model (max 500 characters).
30
+ """
31
+
32
+ parse_job_id: str
33
+ hint: str | Unset = UNSET
34
+
35
+
36
+
37
+
38
+
39
+ def to_dict(self) -> dict[str, Any]:
40
+ parse_job_id = self.parse_job_id
41
+
42
+ hint = self.hint
43
+
44
+
45
+ field_dict: dict[str, Any] = {}
46
+
47
+ field_dict.update({
48
+ "parse_job_id": parse_job_id,
49
+ })
50
+ if hint is not UNSET:
51
+ field_dict["hint"] = hint
52
+
53
+ return field_dict
54
+
55
+
56
+
57
+ @classmethod
58
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
59
+ d = dict(src_dict)
60
+ parse_job_id = d.pop("parse_job_id")
61
+
62
+ hint = d.pop("hint", UNSET)
63
+
64
+ suggest_schema_request = cls(
65
+ parse_job_id=parse_job_id,
66
+ hint=hint,
67
+ )
68
+
69
+ return suggest_schema_request
@@ -0,0 +1,74 @@
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 typing import cast
12
+
13
+ if TYPE_CHECKING:
14
+ from ..models.suggest_schema_response_schema import SuggestSchemaResponseSchema
15
+
16
+
17
+
18
+
19
+
20
+ T = TypeVar("T", bound="SuggestSchemaResponse")
21
+
22
+
23
+
24
+ @_attrs_define
25
+ class SuggestSchemaResponse:
26
+ """ Suggested extraction schema returned directly without creating a durable job.
27
+
28
+ Attributes:
29
+ name (str): Short document-type label proposed by the model.
30
+ schema (SuggestSchemaResponseSchema): Canonical JSON Schema object ready for extract and manual editing.
31
+ """
32
+
33
+ name: str
34
+ schema: SuggestSchemaResponseSchema
35
+
36
+
37
+
38
+
39
+
40
+ def to_dict(self) -> dict[str, Any]:
41
+ from ..models.suggest_schema_response_schema import SuggestSchemaResponseSchema
42
+ name = self.name
43
+
44
+ schema = self.schema.to_dict()
45
+
46
+
47
+ field_dict: dict[str, Any] = {}
48
+
49
+ field_dict.update({
50
+ "name": name,
51
+ "schema": schema,
52
+ })
53
+
54
+ return field_dict
55
+
56
+
57
+
58
+ @classmethod
59
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
60
+ from ..models.suggest_schema_response_schema import SuggestSchemaResponseSchema
61
+ d = dict(src_dict)
62
+ name = d.pop("name")
63
+
64
+ schema = SuggestSchemaResponseSchema.from_dict(d.pop("schema"))
65
+
66
+
67
+
68
+
69
+ suggest_schema_response = cls(
70
+ name=name,
71
+ schema=schema,
72
+ )
73
+
74
+ return suggest_schema_response
@@ -0,0 +1,66 @@
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
+
12
+
13
+
14
+
15
+
16
+
17
+ T = TypeVar("T", bound="SuggestSchemaResponseSchema")
18
+
19
+
20
+
21
+ @_attrs_define
22
+ class SuggestSchemaResponseSchema:
23
+ """ Canonical JSON Schema object ready for extract and manual editing.
24
+
25
+ """
26
+
27
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
28
+
29
+
30
+
31
+
32
+
33
+ def to_dict(self) -> dict[str, Any]:
34
+
35
+ field_dict: dict[str, Any] = {}
36
+ field_dict.update(self.additional_properties)
37
+
38
+ return field_dict
39
+
40
+
41
+
42
+ @classmethod
43
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
44
+ d = dict(src_dict)
45
+ suggest_schema_response_schema = cls(
46
+ )
47
+
48
+
49
+ suggest_schema_response_schema.additional_properties = d
50
+ return suggest_schema_response_schema
51
+
52
+ @property
53
+ def additional_keys(self) -> list[str]:
54
+ return list(self.additional_properties.keys())
55
+
56
+ def __getitem__(self, key: str) -> Any:
57
+ return self.additional_properties[key]
58
+
59
+ def __setitem__(self, key: str, value: Any) -> None:
60
+ self.additional_properties[key] = value
61
+
62
+ def __delitem__(self, key: str) -> None:
63
+ del self.additional_properties[key]
64
+
65
+ def __contains__(self, key: str) -> bool:
66
+ return key in self.additional_properties