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,87 @@
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
+ from typing import Literal, cast
13
+
14
+ if TYPE_CHECKING:
15
+ from ..models.extraction_grounding_field import ExtractionGroundingField
16
+
17
+
18
+
19
+
20
+
21
+ T = TypeVar("T", bound="ExtractionGroundingResult")
22
+
23
+
24
+
25
+ @_attrs_define
26
+ class ExtractionGroundingResult:
27
+ """ Optional terminal grounding envelope present only when `grounding: field` succeeded.
28
+
29
+ Attributes:
30
+ mode (Literal['field']):
31
+ fields (list[ExtractionGroundingField]):
32
+ """
33
+
34
+ mode: Literal['field']
35
+ fields: list[ExtractionGroundingField]
36
+
37
+
38
+
39
+
40
+
41
+ def to_dict(self) -> dict[str, Any]:
42
+ from ..models.extraction_grounding_field import ExtractionGroundingField
43
+ mode = self.mode
44
+
45
+ fields = []
46
+ for fields_item_data in self.fields:
47
+ fields_item = fields_item_data.to_dict()
48
+ fields.append(fields_item)
49
+
50
+
51
+
52
+
53
+ field_dict: dict[str, Any] = {}
54
+
55
+ field_dict.update({
56
+ "mode": mode,
57
+ "fields": fields,
58
+ })
59
+
60
+ return field_dict
61
+
62
+
63
+
64
+ @classmethod
65
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
66
+ from ..models.extraction_grounding_field import ExtractionGroundingField
67
+ d = dict(src_dict)
68
+ mode = cast(Literal['field'] , d.pop("mode"))
69
+ if mode != 'field':
70
+ raise ValueError(f"mode must match const 'field', got '{mode}'")
71
+
72
+ fields = []
73
+ _fields = d.pop("fields")
74
+ for fields_item_data in (_fields):
75
+ fields_item = ExtractionGroundingField.from_dict(fields_item_data)
76
+
77
+
78
+
79
+ fields.append(fields_item)
80
+
81
+
82
+ extraction_grounding_result = cls(
83
+ mode=mode,
84
+ fields=fields,
85
+ )
86
+
87
+ return extraction_grounding_result
@@ -0,0 +1,201 @@
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.extraction_grounding_mode import ExtractionGroundingMode
12
+ from dateutil.parser import isoparse
13
+ from typing import cast
14
+ import datetime
15
+
16
+ if TYPE_CHECKING:
17
+ from ..models.extraction_pipeline_llm_options import ExtractionPipelineLlmOptions
18
+ from ..models.extraction_pipeline_ocr_options import ExtractionPipelineOcrOptions
19
+ from ..models.extraction_pipeline_schema import ExtractionPipelineSchema
20
+
21
+
22
+
23
+
24
+
25
+ T = TypeVar("T", bound="ExtractionPipeline")
26
+
27
+
28
+
29
+ @_attrs_define
30
+ class ExtractionPipeline:
31
+ """ Public saved extraction pipeline resource.
32
+
33
+ Attributes:
34
+ id (str): Prefixed public id for a saved extraction pipeline (`oppl_…`).
35
+ name (str):
36
+ slug (None | str):
37
+ version (int):
38
+ ocr_model (str):
39
+ ocr_options (ExtractionPipelineOcrOptions):
40
+ llm_model (str): OpenRouter model slug from the compatible OCR extraction catalog
41
+ (`GET /models/llm`). Unknown or deprecated values return `422 unsupported_llm_model`.
42
+ Ordinary extract may use any currently compatible model; field grounding requires a
43
+ certified model.
44
+ Example: openai/gpt-5.6-terra.
45
+ llm_options (ExtractionPipelineLlmOptions):
46
+ schema (ExtractionPipelineSchema): Persisted extraction schema with at least one root property. Normalized for
47
+ strict
48
+ structured outputs at save time.
49
+ repair_attempts (int):
50
+ grounding (ExtractionGroundingMode): Extraction grounding mode. `none` preserves ordinary extraction. `field`
51
+ requests
52
+ verified per-leaf source citations (citation v1 emits block-level citations only).
53
+ created_at (datetime.datetime):
54
+ updated_at (datetime.datetime):
55
+ """
56
+
57
+ id: str
58
+ name: str
59
+ slug: None | str
60
+ version: int
61
+ ocr_model: str
62
+ ocr_options: ExtractionPipelineOcrOptions
63
+ llm_model: str
64
+ llm_options: ExtractionPipelineLlmOptions
65
+ schema: ExtractionPipelineSchema
66
+ repair_attempts: int
67
+ grounding: ExtractionGroundingMode
68
+ created_at: datetime.datetime
69
+ updated_at: datetime.datetime
70
+
71
+
72
+
73
+
74
+
75
+ def to_dict(self) -> dict[str, Any]:
76
+ from ..models.extraction_pipeline_llm_options import ExtractionPipelineLlmOptions
77
+ from ..models.extraction_pipeline_ocr_options import ExtractionPipelineOcrOptions
78
+ from ..models.extraction_pipeline_schema import ExtractionPipelineSchema
79
+ id = self.id
80
+
81
+ name = self.name
82
+
83
+ slug: None | str
84
+ slug = self.slug
85
+
86
+ version = self.version
87
+
88
+ ocr_model = self.ocr_model
89
+
90
+ ocr_options = self.ocr_options.to_dict()
91
+
92
+ llm_model = self.llm_model
93
+
94
+ llm_options = self.llm_options.to_dict()
95
+
96
+ schema = self.schema.to_dict()
97
+
98
+ repair_attempts = self.repair_attempts
99
+
100
+ grounding = self.grounding.value
101
+
102
+ created_at = self.created_at.isoformat()
103
+
104
+ updated_at = self.updated_at.isoformat()
105
+
106
+
107
+ field_dict: dict[str, Any] = {}
108
+
109
+ field_dict.update({
110
+ "id": id,
111
+ "name": name,
112
+ "slug": slug,
113
+ "version": version,
114
+ "ocr_model": ocr_model,
115
+ "ocr_options": ocr_options,
116
+ "llm_model": llm_model,
117
+ "llm_options": llm_options,
118
+ "schema": schema,
119
+ "repair_attempts": repair_attempts,
120
+ "grounding": grounding,
121
+ "created_at": created_at,
122
+ "updated_at": updated_at,
123
+ })
124
+
125
+ return field_dict
126
+
127
+
128
+
129
+ @classmethod
130
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
131
+ from ..models.extraction_pipeline_llm_options import ExtractionPipelineLlmOptions
132
+ from ..models.extraction_pipeline_ocr_options import ExtractionPipelineOcrOptions
133
+ from ..models.extraction_pipeline_schema import ExtractionPipelineSchema
134
+ d = dict(src_dict)
135
+ id = d.pop("id")
136
+
137
+ name = d.pop("name")
138
+
139
+ def _parse_slug(data: object) -> None | str:
140
+ if data is None:
141
+ return data
142
+ return cast(None | str, data)
143
+
144
+ slug = _parse_slug(d.pop("slug"))
145
+
146
+
147
+ version = d.pop("version")
148
+
149
+ ocr_model = d.pop("ocr_model")
150
+
151
+ ocr_options = ExtractionPipelineOcrOptions.from_dict(d.pop("ocr_options"))
152
+
153
+
154
+
155
+
156
+ llm_model = d.pop("llm_model")
157
+
158
+ llm_options = ExtractionPipelineLlmOptions.from_dict(d.pop("llm_options"))
159
+
160
+
161
+
162
+
163
+ schema = ExtractionPipelineSchema.from_dict(d.pop("schema"))
164
+
165
+
166
+
167
+
168
+ repair_attempts = d.pop("repair_attempts")
169
+
170
+ grounding = ExtractionGroundingMode(d.pop("grounding"))
171
+
172
+
173
+
174
+
175
+ created_at = isoparse(d.pop("created_at"))
176
+
177
+
178
+
179
+
180
+ updated_at = isoparse(d.pop("updated_at"))
181
+
182
+
183
+
184
+
185
+ extraction_pipeline = cls(
186
+ id=id,
187
+ name=name,
188
+ slug=slug,
189
+ version=version,
190
+ ocr_model=ocr_model,
191
+ ocr_options=ocr_options,
192
+ llm_model=llm_model,
193
+ llm_options=llm_options,
194
+ schema=schema,
195
+ repair_attempts=repair_attempts,
196
+ grounding=grounding,
197
+ created_at=created_at,
198
+ updated_at=updated_at,
199
+ )
200
+
201
+ return extraction_pipeline
@@ -0,0 +1,76 @@
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.extraction_pipeline import ExtractionPipeline
15
+
16
+
17
+
18
+
19
+
20
+ T = TypeVar("T", bound="ExtractionPipelineListResponse")
21
+
22
+
23
+
24
+ @_attrs_define
25
+ class ExtractionPipelineListResponse:
26
+ """ Active pipelines for the authenticated tenant.
27
+
28
+ Attributes:
29
+ items (list[ExtractionPipeline]):
30
+ """
31
+
32
+ items: list[ExtractionPipeline]
33
+
34
+
35
+
36
+
37
+
38
+ def to_dict(self) -> dict[str, Any]:
39
+ from ..models.extraction_pipeline import ExtractionPipeline
40
+ items = []
41
+ for items_item_data in self.items:
42
+ items_item = items_item_data.to_dict()
43
+ items.append(items_item)
44
+
45
+
46
+
47
+
48
+ field_dict: dict[str, Any] = {}
49
+
50
+ field_dict.update({
51
+ "items": items,
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.extraction_pipeline import ExtractionPipeline
61
+ d = dict(src_dict)
62
+ items = []
63
+ _items = d.pop("items")
64
+ for items_item_data in (_items):
65
+ items_item = ExtractionPipeline.from_dict(items_item_data)
66
+
67
+
68
+
69
+ items.append(items_item)
70
+
71
+
72
+ extraction_pipeline_list_response = cls(
73
+ items=items,
74
+ )
75
+
76
+ return extraction_pipeline_list_response
@@ -0,0 +1,84 @@
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.extraction_pipeline_llm_options_reasoning_effort_type_0_type_1 import ExtractionPipelineLlmOptionsReasoningEffortType0Type1
12
+ from typing import cast
13
+ from typing import Literal, cast
14
+
15
+
16
+
17
+
18
+
19
+
20
+ T = TypeVar("T", bound="ExtractionPipelineLlmOptions")
21
+
22
+
23
+
24
+ @_attrs_define
25
+ class ExtractionPipelineLlmOptions:
26
+ """
27
+ Attributes:
28
+ reasoning_effort (ExtractionPipelineLlmOptionsReasoningEffortType0Type1 | Literal['auto'] | None):
29
+ """
30
+
31
+ reasoning_effort: ExtractionPipelineLlmOptionsReasoningEffortType0Type1 | Literal['auto'] | None
32
+
33
+
34
+
35
+
36
+
37
+ def to_dict(self) -> dict[str, Any]:
38
+ reasoning_effort: Literal['auto'] | None | str
39
+ if isinstance(self.reasoning_effort, ExtractionPipelineLlmOptionsReasoningEffortType0Type1):
40
+ reasoning_effort = self.reasoning_effort.value
41
+ else:
42
+ reasoning_effort = self.reasoning_effort
43
+
44
+
45
+ field_dict: dict[str, Any] = {}
46
+
47
+ field_dict.update({
48
+ "reasoning_effort": reasoning_effort,
49
+ })
50
+
51
+ return field_dict
52
+
53
+
54
+
55
+ @classmethod
56
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
57
+ d = dict(src_dict)
58
+ def _parse_reasoning_effort(data: object) -> ExtractionPipelineLlmOptionsReasoningEffortType0Type1 | Literal['auto'] | None:
59
+ if data is None:
60
+ return data
61
+ reasoning_effort_type_0_type_0 = cast(Literal['auto'] , data)
62
+ if reasoning_effort_type_0_type_0 != 'auto':
63
+ raise ValueError(f"reasoning_effort_type_0_type_0 must match const 'auto', got '{reasoning_effort_type_0_type_0}'")
64
+ return reasoning_effort_type_0_type_0
65
+ try:
66
+ if not isinstance(data, str):
67
+ raise TypeError()
68
+ reasoning_effort_type_0_type_1 = ExtractionPipelineLlmOptionsReasoningEffortType0Type1(data)
69
+
70
+
71
+
72
+ return reasoning_effort_type_0_type_1
73
+ except (TypeError, ValueError, AttributeError, KeyError):
74
+ pass
75
+ return cast(ExtractionPipelineLlmOptionsReasoningEffortType0Type1 | Literal['auto'] | None, data)
76
+
77
+ reasoning_effort = _parse_reasoning_effort(d.pop("reasoning_effort"))
78
+
79
+
80
+ extraction_pipeline_llm_options = cls(
81
+ reasoning_effort=reasoning_effort,
82
+ )
83
+
84
+ return extraction_pipeline_llm_options
@@ -0,0 +1,13 @@
1
+ from enum import Enum
2
+
3
+ class ExtractionPipelineLlmOptionsReasoningEffortType0Type1(str, Enum):
4
+ HIGH = "high"
5
+ LOW = "low"
6
+ MAX = "max"
7
+ MEDIUM = "medium"
8
+ MINIMAL = "minimal"
9
+ NONE = "none"
10
+ XHIGH = "xhigh"
11
+
12
+ def __str__(self) -> str:
13
+ return str(self.value)
@@ -0,0 +1,73 @@
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="ExtractionPipelineOcrOptions")
18
+
19
+
20
+
21
+ @_attrs_define
22
+ class ExtractionPipelineOcrOptions:
23
+ """
24
+ Attributes:
25
+ image_block_ocr (bool):
26
+ chart_recognition (bool):
27
+ merge_layout_blocks (bool):
28
+ """
29
+
30
+ image_block_ocr: bool
31
+ chart_recognition: bool
32
+ merge_layout_blocks: bool
33
+
34
+
35
+
36
+
37
+
38
+ def to_dict(self) -> dict[str, Any]:
39
+ image_block_ocr = self.image_block_ocr
40
+
41
+ chart_recognition = self.chart_recognition
42
+
43
+ merge_layout_blocks = self.merge_layout_blocks
44
+
45
+
46
+ field_dict: dict[str, Any] = {}
47
+
48
+ field_dict.update({
49
+ "image_block_ocr": image_block_ocr,
50
+ "chart_recognition": chart_recognition,
51
+ "merge_layout_blocks": merge_layout_blocks,
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
+ d = dict(src_dict)
61
+ image_block_ocr = d.pop("image_block_ocr")
62
+
63
+ chart_recognition = d.pop("chart_recognition")
64
+
65
+ merge_layout_blocks = d.pop("merge_layout_blocks")
66
+
67
+ extraction_pipeline_ocr_options = cls(
68
+ image_block_ocr=image_block_ocr,
69
+ chart_recognition=chart_recognition,
70
+ merge_layout_blocks=merge_layout_blocks,
71
+ )
72
+
73
+ return extraction_pipeline_ocr_options
@@ -0,0 +1,67 @@
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="ExtractionPipelineSchema")
18
+
19
+
20
+
21
+ @_attrs_define
22
+ class ExtractionPipelineSchema:
23
+ """ Persisted extraction schema with at least one root property. Normalized for strict
24
+ structured outputs at save time.
25
+
26
+ """
27
+
28
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
29
+
30
+
31
+
32
+
33
+
34
+ def to_dict(self) -> dict[str, Any]:
35
+
36
+ field_dict: dict[str, Any] = {}
37
+ field_dict.update(self.additional_properties)
38
+
39
+ return field_dict
40
+
41
+
42
+
43
+ @classmethod
44
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
45
+ d = dict(src_dict)
46
+ extraction_pipeline_schema = cls(
47
+ )
48
+
49
+
50
+ extraction_pipeline_schema.additional_properties = d
51
+ return extraction_pipeline_schema
52
+
53
+ @property
54
+ def additional_keys(self) -> list[str]:
55
+ return list(self.additional_properties.keys())
56
+
57
+ def __getitem__(self, key: str) -> Any:
58
+ return self.additional_properties[key]
59
+
60
+ def __setitem__(self, key: str, value: Any) -> None:
61
+ self.additional_properties[key] = value
62
+
63
+ def __delitem__(self, key: str) -> None:
64
+ del self.additional_properties[key]
65
+
66
+ def __contains__(self, key: str) -> bool:
67
+ return key in self.additional_properties