
    ;3h*                     :   d dl Z d dlZd dlZd dlmZmZ d dlmZ d dlm	Z	m
Z
mZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d
dlmZmZ d
dlm Z  d
dl!m"Z" d
dl#m$Z$m%Z% d
dl&m'Z'm(Z( d
dl)m*Z* d
dl+m,Z,  ejZ                  e.      Z/ G d de       Z0y)    N)BufferedReaderBytesIO)TracebackType)	AnyDict	GeneratorListLiteralOptionalTupleTypeUnion)LAParams)PDFDocument)PDFResourceManager)PDFPage)	PDFParser   )T_num
T_obj_list)	Container)Page)T_repair_setting_repair)PDFStructTreeStructTreeMissing)resolve_and_decode)PdfminerExceptionc                      e Zd ZU ej                  dgz   Zee   ed<   	 	 	 	 	 	 	 	 d"dee	e
f   dedeej                     deeee   ee   f      deeeef      d	ee   d
edeed      defdZe	 	 	 	 	 	 	 	 	 d#deeej                  e	e
f   deeee   ee   f      deeeef      d	ee   d
edeed      dedeeeej                  f      dededd fd       Zd$dZd%dZdeee      dee   dee   ddfdZedee   fd       Z edeee!f   fd       Z"edeeeef      fd       Z#edeeeef      fd       Z$edeeeef      fd       Z%d&d eee      deeef   fd!Z&y)'PDF_pagescached_propertiesNstreamstream_is_externalpathpageslaparamspasswordstrict_metadataunicode_norm)NFCNFKCNFDNFKDraise_unicode_errorsc
           
         || _         || _        || _        || _        |d n
t	        di || _        || _        || _        |	| _        	 t        t        |      |xs d      | _        t               | _        i | _        | j                  j"                  D ]  }| j                   j%                  |        | j                   j'                         D ]  \  }}	 t)        |      | j                   |<     y # t        $ r}
t        |
      d }
~
ww xY w# t        $ r1}
|r t*        j-                  d| dt/        |
              Y d }
~
sd }
~
ww xY w)N )r(   z[WARNING] Metadata key "z(" could not be parsed due to exception:  )r#   r$   r%   pages_to_parser   r'   r(   r*   r/   r   r   doc	Exceptionr   r   rsrcmgrmetadatainfoupdateitemsr   loggerwarningstr)selfr#   r$   r%   r&   r'   r(   r)   r*   r/   er8   kvs                 N/var/www/html/audio-gradio/venv/lib/python3.12/site-packages/pdfplumber/pdf.py__init__zPDF.__init__   s@    "4	# ( 0h6J6J ($8!	'"9V#4x~2NDH *+HHMM 	'DMM  &	'MM'') 	DAq#5a#8a 	  	'#A&&	'  	" .qc 2""%a&+ 	s0   C. D
.	D7DD
	E'D??E
path_or_fprepairgs_pathrepair_settingreturnc                 &   |rt        ||||	      }d}d }nJt        |t        t        j                  f      r$t        |d      }d}t        j                  |      }n|}d}d }	  | |||||||||
	      S # t        $ r |s|j                           w xY w)N)r(   rF   settingFrbT)r%   r&   r'   r(   r)   r*   r$   r/   )r   
isinstancer=   pathlibPathopenr   close)clsrD   r&   r'   r(   r)   r*   rE   rF   rG   r/   r#   r$   r%   s                 rB   rO   zPDF.openH   s    " XwF "' D
S',,$78*d+F!&<<
+DF!%D	!! /)#5%9
 
 ! 	%	s   "A3 3Bc                     | j                          | j                  D ]  }|j                           | j                  s| j                  j                          y y N)flush_cacher&   rP   r$   r#   )r>   pages     rB   rP   z	PDF.close|   sJ    JJ 	DJJL	 &&KK '    c                     | S rS   r2   )r>   s    rB   	__enter__zPDF.__enter__   s    rV   tvalue	tracebackc                 $    | j                          y rS   )rP   )r>   rY   rZ   r[   s       rB   __exit__zPDF.__exit__   s     	

