retab 0.0.38__py3-none-any.whl → 0.0.40__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.
- retab/_utils/_model_cards/anthropic.yaml +59 -0
- retab/_utils/_model_cards/auto.yaml +43 -0
- retab/_utils/_model_cards/gemini.yaml +117 -0
- retab/_utils/_model_cards/openai.yaml +301 -0
- retab/_utils/_model_cards/xai.yaml +28 -0
- retab/_utils/ai_models.py +109 -71
- retab/_utils/responses.py +7 -7
- retab/_utils/usage/usage.py +2 -1
- retab/resources/consensus/completions.py +14 -14
- retab/resources/consensus/completions_stream.py +18 -18
- retab/resources/consensus/responses.py +5 -5
- retab/resources/consensus/responses_stream.py +5 -5
- retab/resources/documents/client.py +122 -27
- retab/resources/documents/extractions.py +22 -22
- retab/resources/evaluations/documents.py +5 -5
- retab/resources/evaluations/iterations.py +7 -7
- retab/resources/jsonlUtils.py +2 -2
- retab/resources/processors/automations/endpoints.py +2 -2
- retab/resources/processors/automations/links.py +2 -2
- retab/resources/processors/automations/mailboxes.py +2 -2
- retab/resources/processors/automations/outlook.py +2 -2
- retab/resources/processors/client.py +7 -7
- retab/types/ai_models.py +41 -513
- retab/types/automations/webhooks.py +3 -3
- retab/types/completions.py +7 -7
- retab/types/documents/__init__.py +3 -0
- retab/types/documents/extractions.py +17 -17
- retab/types/documents/parse.py +32 -0
- retab/types/extractions.py +2 -2
- retab/types/logs.py +2 -2
- {retab-0.0.38.dist-info → retab-0.0.40.dist-info}/METADATA +4 -4
- {retab-0.0.38.dist-info → retab-0.0.40.dist-info}/RECORD +34 -28
- {retab-0.0.38.dist-info → retab-0.0.40.dist-info}/WHEEL +0 -0
- {retab-0.0.38.dist-info → retab-0.0.40.dist-info}/top_level.txt +0 -0
retab/types/completions.py
CHANGED
@@ -7,12 +7,12 @@ from openai.types.shared_params.reasoning import Reasoning
|
|
7
7
|
from openai.types.shared_params.response_format_json_schema import ResponseFormatJSONSchema
|
8
8
|
from pydantic import BaseModel, ConfigDict, Field
|
9
9
|
|
10
|
-
from .._utils.ai_models import
|
10
|
+
from .._utils.ai_models import get_provider_for_model
|
11
11
|
from .ai_models import AIProvider
|
12
12
|
from .chat import ChatCompletionRetabMessage
|
13
13
|
|
14
14
|
|
15
|
-
class
|
15
|
+
class RetabChatCompletionsRequest(BaseModel):
|
16
16
|
model_config = ConfigDict(arbitrary_types_allowed=True)
|
17
17
|
model: str = Field(..., description="Model used for chat completion")
|
18
18
|
messages: list[ChatCompletionRetabMessage] = Field(..., description="Messages to be parsed")
|
@@ -34,10 +34,10 @@ class UiChatCompletionsRequest(BaseModel):
|
|
34
34
|
Returns:
|
35
35
|
AIProvider: The AI provider corresponding to the given model.
|
36
36
|
"""
|
37
|
-
return
|
37
|
+
return get_provider_for_model(self.model)
|
38
38
|
|
39
39
|
|
40
|
-
class
|
40
|
+
class RetabChatCompletionsParseRequest(BaseModel):
|
41
41
|
model_config = ConfigDict(arbitrary_types_allowed=True)
|
42
42
|
model: str = Field(..., description="Model used for chat completion")
|
43
43
|
messages: list[ChatCompletionRetabMessage] = Field(..., description="Messages to be parsed")
|
@@ -59,10 +59,10 @@ class UiChatCompletionsParseRequest(BaseModel):
|
|
59
59
|
Returns:
|
60
60
|
AIProvider: The AI provider corresponding to the given model.
|
61
61
|
"""
|
62
|
-
return
|
62
|
+
return get_provider_for_model(self.model)
|
63
63
|
|
64
64
|
|
65
|
-
class
|
65
|
+
class RetabChatResponseCreateRequest(BaseModel):
|
66
66
|
input: Union[str, ResponseInputParam] = Field(..., description="Input to be parsed")
|
67
67
|
instructions: Optional[str] = None
|
68
68
|
|
@@ -87,4 +87,4 @@ class UiChatResponseCreateRequest(BaseModel):
|
|
87
87
|
Returns:
|
88
88
|
AIProvider: The AI provider corresponding to the given model.
|
89
89
|
"""
|
90
|
-
return
|
90
|
+
return get_provider_for_model(self.model)
|
@@ -96,7 +96,7 @@ class FieldLocation(BaseModel):
|
|
96
96
|
match_level: Literal["token", "line", "block"] | None = Field(default=None, description="The level of the match (token, line, block)")
|
97
97
|
|
98
98
|
|
99
|
-
class
|
99
|
+
class RetabParsedChoice(ParsedChoice):
|
100
100
|
# Adaptable ParsedChoice that allows None for the finish_reason
|
101
101
|
finish_reason: Literal["stop", "length", "tool_calls", "content_filter", "function_call"] | None = None # type: ignore
|
102
102
|
field_locations: dict[str, list[FieldLocation]] | None = Field(default=None, description="The locations of the fields in the document, if available")
|
@@ -106,9 +106,9 @@ class UiParsedChoice(ParsedChoice):
|
|
106
106
|
LikelihoodsSource = Literal["consensus", "log_probs"]
|
107
107
|
|
108
108
|
|
109
|
-
class
|
109
|
+
class RetabParsedChatCompletion(ParsedChatCompletion):
|
110
110
|
extraction_id: str | None = None
|
111
|
-
choices: list[
|
111
|
+
choices: list[RetabParsedChoice] # type: ignore
|
112
112
|
# Additional metadata fields (UIForm)
|
113
113
|
likelihoods: Optional[dict[str, Any]] = Field(
|
114
114
|
default=None, description="Object defining the uncertainties of the fields extracted when using consensus. Follows the same structure as the extraction object."
|
@@ -159,7 +159,7 @@ class LogExtractionRequest(BaseModel):
|
|
159
159
|
),
|
160
160
|
description="Document analyzed, if not provided a dummy one will be created with the text 'No document provided'",
|
161
161
|
)
|
162
|
-
completion: dict |
|
162
|
+
completion: dict | RetabParsedChatCompletion | Message | ParsedChatCompletion | ChatCompletion | None = None
|
163
163
|
openai_responses_output: Response | None = None
|
164
164
|
json_schema: dict[str, Any]
|
165
165
|
model: str
|
@@ -215,7 +215,7 @@ class LogExtractionResponse(BaseModel):
|
|
215
215
|
error_message: str | None = None
|
216
216
|
|
217
217
|
|
218
|
-
# DocumentExtractResponse =
|
218
|
+
# DocumentExtractResponse = RetabParsedChatCompletion
|
219
219
|
|
220
220
|
|
221
221
|
###### I'll place here for now -- New Streaming API
|
@@ -227,7 +227,7 @@ class LogExtractionResponse(BaseModel):
|
|
227
227
|
# - schema_validation_error: ErrorDetail | None = None # The error in the schema validation of the total accumulated content
|
228
228
|
|
229
229
|
|
230
|
-
class
|
230
|
+
class RetabParsedChoiceDeltaChunk(ChoiceDeltaChunk):
|
231
231
|
flat_likelihoods: dict[str, float] = {}
|
232
232
|
flat_parsed: dict[str, Any] = {}
|
233
233
|
flat_deleted_keys: list[str] = []
|
@@ -236,13 +236,13 @@ class UiParsedChoiceDeltaChunk(ChoiceDeltaChunk):
|
|
236
236
|
key_mapping: dict[str, Optional[str]] | None = Field(default=None, description="Mapping of consensus keys to original model keys")
|
237
237
|
|
238
238
|
|
239
|
-
class
|
240
|
-
delta:
|
239
|
+
class RetabParsedChoiceChunk(ChoiceChunk):
|
240
|
+
delta: RetabParsedChoiceDeltaChunk # type: ignore
|
241
241
|
|
242
242
|
|
243
|
-
class
|
243
|
+
class RetabParsedChatCompletionChunk(StreamingBaseModel, ChatCompletionChunk):
|
244
244
|
extraction_id: str | None = None
|
245
|
-
choices: list[
|
245
|
+
choices: list[RetabParsedChoiceChunk] # type: ignore
|
246
246
|
schema_validation_error: ErrorDetail | None = None
|
247
247
|
# Timestamps
|
248
248
|
request_at: datetime.datetime | None = Field(default=None, description="Timestamp of the request")
|
@@ -273,16 +273,16 @@ class UiParsedChatCompletionChunk(StreamingBaseModel, ChatCompletionChunk):
|
|
273
273
|
return None
|
274
274
|
return None
|
275
275
|
|
276
|
-
def chunk_accumulator(self, previous_cumulated_chunk: "
|
276
|
+
def chunk_accumulator(self, previous_cumulated_chunk: "RetabParsedChatCompletionChunk | None" = None) -> "RetabParsedChatCompletionChunk":
|
277
277
|
"""
|
278
|
-
Accumulate the chunk into the state, returning a new
|
278
|
+
Accumulate the chunk into the state, returning a new RetabParsedChatCompletionChunk with the accumulated content that could be yielded alone to generate the same state.
|
279
279
|
"""
|
280
280
|
|
281
|
-
def safe_get_delta(chnk: "
|
281
|
+
def safe_get_delta(chnk: "RetabParsedChatCompletionChunk | None", index: int) -> RetabParsedChoiceDeltaChunk:
|
282
282
|
if chnk is not None and index < len(chnk.choices):
|
283
283
|
return chnk.choices[index].delta
|
284
284
|
else:
|
285
|
-
return
|
285
|
+
return RetabParsedChoiceDeltaChunk(
|
286
286
|
content="",
|
287
287
|
flat_parsed={},
|
288
288
|
flat_likelihoods={},
|
@@ -313,7 +313,7 @@ class UiParsedChatCompletionChunk(StreamingBaseModel, ChatCompletionChunk):
|
|
313
313
|
last_token_at = self.last_token_at
|
314
314
|
request_at = self.request_at
|
315
315
|
|
316
|
-
return
|
316
|
+
return RetabParsedChatCompletionChunk(
|
317
317
|
extraction_id=self.extraction_id,
|
318
318
|
id=self.id,
|
319
319
|
created=self.created,
|
@@ -321,8 +321,8 @@ class UiParsedChatCompletionChunk(StreamingBaseModel, ChatCompletionChunk):
|
|
321
321
|
object=self.object,
|
322
322
|
usage=usage,
|
323
323
|
choices=[
|
324
|
-
|
325
|
-
delta=
|
324
|
+
RetabParsedChoiceChunk(
|
325
|
+
delta=RetabParsedChoiceDeltaChunk(
|
326
326
|
content=acc_content[i],
|
327
327
|
flat_parsed=acc_flat_parsed[i],
|
328
328
|
flat_likelihoods=acc_flat_likelihoods[i],
|
@@ -0,0 +1,32 @@
|
|
1
|
+
from typing import Literal
|
2
|
+
from pydantic import BaseModel, Field
|
3
|
+
|
4
|
+
from ..mime import MIMEData, BaseMIMEData
|
5
|
+
from ..browser_canvas import BrowserCanvas
|
6
|
+
|
7
|
+
TableParsingFormat = Literal["markdown", "yaml", "html", "json"]
|
8
|
+
|
9
|
+
|
10
|
+
class RetabUsage(BaseModel):
|
11
|
+
"""Usage information for document processing."""
|
12
|
+
|
13
|
+
page_count: int = Field(..., description="Number of pages processed")
|
14
|
+
credits: float = Field(..., description="Credits consumed for processing")
|
15
|
+
|
16
|
+
|
17
|
+
class ParseRequest(BaseModel):
|
18
|
+
"""Request model for document parsing."""
|
19
|
+
|
20
|
+
document: MIMEData = Field(..., description="Document to parse")
|
21
|
+
fast_mode: bool = Field(default=False, description="Use fast mode for parsing (may reduce quality)")
|
22
|
+
table_parsing_format: TableParsingFormat = Field(default="html", description="Format for parsing tables")
|
23
|
+
image_resolution_dpi: int = Field(default=72, description="DPI for image processing")
|
24
|
+
browser_canvas: BrowserCanvas = Field(default="A4", description="Canvas size for document rendering")
|
25
|
+
|
26
|
+
|
27
|
+
class ParseResult(BaseModel):
|
28
|
+
"""Result of document parsing."""
|
29
|
+
|
30
|
+
document: BaseMIMEData = Field(..., description="Processed document metadata")
|
31
|
+
usage: RetabUsage = Field(..., description="Processing usage information")
|
32
|
+
pages: list[str] = Field(..., description="Text content of each page")
|
retab/types/extractions.py
CHANGED
@@ -7,7 +7,7 @@ from openai.types.chat.chat_completion_reasoning_effort import ChatCompletionRea
|
|
7
7
|
from pydantic import BaseModel, Field, computed_field, model_validator
|
8
8
|
|
9
9
|
from retab.types.chat import ChatCompletionRetabMessage
|
10
|
-
from retab.types.documents.extractions import
|
10
|
+
from retab.types.documents.extractions import RetabParsedChatCompletion
|
11
11
|
|
12
12
|
from .._utils.usage.usage import CostBreakdown, compute_cost_from_model, compute_cost_from_model_with_breakdown
|
13
13
|
from .ai_models import Amount
|
@@ -44,7 +44,7 @@ class Extraction(BaseModel):
|
|
44
44
|
file_id: str = Field(default="", description="ID of the first file (deprecated)")
|
45
45
|
|
46
46
|
status: Literal["success", "failed"] = Field(..., description="Whether the analysis was successful")
|
47
|
-
completion:
|
47
|
+
completion: RetabParsedChatCompletion | ChatCompletion = Field(..., description="Response generated by the analysis")
|
48
48
|
json_schema: Any = Field(..., description="Response format (JSON Schema or pydantic_v2.BaseModel)")
|
49
49
|
model: str = Field(..., description="Model used for the analysis")
|
50
50
|
temperature: float = Field(default=0.0, description="Temperature used for the analysis")
|
retab/types/logs.py
CHANGED
@@ -11,7 +11,7 @@ from .._utils.json_schema import compute_schema_data_id
|
|
11
11
|
from .._utils.mime import generate_blake2b_hash_from_string
|
12
12
|
from .._utils.usage.usage import CostBreakdown, compute_cost_from_model, compute_cost_from_model_with_breakdown
|
13
13
|
from .ai_models import Amount
|
14
|
-
from .documents.extractions import
|
14
|
+
from .documents.extractions import RetabParsedChatCompletion
|
15
15
|
from .mime import BaseMIMEData
|
16
16
|
from .modalities import Modality
|
17
17
|
from .pagination import ListMetadata
|
@@ -199,7 +199,7 @@ class AutomationLog(BaseModel):
|
|
199
199
|
organization_id: str
|
200
200
|
created_at: datetime.datetime = Field(default_factory=lambda: datetime.datetime.now(datetime.timezone.utc))
|
201
201
|
automation_snapshot: AutomationConfig
|
202
|
-
completion:
|
202
|
+
completion: RetabParsedChatCompletion | ChatCompletion
|
203
203
|
file_metadata: Optional[BaseMIMEData]
|
204
204
|
external_request_log: Optional[ExternalRequestLog]
|
205
205
|
extraction_id: Optional[str] = Field(default=None, description="ID of the extraction")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: retab
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.40
|
4
4
|
Summary: Retab official python library
|
5
5
|
Home-page: https://github.com/Retab-dev/retab
|
6
6
|
Author: Retab
|
@@ -52,7 +52,7 @@ Requires-Dist: ruff
|
|
52
52
|
|
53
53
|
Made with love by the team at [Retab](https://retab.dev) 🤍.
|
54
54
|
|
55
|
-
[Our Website](https://retab.dev) | [Documentation](https://docs.retab.dev/get-started/introduction) | [Discord](https://discord.com/invite/vc5tWRPqag) | [Twitter](https://x.com/
|
55
|
+
[Our Website](https://retab.dev) | [Documentation](https://docs.retab.dev/get-started/introduction) | [Discord](https://discord.com/invite/vc5tWRPqag) | [Twitter](https://x.com/retabdev)
|
56
56
|
|
57
57
|
|
58
58
|
</div>
|
@@ -395,12 +395,12 @@ You can view minimal notebooks that demonstrate how to use Retab to process docu
|
|
395
395
|
|
396
396
|
Let's create the future of document processing together!
|
397
397
|
|
398
|
-
Join our [discord community](https://discord.com/invite/vc5tWRPqag) to share tips, discuss best practices, and showcase what you build. Or just [tweet](https://x.com/
|
398
|
+
Join our [discord community](https://discord.com/invite/vc5tWRPqag) to share tips, discuss best practices, and showcase what you build. Or just [tweet](https://x.com/retabdev) at us.
|
399
399
|
|
400
400
|
We can't wait to see how you'll use Retab.
|
401
401
|
|
402
402
|
- [Discord](https://discord.com/invite/vc5tWRPqag)
|
403
|
-
- [Twitter](https://x.com/
|
403
|
+
- [Twitter](https://x.com/retabdev)
|
404
404
|
|
405
405
|
|
406
406
|
## Roadmap
|
@@ -3,21 +3,26 @@ retab/_resource.py,sha256=JfAU4UTa05ugWfbrpO7fsVr_pFewht99NkoIfK6kBQM,577
|
|
3
3
|
retab/client.py,sha256=ebU_g0BfIJ6Lz-XsHjlMtomTBy4V_lDDgLTC0AYzDZE,29768
|
4
4
|
retab/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
5
|
retab/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
-
retab/_utils/ai_models.py,sha256=
|
6
|
+
retab/_utils/ai_models.py,sha256=u0SDwSd3SNhJaFm6bPepiGIh4BbocGYDKk4qu3kVIxc,4821
|
7
7
|
retab/_utils/benchmarking.py,sha256=ZSuVcRkYr4gD90yezAv6TuKaFdj2ulc5d5x3lXLbQss,17849
|
8
8
|
retab/_utils/chat.py,sha256=ZHt6oEX2lZl8O0tIj-rHnqgmDbHxMYEWPkx0fArvojo,14352
|
9
9
|
retab/_utils/display.py,sha256=ZFPbiBnwEWGR-suS8e9Xilz9OqyYRDwsKYWfbFSJPJM,18868
|
10
10
|
retab/_utils/json_schema.py,sha256=vbIg4NqREBq_eNbYdBTGw5ykhUmKkSiVRAahAOrWEZg,82237
|
11
11
|
retab/_utils/mime.py,sha256=S6pH_CmDc7fnb14PIoK3XALwb_Quha34a112joyUNmY,5723
|
12
|
-
retab/_utils/responses.py,sha256=
|
12
|
+
retab/_utils/responses.py,sha256=MqY6G9OCLMJhCZcT5uhky5xv_IRqI43aXRjvBU-L58E,7023
|
13
13
|
retab/_utils/stream_context_managers.py,sha256=gI1gVQSj3nWz6Mvjz7Ix5AiY0g6vSL-c2tPfuP04izo,2314
|
14
|
+
retab/_utils/_model_cards/anthropic.yaml,sha256=faGKfsNNvi3Wgu2sFseV5KVOseJClHBPPdBVv6nWyXo,1413
|
15
|
+
retab/_utils/_model_cards/auto.yaml,sha256=3nMlz9K2l5dNSTk-7zi2Id5oohM2L3E2_di2J6UpfdM,1048
|
16
|
+
retab/_utils/_model_cards/gemini.yaml,sha256=irV9c0WumgEOIYbAkR2jsisfK_4dY1Tzja2D1j1euF0,2870
|
17
|
+
retab/_utils/_model_cards/openai.yaml,sha256=PcmjqAioomqWOw25H4BluVfJ1WO_zapg_nPxORUR7JM,7639
|
18
|
+
retab/_utils/_model_cards/xai.yaml,sha256=OdVV33_WODc4UBZhDezcUq_5mHQK5zeOT49EjJUJ764,612
|
14
19
|
retab/_utils/usage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
15
|
-
retab/_utils/usage/usage.py,sha256=
|
20
|
+
retab/_utils/usage/usage.py,sha256=g2_Co3gaB1Akgbszd-I7ddXMM-EyI7Gz9SI5SdtlBII,12949
|
16
21
|
retab/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
17
22
|
retab/resources/evals.py,sha256=jRgHsFDsoZoTVpFNAtJm9rW1zQGdceLqZ522Mx1-bfo,29928
|
18
23
|
retab/resources/files.py,sha256=-_GejfQjKEk10HHb5npmLOA9cUnVHic2ZQntE8tw4TQ,954
|
19
24
|
retab/resources/finetuning.py,sha256=Rx8XcqB00UIjEDZcCGp5fM2yz5TW1j36aBicrTa0uAY,2587
|
20
|
-
retab/resources/jsonlUtils.py,sha256=
|
25
|
+
retab/resources/jsonlUtils.py,sha256=8HZJSuY1XGXTXBjovaXlrQ2_qiNMPr8RKnZ-AlC4lHo,45153
|
21
26
|
retab/resources/models.py,sha256=4WidFBnTGZEA65DSn2pLP2SRnCVXkMTw7o_m8xVCFC4,2469
|
22
27
|
retab/resources/openai_example.py,sha256=yz34KvfCvHTZ-AJ9GV-N7ljTTSWBmQEQNMHY2FUbEi4,522
|
23
28
|
retab/resources/prompt_optimization.py,sha256=BJkE7L1w0Z88sR9c1evD8ti4Zqr_xHCFSK4OJmV_M0k,3489
|
@@ -25,42 +30,42 @@ retab/resources/schemas.py,sha256=YakiA6aqiiusO8BIe_PF2eKC0lTf7Z3Zh1hxeoN8AtI,16
|
|
25
30
|
retab/resources/usage.py,sha256=OmJMPwmP1TBuZmMKrjaGWnl2mQ9VbQDKSAm6l7Tsaf4,13601
|
26
31
|
retab/resources/consensus/__init__.py,sha256=0b3MSOFiYPwkNTrs_dBPRhwSl3kuk8BtG5QXofIUb9M,89
|
27
32
|
retab/resources/consensus/client.py,sha256=D2TeqqCp0ZvqvQLAe1i3nW8nnf-Ms6zNEXRA9C26TQI,3705
|
28
|
-
retab/resources/consensus/completions.py,sha256=
|
29
|
-
retab/resources/consensus/completions_stream.py,sha256=
|
30
|
-
retab/resources/consensus/responses.py,sha256=
|
31
|
-
retab/resources/consensus/responses_stream.py,sha256=
|
33
|
+
retab/resources/consensus/completions.py,sha256=p9Xn3rUstuVexTXXZbXQzThMzxABeQI6VQr1WuiOC44,8373
|
34
|
+
retab/resources/consensus/completions_stream.py,sha256=sb-Fih38qnvbtjhIoA2l6XfFW5SrspXemwn7EKIb1aM,10896
|
35
|
+
retab/resources/consensus/responses.py,sha256=mWuFH1rvVDA8wPMnRNq3eR-Tss8xz6nxpQrFxoeJTdQ,9936
|
36
|
+
retab/resources/consensus/responses_stream.py,sha256=fnsWxr6AZvZZkMWudvAb4ULFunj0R8cqWeep5atWgOI,11673
|
32
37
|
retab/resources/documents/__init__.py,sha256=OjXmngFN0RKqO4SI-mJBNzr6Ex6rMxfq0DxaqzP0RQs,89
|
33
|
-
retab/resources/documents/client.py,sha256=
|
34
|
-
retab/resources/documents/extractions.py,sha256=
|
38
|
+
retab/resources/documents/client.py,sha256=XhtbtQ1vSkMMSf5QiskZNHkQthYRHjU5bomvESoct2E,25364
|
39
|
+
retab/resources/documents/extractions.py,sha256=Or_oBDPAwvMAia00xGGC30NH82iFCJ64tyxGGAF1bUU,25627
|
35
40
|
retab/resources/evaluations/__init__.py,sha256=3npbUDbxYn3ihnUKV7PRYNBYqL7MZ9AwhQHr7LaIESg,97
|
36
41
|
retab/resources/evaluations/client.py,sha256=SdI-m_8V0BApparlHO1mYFwvjAGWsHBKD_-Z3ZLcdq0,10658
|
37
|
-
retab/resources/evaluations/documents.py,sha256=
|
38
|
-
retab/resources/evaluations/iterations.py,sha256=
|
42
|
+
retab/resources/evaluations/documents.py,sha256=zNSQVxKKfDtDw01SLoPUCDSuxATrFBhFwEXKGdGK4UE,9490
|
43
|
+
retab/resources/evaluations/iterations.py,sha256=v9kD1tJ-3I0A02zVIwSInKHwPzGhmub7fc5FEBJkT74,17664
|
39
44
|
retab/resources/processors/__init__.py,sha256=w1HrMdSi3xlrcEDFMQ9BA7rbUhOFWSTkTKkkR2PfFHQ,93
|
40
|
-
retab/resources/processors/client.py,sha256=
|
45
|
+
retab/resources/processors/client.py,sha256=2292Jry67TFq6d0X74gOOm4fJQ59g4OZr_TacGtw2gA,20080
|
41
46
|
retab/resources/processors/automations/__init__.py,sha256=Iej-_yIxc8xAuhYmR0e2VI7j_EXVsNk1_L98OJSD82E,121
|
42
47
|
retab/resources/processors/automations/client.py,sha256=3w54F0JfC2GYDosLux8LVEjDd_RXqQ29-SyNXGa28U8,10500
|
43
|
-
retab/resources/processors/automations/endpoints.py,sha256=
|
44
|
-
retab/resources/processors/automations/links.py,sha256=
|
48
|
+
retab/resources/processors/automations/endpoints.py,sha256=I75XyAsIXAsnBn1hk5sxmDJ7yFc2zF-TpQ-KHJWfGo8,10896
|
49
|
+
retab/resources/processors/automations/links.py,sha256=HBfpouFBxwjIyDWHyG15XwYRC2lLJLkcywmTUnjQcPI,11449
|
45
50
|
retab/resources/processors/automations/logs.py,sha256=Ft0cH6C2zbm4dLdiQ-3hqC8HU8-23bGOjUGbaauDNAU,8827
|
46
|
-
retab/resources/processors/automations/mailboxes.py,sha256=
|
47
|
-
retab/resources/processors/automations/outlook.py,sha256=
|
51
|
+
retab/resources/processors/automations/mailboxes.py,sha256=fIiD4mFPnxi2Xf0DfTxXQv6f8EH3lWrdvOMoUZqoQrE,15908
|
52
|
+
retab/resources/processors/automations/outlook.py,sha256=Zj_sVxpDLCNxh1xaTAZ6GMGd26KtFo7QXrmalUpi4xA,14919
|
48
53
|
retab/resources/processors/automations/tests.py,sha256=Ni02vAdUqK5xt-DtWkVRJRCG3KdykvP_k4ez7vXCzsw,5992
|
49
54
|
retab/resources/secrets/__init__.py,sha256=SwofMyk96k0YSyj1d_GRxhpVx4wb4TA97TISsTjB0Kc,105
|
50
55
|
retab/resources/secrets/client.py,sha256=nXt1cgvkWqhA99WTnC1PWbWJq-EbwvoDuCQOa0GJOOU,599
|
51
56
|
retab/resources/secrets/external_api_keys.py,sha256=3TuJxjk65EPUT2XC3wBcYWaVwqzc6QGv9BoHufzxTLU,3759
|
52
57
|
retab/resources/secrets/webhook.py,sha256=2mFDNblQYBGOwgqOG5gfRJkusQX7Hjy28XZ7O7ffkl8,1805
|
53
58
|
retab/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
54
|
-
retab/types/ai_models.py,sha256=
|
59
|
+
retab/types/ai_models.py,sha256=DFLW6vi45heZGKkMJrAKs6j9K97Sn2N5IEE4hMoQAJs,4896
|
55
60
|
retab/types/browser_canvas.py,sha256=U3yLqJcSwfturcIsNFSblRtFtnG3p-UL1YYoM9KZfdE,70
|
56
61
|
retab/types/chat.py,sha256=l32vhLtNcdmHFjG4iVC617j38x6a2oH7CNPwlvqdF8g,424
|
57
|
-
retab/types/completions.py,sha256=
|
62
|
+
retab/types/completions.py,sha256=aHrWvKLMyktdVhIX3fkPBjbcWNBsceCTbTSq6ilpecY,5382
|
58
63
|
retab/types/consensus.py,sha256=EsFCsyZK8NhkQ1BizFpnGN54D24hRFKc0xwt9VpH11c,1161
|
59
64
|
retab/types/evals.py,sha256=1yx1rMG92ZZI7f5nWc6C-Z1WwUsBrWg4eLS-LakvC4w,9955
|
60
65
|
retab/types/events.py,sha256=NrisdzJAaJ_kkfgdsqoiDB-Upm0LnbIGZikU_e9XXWw,2195
|
61
|
-
retab/types/extractions.py,sha256=
|
66
|
+
retab/types/extractions.py,sha256=b9aW9KIuUrXfyJGP_DEiuN4p46go915HH4OqJOFtsZs,5850
|
62
67
|
retab/types/inference_settings.py,sha256=F_mBPFVY1yAwsHD11Z2ljMf3zkvviOey_JBnu8yEF84,572
|
63
|
-
retab/types/logs.py,sha256=
|
68
|
+
retab/types/logs.py,sha256=czSB2jKC_FpPHJOfsBUG1qP0oJ-cucrTyBphovmmCqk,9263
|
64
69
|
retab/types/metrics.py,sha256=0KEWUWW13s_tWjh7oUs33ip9TPwI7LZUNGE7k5qNoOo,1947
|
65
70
|
retab/types/mime.py,sha256=Fhq04yQoHhyx5wBjx7GNyJqQQJtcM_yEZt7uQxq6Br4,11038
|
66
71
|
retab/types/modalities.py,sha256=_2iGC_EEZT0Y-7PV_nHar5vqeEdsK7oy7ZJPV681nkg,1581
|
@@ -73,14 +78,15 @@ retab/types/automations/endpoints.py,sha256=IbylkBUBllcrtr9tifug0ptVq2vFKixuQ6e2
|
|
73
78
|
retab/types/automations/links.py,sha256=1ipBFWasY3cqds0U5AUz9Ez6T5kcgzX5r0gzZvFw8tU,901
|
74
79
|
retab/types/automations/mailboxes.py,sha256=KZh2BiQ8Q-HgNQT672Sl97LDnqW2sgjY_W3ZEj7o4Ow,2332
|
75
80
|
retab/types/automations/outlook.py,sha256=4rJ-_1Py88n44ASdWJHpb0_V5VKafP7pj67ovi6iYwU,3040
|
76
|
-
retab/types/automations/webhooks.py,sha256=
|
81
|
+
retab/types/automations/webhooks.py,sha256=_IY33_RL8ULYmKW7vYbCXLCEmsrKzM9SmwdPyv6LfwM,571
|
77
82
|
retab/types/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
78
83
|
retab/types/db/annotations.py,sha256=PM-H4zXyRs48s7AAv_sl8kOQo5lThsVvBM0aKJkCpmU,1026
|
79
84
|
retab/types/db/files.py,sha256=udJKGplw6a8cF4XUTLN_QAU9-pyEWs4THHX1zyvbx0U,1261
|
80
|
-
retab/types/documents/__init__.py,sha256=
|
85
|
+
retab/types/documents/__init__.py,sha256=RaD6PnvRJw7QEVTh_PYNX6gckpLcxUJH7FKaopRKJzY,114
|
81
86
|
retab/types/documents/correct_orientation.py,sha256=e-ivsslI6L6Gl0YkcslXw_DH620xMGEYVp4tdeviXeM,261
|
82
87
|
retab/types/documents/create_messages.py,sha256=PjNu9Hg4Ow09WOxI7qtHMQebUM2k0_UPtw_2VrHoD6E,10289
|
83
|
-
retab/types/documents/extractions.py,sha256=
|
88
|
+
retab/types/documents/extractions.py,sha256=vqokye_0VXTWf5TcP3uj_6GOTMXDxR-A7E0DVQHq7wc,19113
|
89
|
+
retab/types/documents/parse.py,sha256=WCfwBUsMgYFAZWbuOgCPd2dkcFmi1fYOf21XuiIj4uo,1323
|
84
90
|
retab/types/evaluations/__init__.py,sha256=fRQlK6y3x3SHqaukVYd9_zH8HrUk9TpoG9dlOTuIkcY,920
|
85
91
|
retab/types/evaluations/documents.py,sha256=oy0nqTrv0Pe__5ligeNWn5MbqVDAFRSrXYbCVoLxyXw,1268
|
86
92
|
retab/types/evaluations/iterations.py,sha256=66Svg5w2FqM14Zkn_opeUXV9mRZauGE8XLr1hJNMtKE,4637
|
@@ -101,7 +107,7 @@ retab/types/schemas/object.py,sha256=z0RaoBDNpNM-hCWTOdLycl4PH1SHZVQxIeAdt5Qztgk
|
|
101
107
|
retab/types/schemas/templates.py,sha256=YRfgzy3hPuAfguu-qrYr9KhnAiBjLOoorqdoxyRYsXE,3466
|
102
108
|
retab/types/secrets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
103
109
|
retab/types/secrets/external_api_keys.py,sha256=-yaaOfNLxKpll3oD-0htQlW8S03lyWs9Mmk9HOdyQ3g,437
|
104
|
-
retab-0.0.
|
105
|
-
retab-0.0.
|
106
|
-
retab-0.0.
|
107
|
-
retab-0.0.
|
110
|
+
retab-0.0.40.dist-info/METADATA,sha256=VtYI2hay7_aPe65ewKsgH7tfz_AiAJJLkefA4WHKfRk,14131
|
111
|
+
retab-0.0.40.dist-info/WHEEL,sha256=HiCZjzuy6Dw0hdX5R3LCFPDmFS4BWl8H-8W39XfmgX4,91
|
112
|
+
retab-0.0.40.dist-info/top_level.txt,sha256=waQR0EGdhLIQtztoE3AXg7ik5ONQ9q_bsKVpyFuJdq0,6
|
113
|
+
retab-0.0.40.dist-info/RECORD,,
|
File without changes
|
File without changes
|