o
     ªZh^  ã                   @   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   úG/var/www/html/lang_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   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Ú_objectsZ_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   Z_utilsr   r   r   r+   r,   r3   r7   r   r   r   r   Ú<module>   s    (