o
    `^hÎ  ã                   @   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 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é   )ÚStrByteTypec                
   @   st   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S )ÚPdfObjectProtocolÚindirect_referenceF© Úpdf_destÚforce_duplicateÚignore_fields.NÚreturnc                 C   ó   d S ©Nr   )Úselfr   r   r   r   r   úO/home/air/shanriGPT/back/venv/lib/python3.10/site-packages/PyPDF2/_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_object)Fr   )Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__Úboolr	   r   Ústrr   r   r   r   r   r   r   r   r   r      s   
 üþýü
û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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   Úxref*   r%   zPdfReaderProtocol.xrefc                 C   r   r   r   r   r   r   r   Úpages.   r%   zPdfReaderProtocol.pagesr   c                 C   r   r   r   ©r   r   r   r   r   r   2   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#   !   s     r#   c                   @   sj   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f fdd	„Zd
S )ÚPdfWriterProtocolÚ_objectsÚ_id_translatedr   r   c                 C   r   r   r   r)   r   r   r   r   :   r   zPdfWriterProtocol.get_objectÚstreamc                 C   r   r   r   )r   r/   r   r   r   Úwrite=   r   zPdfWriterProtocol.writeN)r   r   r   r   r   r    r   r+   r   r   r   r	   r   r   r   r!   r   r0   r   r   r   r   r,   6   s
   
 &r,   N)Ú__doc__Úpathlibr   Útypingr   r   r   r   r   r   r	   r
   ÚImportErrorÚtyping_extensionsÚ_utilsr   r   r#   r,   r   r   r   r   Ú<module>   s    $ÿ