o
    ¾ÙøiS  ã                   @   sü   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r9ej d¡ ded	ee fd
d„Zdee d	e jfdd„Zdedeeee	f  d	dfdd„Zejdd… fdee d	dfdd„Zedkr|eƒ  dS dS )é    N)ÚdefaultdictÚdeque)Úchain)ÚAnyÚDefaultDictÚDictÚListé   )ÚPDFz--helpÚp_strÚreturnc                 C   s8   d| v rt t|  d¡ƒ\}}tt||d ƒƒS t| ƒgS )Nú-r	   )ÚmapÚintÚsplitÚlistÚrange)r   ÚstartÚend© r   ú[/home/develop/edictos_py/central_edictos/env/lib/python3.10/site-packages/pdfplumber/cli.pyÚparse_page_spec   s   
r   Úargs_rawc                 C   sð   t  d¡}|jddt  d¡d� | ¡ }|jdddd	� |jd
ddd	� |jdg d¢dd� |jddd� |jdddd� |jdddd� |jdtjd� |jdtd� |jddtd� |jdtdd� | 	| ¡}|j
d urvt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-textz‡Write 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Úargsr   r   r   r.      sF   
üüýýÿ

r.   ÚpdfÚdatac           	         sÊ   t dd„ ƒ}| jD ]!}||j ‰ |jD ]}| d¡}|d u rqˆ |  |d 7  < qq	t|ƒ}|rc| ¡ }d|v r@| |d ¡ | d¡}|d u rJq/|| ‰ d|v r_‡ fdd	„|d D ƒ|d< |s1d S d S )
Nc                   S   s   t tƒS )N)r   Ústrr   r   r   r   Ú<lambda>J   s    z#add_text_to_mcids.<locals>.<lambda>Úmcidr$   ÚchildrenÚpage_numberÚmcidsc                    s   g | ]}ˆ | ‘qS r   r   )Ú.0r7   ©Útext_contentsr   r   Ú
<listcomp>\   s    z%add_text_to_mcids.<locals>.<listcomp>)r   r/   r9   ÚcharsÚgetr   ÚpopleftÚextend)	r3   r4   Úpage_contentsÚpageÚcr7   ÚdÚelÚpagenor   r<   r   Úadd_text_to_mcidsI   s*   



ü
÷rI   c              	   C   sD  t | ƒ}tj|j|j|jd��‰}|jrttj	|j
|jd�ƒ nY|jr6|j
}t||ƒ ttj	||jdd�ƒ nJ|jdkrK|jtj|j|j|j|jd� n=|jdkr_|jD ]
}t|jdd	�ƒ qSn1|jtj|j|j|j|j|jd
� W d   ƒ d S W d   ƒ d S W d   ƒ d S W d   ƒ d S W d   ƒ d S 1 s›w   Y  d S )N)r/   Úlaparams)ÚindentF)rK   Úensure_asciir"   )Ú	precisionÚinclude_attrsÚexclude_attrsr$   T)Úlayout)rM   rN   rO   rK   )r.   r
   Úopenr   r/   rJ   Ú	structureÚprintr#   ÚdumpsÚstructure_treerK   Ústructure_textrI   ÚformatÚto_csvÚsysÚstdoutÚtypesrM   rN   rO   Úextract_textÚto_json)r   r2   r3   ÚtreerD   r   r   r   Úmain_   sJ   

û

ÿúíþúø"ðr_   Ú__main__)r(   r#   rY   Úcollectionsr   r   Ú	itertoolsr   Útypingr   r   r   r   r3   r
   ÚlenÚargvÚappendr5   r   r   Ú	Namespacer.   rI   r_   Ú__name__r   r   r   r   Ú<module>   s    "2$ 
ÿ