o
    uÃhK  ã                   @   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
 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ÚOptionalÚProtocolÚ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   úF/var/www/html/bot/env/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   ÚtupleÚstrÚlistr   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   r/   r   r   r%   r0   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#   r1   r   ÚdictÚintr   r3   r'   r4   r   r   r   r   r2   =   s    "r2   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$   r5   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   Ú_utilsr
   r   r   r*   r+   r2   r7   r   r   r   r   Ú<module>   s    