o
    ©Cii  ã                   @   s¨   d Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
 zddlmZ W n ey1   ddlmZ Y nw ddlmZmZ G dd„ deƒZG d	d
„ d
eƒZG dd„ deƒZdS )z#Helpers for working with PDF types.é    )ÚPath)ÚIOÚAnyÚDictÚListÚOptionalÚTupleÚUnion)ÚProtocolé   )ÚStrByteTypeÚ
StreamTypec                
   @   s¦   e Zd ZU eed< 		ddededeeedf e	e df d	efd
d„Z
deded	efdd„Zd	ed  fdd„Zd	efdd„Z	ddededeef d	dfdd„ZdS )ÚPdfObjectProtocolÚindirect_referenceF© Úpdf_destÚforce_duplicateÚignore_fields.NÚreturnc                 C   ó   d S ©Nr   )Úselfr   r   r   r   r   úh/var/www/html/fyndo/python/python_agents/rag_suite/venv/lib/python3.10/site-packages/pypdf/_protocols.pyÚclone   s   zPdfObjectProtocol.cloner   c                 C   r   r   r   )r   r   r   r   r   r   Ú_reference_clone   ó   z"PdfObjectProtocol._reference_clonec                 C   r   r   r   ©r   r   r   r   Ú
get_object   r   zPdfObjectProtocol.get_objectc                 C   r   r   r   r   r   r   r   Ú
hash_value    r   zPdfObjectProtocol.hash_valueÚstreamÚencryption_keyc                 C   r   r   r   )r   r   r    r   r   r   Úwrite_to_stream#   s   z!PdfObjectProtocol.write_to_stream)Fr   r   )Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__Úboolr	   r   Ústrr   r   r   r   r   Úbytesr   r   r!   r   r   r   r   r      s0   
 üþýü
ûÿÿÿþr   c                   @   s˜   e Zd Zedefdd„ƒZedefdd„ƒZedee	ee	e
f f fdd„ƒZedee
 fdd	„ƒZedeee
f fd
d„ƒZde
dee fdd„ZdS )ÚPdfReaderProtocolr   c                 C   r   r   r   r   r   r   r   Ú
pdf_header*   ó   zPdfReaderProtocol.pdf_headerc                 C   r   r   r   r   r   r   r   Ústrict.   r+   zPdfReaderProtocol.strictc                 C   r   r   r   r   r   r   r   Úxref2   r+   zPdfReaderProtocol.xrefc                 C   r   r   r   r   r   r   r   Úpages6   r+   zPdfReaderProtocol.pagesc                 C   r   r   r   r   r   r   r   Útrailer:   r+   zPdfReaderProtocol.trailerr   c                 C   r   r   r   ©r   r   r   r   r   r   >   r   zPdfReaderProtocol.get_objectN)r"   r#   r$   Úpropertyr'   r*   r&   r,   r   Úintr   r-   r   r.   r/   r   r   r   r   r   r   r   r)   )   s     r)   c                   @   s¨   e Zd ZU ee ed< eeeeef f ed< dedee	 fdd„Z
deeef deeee f fdd	„Zd
edefdd„Zedee fdd„ƒZedefdd„ƒZdS )ÚPdfWriterProtocolÚ_objectsÚ_id_translatedr   r   c                 C   r   r   r   r0   r   r   r   r   F   r   zPdfWriterProtocol.get_objectr   c                 C   r   r   r   )r   r   r   r   r   ÚwriteI   r   zPdfWriterProtocol.writeÚobjc                 C   r   r   r   )r   r7   r   r   r   Ú_add_objectL   r   zPdfWriterProtocol._add_objectc                 C   r   r   r   r   r   r   r   r.   O   r+   zPdfWriterProtocol.pagesc                 C   r   r   r   r   r   r   r   r*   S   r+   zPdfWriterProtocol.pdf_headerN)r"   r#   r$   r   r   r%   r   r2   r   r   r   r	   r   r   r   r&   r   r6   r8   r1   r.   r(   r*   r   r   r   r   r3   B   s   
 &r3   N)Ú__doc__Úpathlibr   Útypingr   r   r   r   r   r   r	   r
   ÚImportErrorÚtyping_extensionsÚ_utilsr   r   r   r)   r3   r   r   r   r   Ú<module>   s    $ÿ