o
    j$                     @   s   d dl Z d dlZd dlmZ dd Zdd Zdd Zdd	d
Zdd Z	G dd dZ
G dd dZdd Zdd Zdd ZeejZdS )    Nc           
      C   s   t | dkr
tdtdd | D std| \}}}}|r%||||fn||||f}d}d}|D ]}	||	|> O }|d8 }q1|S )	N   z'Color must consist of exactly 4 values.c                 s   s(    | ]}d |  kodkn  V  qdS )r      N ).0cr   r   Y/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pypdfium2/internal/utils.py	<genexpr>   s   & zcolor_tohex.<locals>.<genexpr>zColor value exceeds boundaries.r         )len
ValueErrorall)
colorZrev_byteorderrgbaZchannelsZc_colorshiftr   r   r   r   color_tohex	   s   
r   c                 C   s   t | |tt| || d S N)setattrtypegetattr)structfnamecallbackr   r   r   set_callback   s   r   c                 K   s0   |  D ]\}}t| |tt| || qd S r   )itemsr   r   r   )r   kwargsr   r   r   r   r   set_callbacks    s   r   r   c                    sV   g }t |t dsJ d|v r|g d7 }d|v r |dg7 }t fdd|D S )Nrwr   )seektellreadreadintowwritec                 3   s     | ]}t t |d V  qd S r   )callabler   )r   r   bufr   r   r   ,   s    zis_stream.<locals>.<genexpr>)setissubsetr   )r)   specmethodsr   r(   r   	is_stream%   s   
r.   c                 C   s   | j }t|| t|S r   )contentsr   from_addressctypes	addressof)ptrsizeobjr   r   r   
get_buffer/   s   r6   c                   @      e Zd Zdd Zdd ZdS )_buffer_readerc                 C   
   || _ d S r   	py_bufferselfr;   r   r   r   __init__6      
z_buffer_reader.__init__c                 C   s&   t ||}| j| | j| dS N   )r6   r;   r!   r$   )r=   _positionZp_buf_firstr4   c_bufferr   r   r   __call__9   s   
z_buffer_reader.__call__N__name__
__module____qualname__r>   rE   r   r   r   r   r8   4       r8   c                   @   r7   )_buffer_writerc                 C   r9   r   r:   r<   r   r   r   r>   B   r?   z_buffer_writer.__init__c                 C   s.   t |t t j}t||}| j| dS r@   )r1   castPOINTERc_ubyter6   r;   r&   )r=   rB   Zp_data_firstr4   rD   r   r   r   rE   E   s   
z_buffer_writer.__call__NrF   r   r   r   r   rK   @   rJ   rK   c                 C   sL   |  dtj}|  d t }||_t|dt|  d |_|j	f}||fS )Nr   
m_GetBlock)
r!   osSEEK_ENDpdfium_cZFPDF_FILEACCESSZ	m_FileLenr   r8   Zm_ParamrO   )bufferZfile_lenreaderZto_holdr   r   r   get_bufreaderM   s   
rU   c                 C   s    t jdd}t|dt|  |S )NrA   )versionZ
WriteBlock)rR   ZFPDF_FILEWRITEr   rK   )rS   writerr   r   r   get_bufwriter\   s   rX   c                 C   s0   | sdS t | }tj| dd | D  }||fS )N)Nr   c                 s   s    | ]}|j V  qd S r   )raw)r   pr   r   r   r   f   s    z pages_c_array.<locals>.<genexpr>)r   rR   Z	FPDF_PAGE)ZpagescountZc_arrayr   r   r   pages_c_arrayb   s
   r\   )r   )rP   r1   Zpypdfium2.rawrY   rR   r   r   r   r.   r6   r8   rK   rU   rX   r\   sizeofZ
FPDF_WCHARZFPDF_WCHAR_sizer   r   r   r   <module>   s   

