o
    j                     @   s   d dl Z d dlZd dlmZ d dlmZ dd ZG dd dZdd Z	d	d
 Z
dddZdd ZdddZdd Zdd Ze jdkrJd dlmZ dS G dd dejZdS )    N)Pathc                 C   s   | sd S g }|  dD ]G}d|v rI| d\}}t|d }t|d }||k r8|dd t||d D  q|dd t||d dD  q|t|d  q|S )N,-   c                 S      g | ]}|qS  r   .0ir   r   W/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pypdfium2_cli/_parsers.py
<listcomp>       z!parse_numtext.<locals>.<listcomp>c                 S   r   r   r   r   r   r   r   r      r   )splitintextendrangeappend)ZnumtextindicesZnum_or_rangestartendr   r   r   parse_numtext
   s    "r   c                   @   s   e Zd Zdd Zdd ZdS )_Rangec                 C   s   || _ || _d S Nr   stop)selfr   r   r   r   r   __init__!   s   
z_Range.__init__c                 C   s   | j  d| j S )Nr   r   r   r   r   r   __repr__%   s   z_Range.__repr__N)__name__
__module____qualname__r   r   r   r   r   r   r      s    r   c                 C   sn   d}d }g }| D ]"}|d |kr|s|  }n|r#|t|| d }|| |}q|r5|t|| |S )Nr   r   )popr   r   )Zpagenumsprevrange_startoutnr   r   r   pagenums_ranger(   s    
r(   c                    s0   | s| S  fdd| D }t | trt|}|S )Nc                    s   g | ]}t | qS r   )round)r	   vn_digitsr   r   r   C   s    zround_list.<locals>.<listcomp>)
isinstancetuple)lstr,   resultr   r+   r   
round_list@   s   
r1   Tc                 C   s<   | j dtdd | j ddd |r| j dd tdd	 d S d S )
NinputzInput PDF document)typehelpz
--passwordz*A password to unlock the PDF, if encrypted)r4   z--pagesz"Page numbers and ranges to include)defaultr3   r4   )add_argumentr   r   )parserpagesr   r   r   	add_inputI   s"   
r9   c                 C   s   | j dtddd d S )Nz
--n-digits   z<Number of digits to which coordinates/sizes shall be rounded)r3   r5   r4   )r6   r   )r7   r   r   r   add_n_digits]   s   
r;   Fc                 K   sP   t j| jfd| ji|}|r|  d| v r&| js&dd tt|D | _|S )Npasswordr8   c                 S   r   r   r   r   r   r   r   r   k   r   zget_input.<locals>.<listcomp>)pdfiumZPdfDocumentr2   r<   
init_formsr8   r   len)argsr>   kwargsZpdfr   r   r   	get_inputf   s   rB   c                 c   s    | V  |E d H  d S r   r   )valueiteratorr   r   r   _postpeek_generatorr   s   rE   c                 C   s0   zt | }W n
 ty   Y dS w dt|| fS )N)FNT)nextStopIterationrE   )rD   Zfirst_valuer   r   r   iterator_hasvalueu   s   rH   )   	   )BooleanOptionalActionc                       s.   e Zd Z fddZdddZdd Z  ZS )	rK   c                    sZ   g }|D ]}| | |drd|dd   }| | qt jd||dd| d S )Nz----no-   r   )option_stringsdestnargsr   )r   
startswithsuperr   )r   rN   rO   rA   _option_stringsoption_string	__class__r   r   r      s   


zBooleanOptionalAction.__init__Nc                 C   s(   || j v rt|| j|d  d S d S )NrL   )rN   setattrrO   rQ   )r   r7   	namespacevaluesrT   r   r   r   __call__   s   
zBooleanOptionalAction.__call__c                 C   s   d | jS )Nz | )joinrN   r   r   r   r   format_usage   s   z"BooleanOptionalAction.format_usager   )r    r!   r"   r   rZ   r\   __classcell__r   r   rU   r   rK      s    
rK   )T)F)sysargparsepathlibr   Zpypdfium2._helpersZ_helpersr=   r   r   r(   r1   r9   r;   rB   rE   rH   version_inforK   Actionr   r   r   r   <module>   s    	
	
	
	