o
    _qi`                     @   s   d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z 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rQd dlmZ dS G dd dejZdS )    N)Pathc                  C   sh   t ttjdd} tttjdd }| tj	_
td}|t  || t   d S )NDEBUG_AUTOCLOSEr   ZPYPDFIUM_LOGLEVELdebugZ	pypdfium2)boolintosenvirongetgetattrloggingupperpdfium_ir   value	getLogger
addHandlerStreamHandlersetLevelpdfiumZPdfUnspHandlersetup)Zdebug_autocloseZloglevelZ
lib_logger r   ^/home/app/PaddleOCR-VL/.venv_paddleocr/lib/python3.10/site-packages/pypdfium2/_cli/_parsers.pysetup_logging   s   

r   c                 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   r   .0ir   r   r   
<listcomp>&       z!parse_numtext.<locals>.<listcomp>c                 S   r   r   r   r   r   r   r   r   (   r    )splitr   extendrangeappend)ZnumtextindicesZnum_or_rangestartendr   r   r   parse_numtext   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   2   s    zround_list.<locals>.<listcomp>)
isinstancetuple)lstr-   resultr   r,   r   
round_list/   s   
r2   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)r5   z--pagesz"Page numbers and ranges to include)defaultr4   r5   )add_argumentr   r)   )parserpagesr   r   r   	add_input8   s"   
r:   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)r4   r6   r5   )r7   r   )r8   r   r   r   add_n_digitsL   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passwordr9   c                 S   r   r   r   r   r   r   r   r   Z   r    zget_input.<locals>.<listcomp>)r   ZPdfDocumentr3   r=   
init_formsr9   r$   len)argsr>   kwargsZpdfr   r   r   	get_inputU   s   rB   c                 c   s    | V  |E d H  d S Nr   )r   iteratorr   r   r   _postpeek_generatora   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_hasvalued   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super__init__)selfrN   rO   rA   _option_stringsoption_string	__class__r   r   rS   s   s   


zBooleanOptionalAction.__init__Nc                 C   s(   || j v rt|| j|d  d S d S )NrL   )rN   setattrrO   rQ   )rT   r8   	namespacevaluesrV   r   r   r   __call__   s   
zBooleanOptionalAction.__call__c                 C   s   d | jS )Nz | )joinrN   )rT   r   r   r   format_usage   s   z"BooleanOptionalAction.format_usagerC   )__name__
__module____qualname__rS   r\   r^   __classcell__r   r   rW   r   rK   r   s    
rK   )T)F)r   sysr   argparsepathlibr   Zpypdfium2._helpersZ_helpersr   Zpypdfium2.internalZinternalr   r   r)   r2   r:   r<   rB   rE   rH   version_inforK   Actionr   r   r   r   <module>   s$   
	
	
	