o
    ZhV	                     @   sf   d dl Z d dlmZ dd Zdd Zd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   O/var/www/html/lang_env/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   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_buffer.<locals>.<genexpr>)setissubsetr   )r&   specmethodsr   r%   r   	is_buffer    s   
r+   c                   @      e Zd Zdd Zdd ZdS )_buffer_readerc                 C   
   || _ d S r   bufferselfr0   r   r   r   __init__,      
z_buffer_reader.__init__c                 C   s6   t |t t j| }| j| | j|j dS N   )ctypescastPOINTERZc_charr0   r   r!   contents)r2   _positionZp_bufsizeZc_bufr   r   r   __call__/   s   z_buffer_reader.__call__N__name__
__module____qualname__r3   r>   r   r   r   r   r-   *       r-   c                   @   r,   )_buffer_writerc                 C   r.   r   r/   r1   r   r   r   r3   8   r4   z_buffer_writer.__init__c                 C   s*   t |t t j| }| j|j dS r5   )r7   r8   r9   Zc_ubyter0   r#   r:   )r2   r;   datar=   blockr   r   r   r>   ;   s   z_buffer_writer.__call__Nr?   r   r   r   r   rD   6   rC   rD   c                 C   sJ   |  dd}|  d t }||_t|dt|  d |_|jf}||fS )Nr      
m_GetBlock)r   pdfium_cZFPDF_FILEACCESSZ	m_FileLenr   r-   Zm_ParamrH   )r0   Zfile_lenreaderZto_holdr   r   r   get_bufreaderA   s   
rK   c                 C   s    t jdd}t|dt|  |S )Nr6   )versionZ
WriteBlock)rI   ZFPDF_FILEWRITEr   rD   )r0   writerr   r   r   get_bufwriterP   s   rN   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>Z   s    z!pages_c_array.<locals>.<listcomp>)r   rI   Z	FPDF_PAGE)ZpagescountZc_arrayr   r   r   pages_c_arrayV   s
   rS   )r   )r7   Zpypdfium2.rawrO   rI   r   r   r+   r-   rD   rK   rN   rS   r   r   r   r   <module>   s   

