6161)
6262from .models import (
6363 ConvertToMarkdownResponse ,
64- ExtractTextResponse ,
6564 PdfRestDeletionResponse ,
6665 PdfRestErrorResponse ,
6766 PdfRestFile ,
@@ -2395,7 +2394,7 @@ def extract_images(
23952394 timeout = timeout ,
23962395 )
23972396
2398- def extract_text (
2397+ def extract_pdf_text_to_file (
23992398 self ,
24002399 file : PdfRestFile | Sequence [PdfRestFile ],
24012400 * ,
@@ -2404,40 +2403,36 @@ def extract_text(
24042403 preserve_line_breaks : Literal ["off" , "on" ] = "off" ,
24052404 word_style : Literal ["off" , "on" ] = "off" ,
24062405 word_coordinates : Literal ["off" , "on" ] = "off" ,
2407- output_type : Literal ["json" , "file" ] = "json" ,
24082406 output : str | None = None ,
24092407 extra_query : Query | None = None ,
24102408 extra_headers : AnyMapping | None = None ,
24112409 extra_body : Body | None = None ,
24122410 timeout : TimeoutTypes | None = None ,
2413- ) -> ExtractTextResponse :
2414- """Extract text content from a PDF."""
2411+ ) -> PdfRestFileBasedResponse :
2412+ """Extract text content from a PDF and return a file-based response ."""
24152413
2416- payload : dict [str , Any ] = {"files" : file }
2414+ payload : dict [str , Any ] = {
2415+ "files" : file ,
2416+ "full_text" : full_text ,
2417+ "preserve_line_breaks" : preserve_line_breaks ,
2418+ "word_style" : word_style ,
2419+ "word_coordinates" : word_coordinates ,
2420+ "output_type" : "file" ,
2421+ }
24172422 if pages is not None :
24182423 payload ["pages" ] = pages
2419- payload ["full_text" ] = full_text
2420- payload ["preserve_line_breaks" ] = preserve_line_breaks
2421- payload ["word_style" ] = word_style
2422- payload ["word_coordinates" ] = word_coordinates
2423- payload ["output_type" ] = output_type
24242424 if output is not None :
24252425 payload ["output" ] = output
24262426
2427- validated_payload = ExtractTextPayload .model_validate (payload )
2428- request = self .prepare_request (
2429- "POST" ,
2430- "/extracted-text" ,
2431- json_body = validated_payload .model_dump (
2432- mode = "json" , by_alias = True , exclude_none = True , exclude_unset = True
2433- ),
2427+ return self ._post_file_operation (
2428+ endpoint = "/extracted-text" ,
2429+ payload = payload ,
2430+ payload_model = ExtractTextPayload ,
24342431 extra_query = extra_query ,
24352432 extra_headers = extra_headers ,
24362433 extra_body = extra_body ,
24372434 timeout = timeout ,
24382435 )
2439- raw_payload = self ._send_request (request )
2440- return ExtractTextResponse .model_validate (raw_payload )
24412436
24422437 def preview_redactions (
24432438 self ,
@@ -3385,7 +3380,7 @@ async def extract_images(
33853380 timeout = timeout ,
33863381 )
33873382
3388- async def extract_text (
3383+ async def extract_pdf_text_to_file (
33893384 self ,
33903385 file : PdfRestFile | Sequence [PdfRestFile ],
33913386 * ,
@@ -3394,40 +3389,36 @@ async def extract_text(
33943389 preserve_line_breaks : Literal ["off" , "on" ] = "off" ,
33953390 word_style : Literal ["off" , "on" ] = "off" ,
33963391 word_coordinates : Literal ["off" , "on" ] = "off" ,
3397- output_type : Literal ["json" , "file" ] = "json" ,
33983392 output : str | None = None ,
33993393 extra_query : Query | None = None ,
34003394 extra_headers : AnyMapping | None = None ,
34013395 extra_body : Body | None = None ,
34023396 timeout : TimeoutTypes | None = None ,
3403- ) -> ExtractTextResponse :
3404- """Extract text content from a PDF."""
3397+ ) -> PdfRestFileBasedResponse :
3398+ """Extract text content from a PDF and return a file-based response ."""
34053399
3406- payload : dict [str , Any ] = {"files" : file }
3400+ payload : dict [str , Any ] = {
3401+ "files" : file ,
3402+ "full_text" : full_text ,
3403+ "preserve_line_breaks" : preserve_line_breaks ,
3404+ "word_style" : word_style ,
3405+ "word_coordinates" : word_coordinates ,
3406+ "output_type" : "file" ,
3407+ }
34073408 if pages is not None :
34083409 payload ["pages" ] = pages
3409- payload ["full_text" ] = full_text
3410- payload ["preserve_line_breaks" ] = preserve_line_breaks
3411- payload ["word_style" ] = word_style
3412- payload ["word_coordinates" ] = word_coordinates
3413- payload ["output_type" ] = output_type
34143410 if output is not None :
34153411 payload ["output" ] = output
34163412
3417- validated_payload = ExtractTextPayload .model_validate (payload )
3418- request = self .prepare_request (
3419- "POST" ,
3420- "/extracted-text" ,
3421- json_body = validated_payload .model_dump (
3422- mode = "json" , by_alias = True , exclude_none = True , exclude_unset = True
3423- ),
3413+ return await self ._post_file_operation (
3414+ endpoint = "/extracted-text" ,
3415+ payload = payload ,
3416+ payload_model = ExtractTextPayload ,
34243417 extra_query = extra_query ,
34253418 extra_headers = extra_headers ,
34263419 extra_body = extra_body ,
34273420 timeout = timeout ,
34283421 )
3429- raw_payload = await self ._send_request (request )
3430- return ExtractTextResponse .model_validate (raw_payload )
34313422
34323423 async def preview_redactions (
34333424 self ,
0 commit comments