
    .i*                     >   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j-        e.          Z/ G d de           Z0dS )    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&dS )*PDF_pagescached_propertiesFNT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          |          |pd          | _        n!# t          $ r}
t          |
          d }
~
ww xY wt                      | _        i | _        | j        j        D ]}| j                            |           | j                                        D ]d\  }}	 t)          |          | j        |<   # t          $ r:}
|r t*                              d| dt/          |
                      Y d }
~
]d }
~
ww xY wd S )N )r)   z[WARNING] Metadata key "z(" could not be parsed due to exception:  )r$   r%   r&   pages_to_parser   r(   r)   r+   r0   r   r   doc	Exceptionr   r   rsrcmgrmetadatainfoupdateitemsr   loggerwarningstr)selfr$   r%   r&   r'   r(   r)   r*   r+   r0   er9   kvs                 J/var/www/html/analyses/venv/lib/python3.11/site-packages/pdfplumber/pdf.py__init__zPDF.__init__   s    "4	# ( 0h6J6J6J6J ($8!	'"9V#4#4x~2NNNDHH 	' 	' 	'#A&&&	')++HM 	' 	'DM  &&&&M'')) 	 	DAq#5a#8#8a   	 	 	"  +q + +"%a&&+ +       		 	s0   %A. .
B8BB1D		
E0EEdefault
path_or_fprepairgs_pathrepair_settingreturnc                 F   |rt          ||||	          }d}d }nNt          |t          t          j        f          r't          |d          }d}t          j        |          }n|}d}d }	  | |||||||||
	  	        S # t          $ r |s|                                  w xY w)N)r)   rH   settingFrbT)r&   r'   r(   r)   r*   r+   r%   r0   )r   
isinstancer>   pathlibPathopenr   close)clsrF   r'   r(   r)   r*   r+   rG   rH   rI   r0   r$   r%   r&   s                 rC   rQ   zPDF.openH   s    "  	Xw  F "' DD
S',$788 	*d++F!&<
++DDF!%D	3!! /)#5%9
 
 
 
 ! 	 	 	% 	s   *A> >"B c                     |                                   | j        D ]}|                                 | j        s| j                                         d S d S N)flush_cacher'   rR   r%   r$   )r?   pages     rC   rR   z	PDF.close|   sc    J 	 	DJJLLLL& 	 K	  	     c                     | S rU   r3   r?   s    rC   	__enter__zPDF.__enter__   s    rX   tvalue	tracebackc                 .    |                                   d S rU   )rR   )r?   r\   r]   r^   s       rC   __exit__zPDF.__exit__   s     	

rX   c                 V    t           d          r j        S d} j        }g  _        dt          t          d d f         f fd}t           |                      D ]H\  }}|dz   }|||vrt           |||          } j                            |           ||j        z  }I j        S )Nr"   r   rJ   c               3      K   t          j        j                  } 	 	 t          |           V  n-# t          $ r Y d S t
          $ r}t          |          d }~ww xY wArU   )r   create_pagesr5   nextStopIterationr6   r   )genr@   r?   s     rC   
iter_pageszPDF.pages.<locals>.iter_pages   s      &tx00C//s))OOOO$   EE  / / /+A...//s   1 
A	AAAr   )page_numberinitial_doctop)	hasattrr"   r4   r   r   	enumerater   appendheight)r?   doctoppprg   irW   rh   ps   `       rC   r'   z	PDF.pages   s    4"" 	; "$	/IgtT&9: 	/ 	/ 	/ 	/ 	/ 	/ !.. 	 	GAta%K~+R"7"7T4[PPPAKq!!!ahFF{rX   c                     t          | d          r| j        S i }| j        D ]E}|j                                        D ])}|                    |g           |j        |         z   ||<   *F|| _        | j        S )N_objects)rj   rs   r'   objectskeysget)r?   all_objectsrq   kinds       rC   rt   zPDF.objects   s    4$$ 	!= -/ 	P 	PA	(( P P$/OOD"$=$=	$$OD!!P/:}rX   c                 Z    d | j         D             }t          t          j        |           S )Nc              3   $   K   | ]}|j         V  d S rU   )annots.0rq   s     rC   	<genexpr>zPDF.annots.<locals>.<genexpr>   s$      ,,Aqx,,,,,,rX   r'   list	itertoolschainr?   rf   s     rC   r{   z
PDF.annots   s,    ,,,,,IOS)***rX   c                 Z    d | j         D             }t          t          j        |           S )Nc              3   $   K   | ]}|j         V  d S rU   )
hyperlinksr|   s     rC   r~   z!PDF.hyperlinks.<locals>.<genexpr>   s$      00q|000000rX   r   r   s     rC   r   zPDF.hyperlinks   s,    00TZ000IOS)***rX   c                 Z    	 d t          |           D             S # t          $ r g cY S w xY w)z+Return the structure tree for the document.c                 6    g | ]}|                                 S r3   to_dict)r}   elems     rC   
<listcomp>z&PDF.structure_tree.<locals>.<listcomp>   s     CCCtDLLNNCCCrX   r   rZ   s    rC   structure_treezPDF.structure_tree   sG    	CC}T/B/BCCCC  	 	 	III	s    **object_typesc                 :    | j         fd| j        D             dS )Nc                 :    g | ]}|                               S r3   r   )r}   rW   r   s     rC   r   zPDF.to_dict.<locals>.<listcomp>   s%    HHHTdll<00HHHrX   r8   r'   r   )r?   r   s    `rC   r   zPDF.to_dict   s0    HHHHTZHHH
 
 	
rX   )FNNNNFNT)	NNNFNFNrE   T)rJ   N)rJ   r!   rU   )'__name__
__module____qualname__r   r#   r	   r>   __annotations__r   r   r   boolr   rO   rP   intr   r   r   r
   rD   classmethodr   rQ   rR   r[   r   BaseExceptionr   r`   propertyr   r'   r   rt   r{   r   r   r   r3   rX   rC   r!   r!      s        #,#>(#KtCyKK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 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 1 [1f          D'( & M*	
 
    tDz    X6 c:o.    X +T#s(^, + + + X+ +Dc3h0 + + + X+ T#s(^ 4    X
 
HT#Y$7 
4S> 
 
 
 
 
 
rX   r!   )1r   loggingrO   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   rW   r   rG   r   r   	structurer   r   utilsr   utils.exceptionsr   	getLoggerr   r<   r!   r3   rX   rC   <module>r      s         & & & & & & & &       T T T T T T T T T T T T T T T T T T T T T T $ $ $ $ $ $ , , , , , , 1 1 1 1 1 1 $ $ $ $ $ $ ( ( ( ( ( ( & & & & & & & &                   - - - - - - - - 7 7 7 7 7 7 7 7 % % % % % % / / / / / /		8	$	$t
 t
 t
 t
 t
) t
 t
 t
 t
 t
rX   