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.
- openparser/__init__.py +54 -0
- openparser/_files.py +43 -0
- openparser/_generated/__init__.py +8 -0
- openparser/_generated/api/__init__.py +1 -0
- openparser/_generated/api/extract/__init__.py +1 -0
- openparser/_generated/api/extract/extract_async.py +280 -0
- openparser/_generated/api/extract/extract_batch.py +284 -0
- openparser/_generated/api/extract/extract_sync.py +315 -0
- openparser/_generated/api/extract/suggest_schema.py +260 -0
- openparser/_generated/api/files/__init__.py +1 -0
- openparser/_generated/api/files/create_file.py +237 -0
- openparser/_generated/api/files/delete_file.py +200 -0
- openparser/_generated/api/files/get_file.py +200 -0
- openparser/_generated/api/files/get_file_content.py +198 -0
- openparser/_generated/api/jobs/__init__.py +1 -0
- openparser/_generated/api/jobs/get_job.py +261 -0
- openparser/_generated/api/jobs/get_job_result.py +305 -0
- openparser/_generated/api/jobs/get_job_source.py +233 -0
- openparser/_generated/api/jobs/list_jobs.py +340 -0
- openparser/_generated/api/models/__init__.py +1 -0
- openparser/_generated/api/models/list_llm_models.py +288 -0
- openparser/_generated/api/models/list_ocr_models.py +184 -0
- openparser/_generated/api/parse/__init__.py +1 -0
- openparser/_generated/api/parse/parse_async.py +316 -0
- openparser/_generated/api/parse/parse_batch.py +280 -0
- openparser/_generated/api/parse/parse_sync.py +369 -0
- openparser/_generated/api/pipelines/__init__.py +1 -0
- openparser/_generated/api/pipelines/create_extraction_pipeline.py +242 -0
- openparser/_generated/api/pipelines/delete_extraction_pipeline.py +212 -0
- openparser/_generated/api/pipelines/get_extraction_pipeline.py +212 -0
- openparser/_generated/api/pipelines/list_extraction_pipelines.py +180 -0
- openparser/_generated/api/pipelines/update_extraction_pipeline.py +258 -0
- openparser/_generated/client.py +270 -0
- openparser/_generated/errors.py +14 -0
- openparser/_generated/models/__init__.py +261 -0
- openparser/_generated/models/batch_child_page.py +97 -0
- openparser/_generated/models/batch_child_summary.py +195 -0
- openparser/_generated/models/batch_job_accepted.py +139 -0
- openparser/_generated/models/batch_job_accepted_operation.py +8 -0
- openparser/_generated/models/batch_summary_counts.py +97 -0
- openparser/_generated/models/bounding_box.py +82 -0
- openparser/_generated/models/chunk_provenance_span.py +97 -0
- openparser/_generated/models/content_kind.py +10 -0
- openparser/_generated/models/create_extraction_pipeline_request.py +177 -0
- openparser/_generated/models/create_extraction_pipeline_request_grounding.py +8 -0
- openparser/_generated/models/create_extraction_pipeline_request_llm_options.py +84 -0
- openparser/_generated/models/create_extraction_pipeline_request_llm_options_reasoning_effort_type_1.py +13 -0
- openparser/_generated/models/create_extraction_pipeline_request_ocr_options.py +78 -0
- openparser/_generated/models/create_extraction_pipeline_request_schema.py +68 -0
- openparser/_generated/models/create_file_body.py +78 -0
- openparser/_generated/models/delete_extraction_pipeline_response.py +66 -0
- openparser/_generated/models/delete_file_response.py +57 -0
- openparser/_generated/models/error_body.py +106 -0
- openparser/_generated/models/error_body_details.py +65 -0
- openparser/_generated/models/error_response.py +65 -0
- openparser/_generated/models/extract_async_body.py +136 -0
- openparser/_generated/models/extract_batch_body.py +143 -0
- openparser/_generated/models/extract_batch_item.py +207 -0
- openparser/_generated/models/extract_batch_item_grounding.py +8 -0
- openparser/_generated/models/extract_batch_item_llm_options.py +84 -0
- openparser/_generated/models/extract_batch_item_llm_options_reasoning_effort_type_1.py +13 -0
- openparser/_generated/models/extract_batch_item_ocr_options.py +78 -0
- openparser/_generated/models/extract_batch_item_schema.py +65 -0
- openparser/_generated/models/extract_batch_request.py +99 -0
- openparser/_generated/models/extract_batch_request_items_item.py +201 -0
- openparser/_generated/models/extract_batch_request_items_item_grounding.py +8 -0
- openparser/_generated/models/extract_batch_request_items_item_llm_options.py +84 -0
- openparser/_generated/models/extract_batch_request_items_item_llm_options_reasoning_effort_type_1.py +13 -0
- openparser/_generated/models/extract_batch_request_items_item_ocr_options.py +78 -0
- openparser/_generated/models/extract_batch_request_items_item_schema.py +65 -0
- openparser/_generated/models/extract_batch_request_output_format.py +8 -0
- openparser/_generated/models/extract_request.py +226 -0
- openparser/_generated/models/extract_request_grounding.py +8 -0
- openparser/_generated/models/extract_request_llm_options.py +84 -0
- openparser/_generated/models/extract_request_llm_options_reasoning_effort_type_1.py +13 -0
- openparser/_generated/models/extract_request_ocr_options.py +78 -0
- openparser/_generated/models/extract_request_output_format.py +8 -0
- openparser/_generated/models/extract_request_schema.py +65 -0
- openparser/_generated/models/extract_sync_body.py +136 -0
- openparser/_generated/models/extraction_attempt.py +122 -0
- openparser/_generated/models/extraction_attempt_kind.py +8 -0
- openparser/_generated/models/extraction_attempt_status.py +9 -0
- openparser/_generated/models/extraction_chunk.py +184 -0
- openparser/_generated/models/extraction_citation.py +169 -0
- openparser/_generated/models/extraction_citation_granularity.py +8 -0
- openparser/_generated/models/extraction_citation_source_type.py +16 -0
- openparser/_generated/models/extraction_grounding_field.py +102 -0
- openparser/_generated/models/extraction_grounding_mode.py +8 -0
- openparser/_generated/models/extraction_grounding_result.py +87 -0
- openparser/_generated/models/extraction_pipeline.py +201 -0
- openparser/_generated/models/extraction_pipeline_list_response.py +76 -0
- openparser/_generated/models/extraction_pipeline_llm_options.py +84 -0
- openparser/_generated/models/extraction_pipeline_llm_options_reasoning_effort_type_0_type_1.py +13 -0
- openparser/_generated/models/extraction_pipeline_ocr_options.py +73 -0
- openparser/_generated/models/extraction_pipeline_schema.py +67 -0
- openparser/_generated/models/extraction_terminal_result.py +206 -0
- openparser/_generated/models/extraction_terminal_result_reasoning_effort_type_0.py +13 -0
- openparser/_generated/models/extraction_usage_totals.py +80 -0
- openparser/_generated/models/job.py +437 -0
- openparser/_generated/models/job_accepted.py +131 -0
- openparser/_generated/models/job_accepted_operation.py +8 -0
- openparser/_generated/models/job_extraction_schema.py +65 -0
- openparser/_generated/models/job_failure.py +98 -0
- openparser/_generated/models/job_failure_details.py +65 -0
- openparser/_generated/models/job_list_response.py +91 -0
- openparser/_generated/models/job_operation.py +10 -0
- openparser/_generated/models/job_progress.py +68 -0
- openparser/_generated/models/job_related_extractions_item.py +145 -0
- openparser/_generated/models/job_status.py +11 -0
- openparser/_generated/models/job_summary.py +264 -0
- openparser/_generated/models/json_schema_object.py +66 -0
- openparser/_generated/models/list_llm_models_mode.py +8 -0
- openparser/_generated/models/ocr_llm_model_catalog_entry.py +257 -0
- openparser/_generated/models/ocr_llm_model_catalog_entry_pricing.py +76 -0
- openparser/_generated/models/ocr_llm_model_catalog_entry_reasoning_type_0.py +134 -0
- openparser/_generated/models/ocr_llm_model_catalog_entry_reasoning_type_0_default_effort_type_0.py +13 -0
- openparser/_generated/models/ocr_llm_model_catalog_entry_reasoning_type_0_supported_efforts_type_0_item.py +13 -0
- openparser/_generated/models/ocr_llm_model_catalog_entry_recommendation.py +8 -0
- openparser/_generated/models/ocr_llm_models_response.py +150 -0
- openparser/_generated/models/ocr_llm_models_response_mode.py +8 -0
- openparser/_generated/models/ocr_model.py +7 -0
- openparser/_generated/models/ocr_model_catalog_entry.py +131 -0
- openparser/_generated/models/ocr_model_catalog_entry_availability.py +9 -0
- openparser/_generated/models/ocr_model_catalog_entry_capabilities.py +97 -0
- openparser/_generated/models/ocr_model_catalog_entry_capabilities_options.py +73 -0
- openparser/_generated/models/ocr_model_catalog_entry_option_defaults.py +73 -0
- openparser/_generated/models/ocr_model_catalog_entry_pricing.py +68 -0
- openparser/_generated/models/ocr_models_response.py +76 -0
- openparser/_generated/models/ocr_output_format.py +8 -0
- openparser/_generated/models/paddle_raw_profile.py +76 -0
- openparser/_generated/models/paddle_raw_profile_options.py +115 -0
- openparser/_generated/models/page_block.py +332 -0
- openparser/_generated/models/page_block_kind.py +9 -0
- openparser/_generated/models/page_block_polygon_type_0_item.py +65 -0
- openparser/_generated/models/parse_async_body.py +133 -0
- openparser/_generated/models/parse_batch_body.py +143 -0
- openparser/_generated/models/parse_batch_item.py +109 -0
- openparser/_generated/models/parse_batch_item_ocr_options.py +78 -0
- openparser/_generated/models/parse_batch_request.py +100 -0
- openparser/_generated/models/parse_batch_request_items_item.py +108 -0
- openparser/_generated/models/parse_batch_request_items_item_ocr_options.py +78 -0
- openparser/_generated/models/parse_batch_request_output_format.py +8 -0
- openparser/_generated/models/parse_request.py +112 -0
- openparser/_generated/models/parse_request_ocr_options.py +78 -0
- openparser/_generated/models/parse_request_output_format.py +8 -0
- openparser/_generated/models/parse_sync_body.py +133 -0
- openparser/_generated/models/parsed_document.py +187 -0
- openparser/_generated/models/public_file.py +117 -0
- openparser/_generated/models/raw_parse_result.py +110 -0
- openparser/_generated/models/raw_parse_result_result.py +65 -0
- openparser/_generated/models/region.py +224 -0
- openparser/_generated/models/region_content.py +155 -0
- openparser/_generated/models/region_polygon_type_0_item.py +65 -0
- openparser/_generated/models/region_type.py +16 -0
- openparser/_generated/models/suggest_schema_request.py +69 -0
- openparser/_generated/models/suggest_schema_response.py +74 -0
- openparser/_generated/models/suggest_schema_response_schema.py +66 -0
- openparser/_generated/models/update_extraction_pipeline_request.py +227 -0
- openparser/_generated/models/update_extraction_pipeline_request_grounding.py +8 -0
- openparser/_generated/models/update_extraction_pipeline_request_llm_options_type_0.py +84 -0
- openparser/_generated/models/update_extraction_pipeline_request_llm_options_type_0_reasoning_effort_type_1.py +13 -0
- openparser/_generated/models/update_extraction_pipeline_request_ocr_options_type_0.py +78 -0
- openparser/_generated/models/update_extraction_pipeline_request_schema.py +67 -0
- openparser/_generated/py.typed +1 -0
- openparser/_generated/types.py +53 -0
- openparser/_telemetry.py +34 -0
- openparser/client.py +541 -0
- openparser/errors.py +172 -0
- openparser/py.typed +0 -0
- openparser_sdk-0.0.1.dist-info/METADATA +178 -0
- openparser_sdk-0.0.1.dist-info/RECORD +173 -0
- openparser_sdk-0.0.1.dist-info/WHEEL +4 -0
- 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
|
openparser/_generated/models/extraction_pipeline_llm_options_reasoning_effort_type_0_type_1.py
ADDED
|
@@ -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
|