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   ^/var/www/html/fyndo/pharma/fyndo/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)
colorrev_byteorderrgbachannels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   
r1   c                 C   s   | j }t|| t|S r   )contentsr   from_addressctypes	addressof)ptrsizeobjr   r   r   
get_buffer/   s   r9   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   )r9   r>   r$   r'   )r@   _positionp_buf_firstr7   c_bufferr   r   r   __call__9   s   
z_buffer_reader.__call__N__name__
__module____qualname__rA   rI   r   r   r   r   r;   4       r;   c                   @   r:   )_buffer_writerc                 C   r<   r   r=   r?   r   r   r   rA   B   rB   z_buffer_writer.__init__c                 C   s.   t |t t j}t||}| j| dS rC   )r4   castPOINTERc_ubyter9   r>   r)   )r@   rE   p_data_firstr7   rH   r   r   r   rI   E   s   
z_buffer_writer.__call__NrJ   r   r   r   r   rO   @   rN   rO   c                 C   sL   |  dtj}|  d t }||_t|dt|  d |_|j	f}||fS )Nr   
m_GetBlock)
r$   osSEEK_ENDpdfium_cFPDF_FILEACCESS	m_FileLenr   r;   m_ParamrT   )bufferfile_lenreaderto_holdr   r   r   get_bufreaderM   s   
r_   c                 C   s    t jdd}t|dt|  |S )NrD   )version
WriteBlock)rW   FPDF_FILEWRITEr   rO   )r[   writerr   r   r   get_bufwriter\   s   rd   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   rW   	FPDF_PAGE)pagescountc_arrayr   r   r   pages_c_arrayb   s
   rk   )r   )rU   r4   pypdfium2.rawre   rW   r   r   r"   r1   r9   r;   rO   r_   rd   rk   sizeof
FPDF_WCHARFPDF_WCHAR_sizer   r   r   r   <module>   s   

