Skip to content

Commit 0f1a390

Browse files
Remove SummarizedPdfTextResponse in favor of PdfRestFileBasedResponse
Assisted-by: Codex
1 parent ab2e6d8 commit 0f1a390

5 files changed

Lines changed: 81 additions & 93 deletions

File tree

src/pdfrest/client.py

Lines changed: 14 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,14 @@
6060
translate_httpx_error,
6161
)
6262
from .models import (
63-
PdfRestDeletionResponse,
6463
ConvertToMarkdownResponse,
6564
ExtractTextResponse,
65+
PdfRestDeletionResponse,
6666
PdfRestErrorResponse,
6767
PdfRestFile,
6868
PdfRestFileBasedResponse,
6969
PdfRestFileID,
7070
PdfRestInfoResponse,
71-
SummarizePdfTextResponse,
7271
TranslatePdfTextResponse,
7372
UpResponse,
7473
)
@@ -78,14 +77,14 @@
7877
from .models._internal import (
7978
BasePdfRestGraphicPayload,
8079
BmpPdfRestPayload,
81-
DeletePayload,
8280
ConvertToMarkdownPayload,
81+
DeletePayload,
8382
ExtractImagesPayload,
8483
ExtractTextPayload,
8584
GifPdfRestPayload,
8685
JpegPdfRestPayload,
87-
PdfCompressPayload,
8886
OcrPdfPayload,
87+
PdfCompressPayload,
8988
PdfFlattenAnnotationsPayload,
9089
PdfFlattenFormsPayload,
9190
PdfFlattenTransparenciesPayload,
@@ -2140,7 +2139,7 @@ def summarize_pdf_text(
21402139
extra_headers: AnyMapping | None = None,
21412140
extra_body: Body | None = None,
21422141
timeout: TimeoutTypes | None = None,
2143-
) -> SummarizePdfTextResponse:
2142+
) -> PdfRestFileBasedResponse:
21442143
"""Summarize the textual content of a PDF, Markdown, or text document."""
21452144

