o
    li^                     @   s   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 deZG d	d
 d
eZG dd deZG dd deeZG dd deeZdS )z#Helpers for working with PDF types.    )abstractmethod)Path)IOAnyDictListOptionalProtocolTupleUnion   )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   O/var/www/html/pca-backend/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      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dS )XmpInformationProtocolN)r$   r%   r&   r   r   r   r   r+   $   s    r+   c                   @   sn   e Zd ZedefddZedee fddZede	fddZ
dedee	 fd	d
ZedefddZdS )PdfCommonDocProtocolr   c                 C   r   r   r   r   r   r   r   
pdf_header)      zPdfCommonDocProtocol.pdf_headerc                 C   r   r   r   r   r   r   r   pages-   r.   zPdfCommonDocProtocol.pagesc                 C   r   r   r   r   r   r   r   root_object1   r.   z PdfCommonDocProtocol.root_objectr   c                 C   r   r   r   )r   r   r   r   r   r   5   r   zPdfCommonDocProtocol.get_objectc                 C   r   r   r   r   r   r   r   strict8   r.   zPdfCommonDocProtocol.strictN)r$   r%   r&   propertyr)   r-   r   r   r/   r   r0   r   r   r(   r1   r   r   r   r   r,   (   s    r,   c                   @   sP   e Zd Zeedeeeeef f fddZeedee	ef fddZ
dS )PdfReaderProtocolr   c                 C   r   r   r   r   r   r   r   xref>   r#   zPdfReaderProtocol.xrefc                 C   r   r   r   r   r   r   r   trailerC   r#   zPdfReaderProtocol.trailerN)r$   r%   r&   r2   r   r   intr   r4   r)   r5   r   r   r   r   r3   =   s    "r3   c                   @   s   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dZe	d	edefd
dZdS )PdfWriterProtocol_objects_id_translatedincremental_readerr    r   c                 C   r   r   r   )r   r    r   r   r   writeP   r.   zPdfWriterProtocol.writeobjc                 C   r   r   r   )r   r=   r   r   r   _add_objectT   r.   zPdfWriterProtocol._add_objectN)r$   r%   r&   r   r   r'   r   r6   r(   r   r   r   r   r
   r   r<   r>   r   r   r   r   r7   I   s   
 (r7   N)__doc__abcr   pathlibr   typingr   r   r   r   r   r	   r
   r   _utilsr   r   r   r+   r,   r3   r7   r   r   r   r   <module>   s    (