
    .iS                        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 ddlmZ  eej                  dk    rej                            d           ded	ee         fd
Zdee         d	e j        fdZdedeeee	f                  d	dfdZej        dd         fdee         d	dfdZedk    r e             dS dS )    N)defaultdictdeque)chain)AnyDefaultDictDictList   )PDFz--helpp_strreturnc                     d| v rKt          t          |                     d                    \  }}t          t	          ||dz                       S t          |           gS )N-r
   )mapintsplitlistrange)r   startends      J/var/www/html/analyses/venv/lib/python3.11/site-packages/pdfplumber/cli.pyparse_page_specr      sT    
e||ekk#..//
sE%q))***E

|    args_rawc                 2   t          j        d          }|                    ddt          j        d                     |                                }|                    ddd	           |                    d
dd	           |                    dg dd           |                    dd           |                    ddd           |                    ddd           |                    dt
          j                   |                    dt                     |                    ddt                     |                    dt          d           |	                    |           }|j
         t          t          |j
                   |_
        |S )N
pdfplumberinfile?rb)nargstypez--structurezoWrite the structure tree as JSON.  All other arguments except --pages, --laparams, and --indent will be ignored
store_true)helpactionz--structure-textzWrite the structure tree as JSON including text contents.  All other arguments except --pages, --laparams, and --indent will be ignoredz--format)csvjsontextr%   )choicesdefaultz--types+)r    z--include-attrsz1Include *only* these object attributes in output.)r    r#   z--exclude-attrsz,Exclude these object attributes from output.z
--laparams)r!   z--precisionz--pagesz--indentz&Indent level for JSON pretty-printing.)r!   r#   )argparseArgumentParseradd_argumentFileTypeadd_mutually_exclusive_groupr&   loadsr   r   
parse_argspagesr   r   )r   parsergroupargss       r   r1   r1      s   $\22F
(2CD2I2IJJJ//11E	W	     
W	     
,C,C,CUSSS
	---
@     ;     4:666
C000
	?CCC
#K     X&&Dz%,--
Kr   pdfdatac                   	 t          d           }| j        D ]G}||j                 	|j        D ]0}|                    d          }|	|xx         |d         z  cc<   1Ht          |          }|rr|                                }d|v r|                    |d                    |                    d          }|M||         	d|v r	fd|d         D             |d<   |pd S d S )Nc                  *    t          t                    S )N)r   str r   r   <lambda>z#add_text_to_mcids.<locals>.<lambda>J   s    {3?O?O r   mcidr'   childrenpage_numbermcidsc                      g | ]
}|         S r;   r;   ).0r=   text_contentss     r   
<listcomp>z%add_text_to_mcids.<locals>.<listcomp>\   s    FFF$--FFFr   )r   r2   r?   charsgetr   popleftextend)
r6   r7   page_contentspagecr=   delpagenorC   s
            @r   add_text_to_mcidsrO   I   s6   +67O7O+P+PM	 - -%d&67 	- 	-A55==D|$1V9,		-
 	dA
 	GYY[[HHR
^$$$&&>%f-b==FFFF"W+FFFBvJ  	G 	G 	G 	G 	Gr   c           	         t          |           }t          j        |j        |j        |j                  5 }|j        r/t          t          j	        |j
        |j                             n|j        rA|j
        }t          ||           t          t          j	        ||j        d                     n|j        dk    r9|                    t           j        |j        |j        |j        |j                   nw|j        dk    r.|j        D ]%}t          |                    d	                     &n>|                    t           j        |j        |j        |j        |j        |j        
           d d d            d S # 1 swxY w Y   d S )N)r2   laparams)indentF)rR   ensure_asciir%   )	precisioninclude_attrsexclude_attrsr'   T)layout)rT   rU   rV   rR   )r1   r   openr   r2   rQ   	structureprintr&   dumpsstructure_treerR   structure_textrO   formatto_csvsysstdouttypesrT   rU   rV   extract_textto_json)r   r5   r6   treerJ   s        r   mainrf   _   s   hD	$+TZ$-	H	H	H C> 	$*S/DDDEEEE  	%Dc4((($*T$+EJJJKKKK[E!!JJ

."0"0      [F""	 6 6d''t'4455556 KK

."0"0{    '                 s   D:E==FF__main__)r+   r&   r`   collectionsr   r   	itertoolsr   typingr   r   r   r	   r6   r   lenargvappendr:   r   r   	Namespacer1   rO   rf   __name__r;   r   r   <module>rp      s     



 * * * * * * * *       / / / / / / / / / / / /      3sx==AHOOH3 49    /c /x'9 / / / /dG3 Gd4S>&: Gt G G G G,  #x|  49     @ zDFFFFF r   