
    @wg^                         d Z ddlmZ ddlmZ ddlmZmZmZm	Z	m
Z
mZmZmZ ddlmZmZ  G d de      Z G d	 d
e      Z G d de      Z G d dee      Z G d dee      Zy)z#Helpers for working with PDF types.    )abstractmethod)Path)IOAnyDictListOptionalProtocolTupleUnion   )StrByteType
StreamTypec            
           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Z
d	ededefd
Zded    fdZdefdZ	 ddededeef   ddfdZy)PdfObjectProtocolindirect_referencepdf_destforce_duplicateignore_fields.Nreturnc                      y N )selfr   r   r   s       G/var/www/horilla/myenv/lib/python3.12/site-packages/pypdf/_protocols.pyclonezPdfObjectProtocol.clone   s     	    r   c                      y r   r   )r   r   r   s      r   _reference_clonez"PdfObjectProtocol._reference_clone       r   c                      y r   r   r   s    r   
get_objectzPdfObjectProtocol.get_object   r    r   c                      y r   r   r"   s    r   
hash_valuezPdfObjectProtocol.hash_value   r    r   streamencryption_keyc                      y r   r   )r   r&   r'   s      r   write_to_streamz!PdfObjectProtocol.write_to_stream        	r   )Fr   r   )__name__
__module____qualname__r   __annotations__boolr   r   strr   r   r   r	   r#   bytesr%   r   r)   r   r   r   r   r   
   s    
 !&AC	  U38_d3i=>	
 
c S S H%89 E  MQ 27c58H2I	r   r   c                       e Zd Zy)XmpInformationProtocolN)r+   r,   r-   r   r   r   r3   r3   $   s    r   r3   c                       e Zd Zedefd       Zedee   fd       Zede	fd       Z
dedee	   fdZedefd       Zy)	PdfCommonDocProtocolr   c                      y r   r   r"   s    r   
pdf_headerzPdfCommonDocProtocol.pdf_header)       r   c                      y r   r   r"   s    r   pageszPdfCommonDocProtocol.pages-   r8   r   c                      y r   r   r"   s    r   root_objectz PdfCommonDocProtocol.root_object1   r8   r   r   c                      y r   r   )r   r   s     r   r#   zPdfCommonDocProtocol.get_object5   r    r   c                      y r   r   r"   s    r   strictzPdfCommonDocProtocol.strict8   r8   r   N)r+   r,   r-   propertyr0   r7   r   r   r:   r   r<   r	   r#   r/   r?   r   r   r   r5   r5   (   s    C   tCy   .  S X>O5P    r   r5   c                   j    e Zd Zeedeeeeef   f   fd              Zeedee	ef   fd              Z
y)PdfReaderProtocolr   c                      y r   r   r"   s    r   xrefzPdfReaderProtocol.xref>   r*   r   c                      y r   r   r"   s    r   trailerzPdfReaderProtocol.trailerC   r*   r   N)r+   r,   r-   r@   r   r   intr   rD   r0   rF   r   r   r   rB   rB   =   s`    d3S#X./    c3h   r   rB   c                       e Zd ZU ee   ed<   eeeeef   f   ed<   eed<   eed<   e	de
eef   deeee   f   fd       Ze	dedefd	       Zy
)PdfWriterProtocol_objects_id_translatedincremental_readerr&   r   c                      y r   r   )r   r&   s     r   writezPdfWriterProtocol.writeP   r8   r   objc                      y r   r   )r   rP   s     r   _add_objectzPdfWriterProtocol._add_objectT   r8   r   N)r+   r,   r-   r   r   r.   r   rG   r/   r   r   r   r   r   r   rO   rR   r   r   r   rI   rI   I   s    3id38n,--LE$"34 tRW}9M   s s  r   rI   N)__doc__abcr   pathlibr   typingr   r   r   r   r	   r
   r   r   _utilsr   r   r   r3   r5   rB   rI   r   r   r   <module>rX      s]    )   H H H + 4	. 	8 *	,h 	,h r   