rV   c                 \    t         d      r j                  S d} j                  }g  _        dt        t        d d f   f fd}t         |             D ]J  \  }}|dz   }|||vrt         |||      } j                  j                  |       ||j                  z  }L  j                  S )Nr!   r   rH   c               3      K   t        j                  j                        } 	 	 t        |        # t        $ r Y y t
        $ r}t        |      d }~ww xY wwrS   )r   create_pagesr4   nextStopIterationr5   r   )genr?   r>   s     rB   
iter_pageszPDF.pages.<locals>.iter_pages   sX     &&txx0C/s)O  %   /+A../s/   !A3 A	AAAAAAr   )page_numberinitial_doctop)	hasattrr!   r3   r   r   	enumerater   appendheight)r>   doctoppprd   irU   re   ps   `       rB   r&   z	PDF.pages   s    4";;  "$	/IgtT&9: 	/ !. 	GAta%K~+R"7T4[PAKKq!ahhF	 {{rV   c                    t        | d      r| j                  S i }| j                  D ]F  }|j                  j	                         D ]'  }|j                  |g       |j                  |   z   ||<   ) H || _        | j                  S )N_objects)rg   rp   r&   objectskeysget)r>   all_objectsrn   kinds       rB   rq   zPDF.objects   s    4$== -/ 	PA		( P$/OOD"$=		$$OD!P	P 0;}}rV   c                 ^    d | j                   D        }t        t        j                  |       S )Nc              3   4   K   | ]  }|j                     y wrS   )annots.0rn   s     rB   	<genexpr>zPDF.annots.<locals>.<genexpr>   s     ,Aqxx,   r&   list	itertoolschainr>   rc   s     rB   rx   z
PDF.annots   s$    ,,IOOS)**rV   c                 ^    d | j                   D        }t        t        j                  |       S )Nc              3   4   K   | ]  }|j                     y wrS   )
hyperlinksry   s     rB   r{   z!PDF.hyperlinks.<locals>.<genexpr>   s     0q||0r|   r}   r   s     rB   r   zPDF.hyperlinks   s$    0TZZ0IOOS)**rV   c                 ~    	 t        |       D cg c]  }|j                          c}S c c}w # t        $ r g cY S w xY w)z+Return the structure tree for the document.)r   to_dictr   )r>   elems     rB   structure_treezPDF.structure_tree   s:    	/<T/BCtDLLNCCC  	I	s   . ). . <<object_typesc                 x    | j                   | j                  D cg c]  }|j                  |       c}dS c c}w )N)r7   r&   )r7   r&   r   )r>   r   rU   s      rB   r   zPDF.to_dict   s1    =AZZHTdll<0H
 	
Hs   7)FNNNNFNT)	NNNFNFNdefaultT)rH   N)rH   r    rS   )'__name__
__module____qualname__r   r"   r	   r=   __annotations__r   r   r   boolr   rM   rN   intr   r   r   r
   rC   classmethodr   rO   rP   rX   r   BaseExceptionr   r]   propertyr   r&   r   rq   rx   r   r   r   r2   rV   rB   r    r       s   #,#>#>(#KtCyK
 $)'+8<-1"& %HL%)*ng-.* !* w||$	*
 d3is345* 4S>** 3-* * w'CDE* #*X  9=-1"& %HL6:+4%)1#w||^WDE1 d3is3451 4S>*	1
 3-1 1 w'CDE1 1 %W\\ 1231 )1 #1 
1 1f D'( & M*	
 
 tDz  6 c:o.   +T#s(^, + + +Dc3h0 + + T#s(^ 4  
HT#Y$7 
4S> 
rV   r    )1r   loggingrM   ior   r   typesr   typingr   r   r   r	   r
   r   r   r   r   pdfminer.layoutr   pdfminer.pdfdocumentr   pdfminer.pdfinterpr   pdfminer.pdfpager   pdfminer.pdfparserr   _typingr   r   	containerr   rU   r   rE   r   r   	structurer   r   utilsr   utils.exceptionsr   	getLoggerr   r;   r    r2   rV   rB   <module>r      sa       &  T T T $ , 1 $ ( &    - 7 % /			8	$t
) t
rV   