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,134 @@
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.ocr_llm_model_catalog_entry_reasoning_type_0_default_effort_type_0 import OcrLlmModelCatalogEntryReasoningType0DefaultEffortType0
12
+ from ..models.ocr_llm_model_catalog_entry_reasoning_type_0_supported_efforts_type_0_item import OcrLlmModelCatalogEntryReasoningType0SupportedEffortsType0Item
13
+ from typing import cast
14
+
15
+
16
+
17
+
18
+
19
+
20
+ T = TypeVar("T", bound="OcrLlmModelCatalogEntryReasoningType0")
21
+
22
+
23
+
24
+ @_attrs_define
25
+ class OcrLlmModelCatalogEntryReasoningType0:
26
+ """
27
+ Attributes:
28
+ supported_efforts (list[OcrLlmModelCatalogEntryReasoningType0SupportedEffortsType0Item] | None):
29
+ default_effort (None | OcrLlmModelCatalogEntryReasoningType0DefaultEffortType0):
30
+ mandatory (bool):
31
+ supports_max_tokens (bool):
32
+ """
33
+
34
+ supported_efforts: list[OcrLlmModelCatalogEntryReasoningType0SupportedEffortsType0Item] | None
35
+ default_effort: None | OcrLlmModelCatalogEntryReasoningType0DefaultEffortType0
36
+ mandatory: bool
37
+ supports_max_tokens: bool
38
+
39
+
40
+
41
+
42
+
43
+ def to_dict(self) -> dict[str, Any]:
44
+ supported_efforts: list[str] | None
45
+ if isinstance(self.supported_efforts, list):
46
+ supported_efforts = []
47
+ for supported_efforts_type_0_item_data in self.supported_efforts:
48
+ supported_efforts_type_0_item = supported_efforts_type_0_item_data.value
49
+ supported_efforts.append(supported_efforts_type_0_item)
50
+
51
+
52
+ else:
53
+ supported_efforts = self.supported_efforts
54
+
55
+ default_effort: None | str
56
+ if isinstance(self.default_effort, OcrLlmModelCatalogEntryReasoningType0DefaultEffortType0):
57
+ default_effort = self.default_effort.value
58
+ else:
59
+ default_effort = self.default_effort
60
+
61
+ mandatory = self.mandatory
62
+
63
+ supports_max_tokens = self.supports_max_tokens
64
+
65
+
66
+ field_dict: dict[str, Any] = {}
67
+
68
+ field_dict.update({
69
+ "supported_efforts": supported_efforts,
70
+ "default_effort": default_effort,
71
+ "mandatory": mandatory,
72
+ "supports_max_tokens": supports_max_tokens,
73
+ })
74
+
75
+ return field_dict
76
+
77
+
78
+
79
+ @classmethod
80
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
81
+ d = dict(src_dict)
82
+ def _parse_supported_efforts(data: object) -> list[OcrLlmModelCatalogEntryReasoningType0SupportedEffortsType0Item] | None:
83
+ if data is None:
84
+ return data
85
+ try:
86
+ if not isinstance(data, list):
87
+ raise TypeError()
88
+ supported_efforts_type_0 = []
89
+ _supported_efforts_type_0 = data
90
+ for supported_efforts_type_0_item_data in (_supported_efforts_type_0):
91
+ supported_efforts_type_0_item = OcrLlmModelCatalogEntryReasoningType0SupportedEffortsType0Item(supported_efforts_type_0_item_data)
92
+
93
+
94
+
95
+ supported_efforts_type_0.append(supported_efforts_type_0_item)
96
+
97
+ return supported_efforts_type_0
98
+ except (TypeError, ValueError, AttributeError, KeyError):
99
+ pass
100
+ return cast(list[OcrLlmModelCatalogEntryReasoningType0SupportedEffortsType0Item] | None, data)
101
+
102
+ supported_efforts = _parse_supported_efforts(d.pop("supported_efforts"))
103
+
104
+
105
+ def _parse_default_effort(data: object) -> None | OcrLlmModelCatalogEntryReasoningType0DefaultEffortType0:
106
+ if data is None:
107
+ return data
108
+ try:
109
+ if not isinstance(data, str):
110
+ raise TypeError()
111
+ default_effort_type_0 = OcrLlmModelCatalogEntryReasoningType0DefaultEffortType0(data)
112
+
113
+
114
+
115
+ return default_effort_type_0
116
+ except (TypeError, ValueError, AttributeError, KeyError):
117
+ pass
118
+ return cast(None | OcrLlmModelCatalogEntryReasoningType0DefaultEffortType0, data)
119
+
120
+ default_effort = _parse_default_effort(d.pop("default_effort"))
121
+
122
+
123
+ mandatory = d.pop("mandatory")
124
+
125
+ supports_max_tokens = d.pop("supports_max_tokens")
126
+
127
+ ocr_llm_model_catalog_entry_reasoning_type_0 = cls(
128
+ supported_efforts=supported_efforts,
129
+ default_effort=default_effort,
130
+ mandatory=mandatory,
131
+ supports_max_tokens=supports_max_tokens,
132
+ )
133
+
134
+ return ocr_llm_model_catalog_entry_reasoning_type_0
@@ -0,0 +1,13 @@
1
+ from enum import Enum
2
+
3
+ class OcrLlmModelCatalogEntryReasoningType0DefaultEffortType0(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,13 @@
1
+ from enum import Enum
2
+
3
+ class OcrLlmModelCatalogEntryReasoningType0SupportedEffortsType0Item(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,8 @@
1
+ from enum import Enum
2
+
3
+ class OcrLlmModelCatalogEntryRecommendation(str, Enum):
4
+ COMPATIBLE = "compatible"
5
+ SUGGESTED = "suggested"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -0,0 +1,150 @@
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.ocr_llm_models_response_mode import OcrLlmModelsResponseMode
12
+ from dateutil.parser import isoparse
13
+ from typing import cast
14
+ import datetime
15
+
16
+ if TYPE_CHECKING:
17
+ from ..models.ocr_llm_model_catalog_entry import OcrLlmModelCatalogEntry
18
+
19
+
20
+
21
+
22
+
23
+ T = TypeVar("T", bound="OcrLlmModelsResponse")
24
+
25
+
26
+
27
+ @_attrs_define
28
+ class OcrLlmModelsResponse:
29
+ """ Normalized OpenRouter LLM catalog for OpenParser extraction. Includes catalog version,
30
+ stale flag, and pagination metadata for search mode.
31
+
32
+ Attributes:
33
+ mode (OcrLlmModelsResponseMode):
34
+ catalog_version (str):
35
+ fetched_at (datetime.datetime):
36
+ stale (bool):
37
+ data (list[OcrLlmModelCatalogEntry]):
38
+ page (int):
39
+ limit (int):
40
+ total (int):
41
+ has_more (bool):
42
+ """
43
+
44
+ mode: OcrLlmModelsResponseMode
45
+ catalog_version: str
46
+ fetched_at: datetime.datetime
47
+ stale: bool
48
+ data: list[OcrLlmModelCatalogEntry]
49
+ page: int
50
+ limit: int
51
+ total: int
52
+ has_more: bool
53
+
54
+
55
+
56
+
57
+
58
+ def to_dict(self) -> dict[str, Any]:
59
+ from ..models.ocr_llm_model_catalog_entry import OcrLlmModelCatalogEntry
60
+ mode = self.mode.value
61
+
62
+ catalog_version = self.catalog_version
63
+
64
+ fetched_at = self.fetched_at.isoformat()
65
+
66
+ stale = self.stale
67
+
68
+ data = []
69
+ for data_item_data in self.data:
70
+ data_item = data_item_data.to_dict()
71
+ data.append(data_item)
72
+
73
+
74
+
75
+ page = self.page
76
+
77
+ limit = self.limit
78
+
79
+ total = self.total
80
+
81
+ has_more = self.has_more
82
+
83
+
84
+ field_dict: dict[str, Any] = {}
85
+
86
+ field_dict.update({
87
+ "mode": mode,
88
+ "catalog_version": catalog_version,
89
+ "fetched_at": fetched_at,
90
+ "stale": stale,
91
+ "data": data,
92
+ "page": page,
93
+ "limit": limit,
94
+ "total": total,
95
+ "has_more": has_more,
96
+ })
97
+
98
+ return field_dict
99
+
100
+
101
+
102
+ @classmethod
103
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
104
+ from ..models.ocr_llm_model_catalog_entry import OcrLlmModelCatalogEntry
105
+ d = dict(src_dict)
106
+ mode = OcrLlmModelsResponseMode(d.pop("mode"))
107
+
108
+
109
+
110
+
111
+ catalog_version = d.pop("catalog_version")
112
+
113
+ fetched_at = isoparse(d.pop("fetched_at"))
114
+
115
+
116
+
117
+
118
+ stale = d.pop("stale")
119
+
120
+ data = []
121
+ _data = d.pop("data")
122
+ for data_item_data in (_data):
123
+ data_item = OcrLlmModelCatalogEntry.from_dict(data_item_data)
124
+
125
+
126
+
127
+ data.append(data_item)
128
+
129
+
130
+ page = d.pop("page")
131
+
132
+ limit = d.pop("limit")
133
+
134
+ total = d.pop("total")
135
+
136
+ has_more = d.pop("has_more")
137
+
138
+ ocr_llm_models_response = cls(
139
+ mode=mode,
140
+ catalog_version=catalog_version,
141
+ fetched_at=fetched_at,
142
+ stale=stale,
143
+ data=data,
144
+ page=page,
145
+ limit=limit,
146
+ total=total,
147
+ has_more=has_more,
148
+ )
149
+
150
+ return ocr_llm_models_response
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+ class OcrLlmModelsResponseMode(str, Enum):
4
+ SEARCH = "search"
5
+ SUGGESTED = "suggested"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -0,0 +1,7 @@
1
+ from enum import Enum
2
+
3
+ class OcrModel(str, Enum):
4
+ PADDLEOCR_VL_1_6 = "paddleocr-vl-1.6"
5
+
6
+ def __str__(self) -> str:
7
+ return str(self.value)
@@ -0,0 +1,131 @@
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.ocr_model_catalog_entry_availability import OcrModelCatalogEntryAvailability
12
+ from typing import cast
13
+
14
+ if TYPE_CHECKING:
15
+ from ..models.ocr_model_catalog_entry_capabilities import OcrModelCatalogEntryCapabilities
16
+ from ..models.ocr_model_catalog_entry_option_defaults import OcrModelCatalogEntryOptionDefaults
17
+ from ..models.ocr_model_catalog_entry_pricing import OcrModelCatalogEntryPricing
18
+
19
+
20
+
21
+
22
+
23
+ T = TypeVar("T", bound="OcrModelCatalogEntry")
24
+
25
+
26
+
27
+ @_attrs_define
28
+ class OcrModelCatalogEntry:
29
+ """ Public OCR model registry entry. `pricing.usd_per_page` is the
30
+ customer retail page price (`basis: customer_retail`).
31
+
32
+ Attributes:
33
+ id (str):
34
+ label (str):
35
+ is_default (bool):
36
+ capabilities (OcrModelCatalogEntryCapabilities):
37
+ option_defaults (OcrModelCatalogEntryOptionDefaults):
38
+ pricing (OcrModelCatalogEntryPricing):
39
+ availability (OcrModelCatalogEntryAvailability):
40
+ """
41
+
42
+ id: str
43
+ label: str
44
+ is_default: bool
45
+ capabilities: OcrModelCatalogEntryCapabilities
46
+ option_defaults: OcrModelCatalogEntryOptionDefaults
47
+ pricing: OcrModelCatalogEntryPricing
48
+ availability: OcrModelCatalogEntryAvailability
49
+
50
+
51
+
52
+
53
+
54
+ def to_dict(self) -> dict[str, Any]:
55
+ from ..models.ocr_model_catalog_entry_capabilities import OcrModelCatalogEntryCapabilities
56
+ from ..models.ocr_model_catalog_entry_option_defaults import OcrModelCatalogEntryOptionDefaults
57
+ from ..models.ocr_model_catalog_entry_pricing import OcrModelCatalogEntryPricing
58
+ id = self.id
59
+
60
+ label = self.label
61
+
62
+ is_default = self.is_default
63
+
64
+ capabilities = self.capabilities.to_dict()
65
+
66
+ option_defaults = self.option_defaults.to_dict()
67
+
68
+ pricing = self.pricing.to_dict()
69
+
70
+ availability = self.availability.value
71
+
72
+
73
+ field_dict: dict[str, Any] = {}
74
+
75
+ field_dict.update({
76
+ "id": id,
77
+ "label": label,
78
+ "is_default": is_default,
79
+ "capabilities": capabilities,
80
+ "option_defaults": option_defaults,
81
+ "pricing": pricing,
82
+ "availability": availability,
83
+ })
84
+
85
+ return field_dict
86
+
87
+
88
+
89
+ @classmethod
90
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
91
+ from ..models.ocr_model_catalog_entry_capabilities import OcrModelCatalogEntryCapabilities
92
+ from ..models.ocr_model_catalog_entry_option_defaults import OcrModelCatalogEntryOptionDefaults
93
+ from ..models.ocr_model_catalog_entry_pricing import OcrModelCatalogEntryPricing
94
+ d = dict(src_dict)
95
+ id = d.pop("id")
96
+
97
+ label = d.pop("label")
98
+
99
+ is_default = d.pop("is_default")
100
+
101
+ capabilities = OcrModelCatalogEntryCapabilities.from_dict(d.pop("capabilities"))
102
+
103
+
104
+
105
+
106
+ option_defaults = OcrModelCatalogEntryOptionDefaults.from_dict(d.pop("option_defaults"))
107
+
108
+
109
+
110
+
111
+ pricing = OcrModelCatalogEntryPricing.from_dict(d.pop("pricing"))
112
+
113
+
114
+
115
+
116
+ availability = OcrModelCatalogEntryAvailability(d.pop("availability"))
117
+
118
+
119
+
120
+
121
+ ocr_model_catalog_entry = cls(
122
+ id=id,
123
+ label=label,
124
+ is_default=is_default,
125
+ capabilities=capabilities,
126
+ option_defaults=option_defaults,
127
+ pricing=pricing,
128
+ availability=availability,
129
+ )
130
+
131
+ return ocr_model_catalog_entry
@@ -0,0 +1,9 @@
1
+ from enum import Enum
2
+
3
+ class OcrModelCatalogEntryAvailability(str, Enum):
4
+ AVAILABLE = "available"
5
+ DEGRADED = "degraded"
6
+ UNAVAILABLE = "unavailable"
7
+
8
+ def __str__(self) -> str:
9
+ return str(self.value)
@@ -0,0 +1,97 @@
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.ocr_model_catalog_entry_capabilities_options import OcrModelCatalogEntryCapabilitiesOptions
15
+
16
+
17
+
18
+
19
+
20
+ T = TypeVar("T", bound="OcrModelCatalogEntryCapabilities")
21
+
22
+
23
+
24
+ @_attrs_define
25
+ class OcrModelCatalogEntryCapabilities:
26
+ """
27
+ Attributes:
28
+ parse (bool):
29
+ extract_source (bool):
30
+ markdown (bool):
31
+ regions (bool):
32
+ options (OcrModelCatalogEntryCapabilitiesOptions):
33
+ """
34
+
35
+ parse: bool
36
+ extract_source: bool
37
+ markdown: bool
38
+ regions: bool
39
+ options: OcrModelCatalogEntryCapabilitiesOptions
40
+
41
+
42
+
43
+
44
+
45
+ def to_dict(self) -> dict[str, Any]:
46
+ from ..models.ocr_model_catalog_entry_capabilities_options import OcrModelCatalogEntryCapabilitiesOptions
47
+ parse = self.parse
48
+
49
+ extract_source = self.extract_source
50
+
51
+ markdown = self.markdown
52
+
53
+ regions = self.regions
54
+
55
+ options = self.options.to_dict()
56
+
57
+
58
+ field_dict: dict[str, Any] = {}
59
+
60
+ field_dict.update({
61
+ "parse": parse,
62
+ "extract_source": extract_source,
63
+ "markdown": markdown,
64
+ "regions": regions,
65
+ "options": options,
66
+ })
67
+
68
+ return field_dict
69
+
70
+
71
+
72
+ @classmethod
73
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
74
+ from ..models.ocr_model_catalog_entry_capabilities_options import OcrModelCatalogEntryCapabilitiesOptions
75
+ d = dict(src_dict)
76
+ parse = d.pop("parse")
77
+
78
+ extract_source = d.pop("extract_source")
79
+
80
+ markdown = d.pop("markdown")
81
+
82
+ regions = d.pop("regions")
83
+
84
+ options = OcrModelCatalogEntryCapabilitiesOptions.from_dict(d.pop("options"))
85
+
86
+
87
+
88
+
89
+ ocr_model_catalog_entry_capabilities = cls(
90
+ parse=parse,
91
+ extract_source=extract_source,
92
+ markdown=markdown,
93
+ regions=regions,
94
+ options=options,
95
+ )
96
+
97
+ return ocr_model_catalog_entry_capabilities
@@ -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="OcrModelCatalogEntryCapabilitiesOptions")
18
+
19
+
20
+
21
+ @_attrs_define
22
+ class OcrModelCatalogEntryCapabilitiesOptions:
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
+ ocr_model_catalog_entry_capabilities_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 ocr_model_catalog_entry_capabilities_options