o
    aCcj
                     @   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   sl   t dd | D std| \}}}}|r||||fn||||f}d}d}|D ]}	||	|> O }|d8 }q'|S )Nc                 s   s(    | ]}d |  kodkn  V  qdS )r      N ).0cr   r   M/home/thesage/.local/lib/python3.10/site-packages/pypdfium2/internal/utils.py	<genexpr>   s   & zcolor_tohex.<locals>.<genexpr>zColor value exceeds boundaries.r         )all
ValueError)
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                    sR   g }t |t dsJ d|v r|d7 }d|v r|d 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issubsetappendr
   )r*   specmethodsr   r)   r   	is_stream#   s   
r0   c                 C   s   | j }t|| t|S r   )contentsr   from_addressctypes	addressof)ptrsizeobjr   r   r   
get_buffer-   s   r8   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__4      
z_buffer_reader.__init__c                 C   s&   t ||}| j| | j| dS N   )r8   r=   r"   r%   )r?   _positionp_buf_firstr6   c_bufferr   r   r   __call__7   s   
z_buffer_reader.__call__N__name__
__module____qualname__r@   rH   r   r   r   r   r:   2       r:   c                   @   r9   )_buffer_writerc                 C   r;   r   r<   r>   r   r   r   r@   @   rA   z_buffer_writer.__init__c                 C   s.   t |t t j}t||}| j| dS rB   )r3   castPOINTERc_ubyter8   r=   r'   )r?   rD   p_data_firstr6   rG   r   r   r   rH   C   s   
z_buffer_writer.__call__NrI   r   r   r   r   rN   >   rM   rN   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_ParamrS   )bufferfile_lenreaderto_holdr   r   r   get_bufreaderK   s   
r^   c                 C   s    t jdd}t|dt|  |S )NrC   )version
WriteBlock)rV   FPDF_FILEWRITEr   rN   )rZ   writerr   r   r   get_bufwriterZ   s   rc   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   d   s    z pages_c_array.<locals>.<genexpr>)lenrV   	FPDF_PAGE)pagescountc_arrayr   r   r   pages_c_array`   s
   rk   )r   )rT   r3   pypdfium2.rawrd   rV   r   r   r    r0   r8   r:   rN   r^   rc   rk   sizeof
FPDF_WCHARFPDF_WCHAR_sizer   r   r   r   <module>   s   

