o
    >ei                     @   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   Q/var/www/html/humari/django-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    $