21462145
payload: dict[str, Any] = {
@@ -2154,21 +2153,15 @@ def summarize_pdf_text(
21542153
payload["pages"] = pages
21552154
if output is not None:
21562155
payload["output"] = output
2157-
2158-
validated_payload = SummarizePdfTextPayload.model_validate(payload)
2159-
request = self.prepare_request(
2160-
"POST",
2161-
"/summarized-pdf-text",
2162-
json_body=validated_payload.model_dump(
2163-
mode="json", by_alias=True, exclude_none=True, exclude_unset=True
2164-
),
2156+
return self._post_file_operation(
2157+
endpoint="/summarized-pdf-text",
2158+
payload=payload,
2159+
payload_model=SummarizePdfTextPayload,
21652160
extra_query=extra_query,
21662161
extra_headers=extra_headers,
21672162
extra_body=extra_body,
21682163
timeout=timeout,
21692164
)
2170-
raw_payload = self._send_request(request)
2171-
return SummarizePdfTextResponse.model_validate(raw_payload)
21722165

21732166
def convert_to_markdown(
21742167
self,
@@ -2668,7 +2661,6 @@ def compress_pdf(
26682661
extra_body=extra_body,
26692662
timeout=timeout,
26702663
)
2671-
26722664

26732665
def flatten_transparencies(
26742666
self,
@@ -3089,7 +3081,7 @@ async def summarize_pdf_text(
30893081
extra_headers: AnyMapping | None = None,
30903082
extra_body: Body | None = None,
30913083
timeout: TimeoutTypes | None = None,
3092-
) -> SummarizePdfTextResponse:
3084+
) -> PdfRestFileBasedResponse:
30933085
"""Summarize the textual content of a PDF, Markdown, or text document."""
30943086

30953087
payload: dict[str, Any] = {
@@ -3103,21 +3095,15 @@ async def summarize_pdf_text(
31033095
payload["pages"] = pages
31043096
if output is not None:
31053097
payload["output"] = output
3106-
3107-
validated_payload = SummarizePdfTextPayload.model_validate(payload)
3108-
request = self.prepare_request(
3109-
"POST",
3110-
"/summarized-pdf-text",
3111-
json_body=validated_payload.model_dump(
3112-
mode="json", by_alias=True, exclude_none=True, exclude_unset=True
3113-
),
3098+
return await self._post_file_operation(
3099+
endpoint="/summarized-pdf-text",
3100+
payload=payload,
3101+
payload_model=SummarizePdfTextPayload,
31143102
extra_query=extra_query,
31153103
extra_headers=extra_headers,
31163104
extra_body=extra_body,
31173105
timeout=timeout,
31183106
)
3119-
raw_payload = await self._send_request(request)
3120-
return SummarizePdfTextResponse.model_validate(raw_payload)
31213107

31223108
async def convert_to_markdown(
31233109
self,
@@ -3659,7 +3645,6 @@ async def compress_pdf(
36593645
extra_body=extra_body,
36603646
timeout=timeout,
36613647
)
3662-
36633648

36643649
async def flatten_transparencies(
36653650
self,
@@ -3687,7 +3672,7 @@ async def flatten_transparencies(
36873672
extra_body=extra_body,
36883673
timeout=timeout,
36893674
)
3690-
3675+
36913676
async def linearize_pdf(
36923677
self,
36933678
file: PdfRestFile | Sequence[PdfRestFile],

src/pdfrest/models/__init__.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,25 @@
11
from .public import (
2-
PdfRestDeletionResponse,
32
ConvertToMarkdownResponse,
43
ExtractTextResponse,
4+
PdfRestDeletionResponse,
55
PdfRestErrorResponse,
66
PdfRestFile,
77
PdfRestFileBasedResponse,
88
PdfRestFileID,
99
PdfRestInfoResponse,
10-
SummarizePdfTextResponse,
1110
TranslatePdfTextResponse,
1211
UpResponse,
1312
)
1413

1514
__all__ = [
16-
"PdfRestDeletionResponse",
1715
"ConvertToMarkdownResponse",
1816
"ExtractTextResponse",
17+
"PdfRestDeletionResponse",
1918
"PdfRestErrorResponse",
2019
"PdfRestFile",
2120
"PdfRestFileBasedResponse",
2221
"PdfRestFileID",
2322
"PdfRestInfoResponse",
24-
"SummarizePdfTextResponse",
2523
"TranslatePdfTextResponse",
2624
"UpResponse",
2725
]

src/pdfrest/models/public.py

Lines changed: 1 addition & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,14 @@
2020
from typing_extensions import override
2121

2222
__all__ = (
23-
"PdfRestDeletionResponse",
2423
"ConvertToMarkdownResponse",
2524
"ExtractTextResponse",
25+
"PdfRestDeletionResponse",
2626
"PdfRestErrorResponse",
2727
"PdfRestFile",
2828
"PdfRestFileBasedResponse",
2929
"PdfRestFileID",
3030
"PdfRestInfoResponse",
31-
"SummarizePdfTextResponse",
3231
"TranslatePdfTextResponse",
3332
"UpResponse",
3433
)
@@ -314,43 +313,6 @@ class PdfRestDeletionResponse(BaseModel):
314313
min_length=1,
315314
),
316315
]
317-
class SummarizePdfTextResponse(BaseModel):
318-
"""Response returned by the summarize-pdf-text tool."""
319-
320-
model_config = ConfigDict(extra="allow")
321-
322-
summary: Annotated[
323-
str | None,
324-
Field(
325-
description="Inline summary content when output_type is json.",
326-
default=None,
327-
),
328-
] = None
329-
input_id: Annotated[
330-
PdfRestFileID,
331-
Field(
332-
validation_alias=AliasChoices("input_id", "inputId"),
333-
description="The id of the input file.",
334-
),
335-
]
336-
output_url: Annotated[
337-
HttpUrl | None,
338-
Field(
339-
alias="outputUrl",
340-
validation_alias=AliasChoices("output_url", "outputUrl"),
341-
description="Download URL for file output.",
342-
default=None,
343-
),
344-
] = None
345-
output_id: Annotated[
346-
PdfRestFileID | None,
347-
Field(
348-
alias="outputId",
349-
validation_alias=AliasChoices("output_id", "outputId"),
350-
description="The id of the generated output when output_type is file.",
351-
default=None,
352-
),
353-
] = None
354316

355317

356318
class TranslatePdfTextResponse(BaseModel):

tests/live/test_live_summarize_pdf_text.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import pytest
44

55
from pdfrest import PdfRestApiError, PdfRestClient
6-
from pdfrest.models import SummarizePdfTextResponse
6+
from pdfrest.models import PdfRestFileBasedResponse
77

88
from ..resources import get_test_resource_path
99

@@ -25,8 +25,8 @@ def test_live_summarize_pdf_text_success(
2525
summary_format="overview",
2626
)
2727

28-
assert isinstance(response, SummarizePdfTextResponse)
29-
assert response.summary
28+
assert isinstance(response, PdfRestFileBasedResponse)
29+
assert response.output_files
3030
assert response.input_id == uploaded.id
3131

3232

0 commit comments

Comments
 (0)