o
    UTiS
                     @   sv   d dl Z d dlZd dlm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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   S/var/www/html/RAG/RAG_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   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__2      
z_buffer_reader.__init__c                 C   s&   t ||}| j| | j| dS N   )r6   r;   r!   r$   )r=   _positionp_buf_firstr4   c_bufferr   r   r   __call__5   s   
z_buffer_reader.__call__N__name__
__module____qualname__r>   rF   r   r   r   r   r8   0       r8   c                   @   r7   )_buffer_writerc                 C   r9   r   r:   r<   r   r   r   r>   >   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   p_data_firstr4   rE   r   r   r   rF   A   s   
z_buffer_writer.__call__NrG   r   r   r   r   rL   <   rK   rL   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   r8   m_ParamrQ   )bufferfile_lenreaderto_holdr   r   r   get_bufreaderI   s   
r\   c                 C   s    t jdd}t|dt|  |S )NrA   )version
WriteBlock)rT   FPDF_FILEWRITEr   rL   )rX   writerr   r   r   get_bufwriterX   s   ra   c                 C   s0   | sdS t | }tj| dd | D  }||fS )N)Nr   c                 S   s   g | ]}|j qS r   )raw)r   pr   r   r   
<listcomp>b   s    z!pages_c_array.<locals>.<listcomp>)r   rT   	FPDF_PAGE)pagescountc_arrayr   r   r   pages_c_array^   s
   ri   )r   )rR   r1   pypdfium2.rawrb   rT   r   r   r.   r6   r8   rL   r\   ra   ri   r   r   r   r   <module>   s   

