U
    <ßôg^  ã                   @   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eeeeedf e	e df edœdd„Z
eeed	œd
d„Zed  dœdd„Zedœdd„Zdeedeef ddœdd„ZdS )ÚPdfObjectProtocolÚindirect_referenceF© .N)Úpdf_destÚforce_duplicateÚignore_fieldsÚreturnc                 C   s   d S ©Nr   )Úselfr   r   r   r   r   ú4/tmp/pip-unpacked-wheel-wu2fni14/pypdf/_protocols.pyÚclone   s    zPdfObjectProtocol.clone)r   r   r   c                 C   s   d S r   r   )r   r   r   r   r   r   Ú_reference_clone   s    z"PdfObjectProtocol._reference_clone©r   c                 C   s   d S r   r   ©r   r   r   r   Ú
get_object   s    zPdfObjectProtocol.get_objectc                 C   s   d S r   r   r   r   r   r   Ú
hash_value   s    zPdfObjectProtocol.hash_value)ÚstreamÚencryption_keyr   c                 C   s   d S r   r   )r   r   r    r   r   r   Úwrite_to_stream   s    z!PdfObjectProtocol.write_to_stream)Fr   )N)Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__Úboolr   r
   Ústrr   r   r   r   r   Úbytesr   r   r!   r   r   r   r   r   
   s$   
  üû ÿ þr   c                   @   s   e Zd ZdS )ÚXmpInformationProtocolN)r"   r#   r$   r   r   r   r   r)   $   s   r)   c                   @   sl   e Zd Zeedœdd„ƒZeee dœdd„ƒZee	dœdd„ƒZ
eee	 dœd	d
„Zeedœdd„ƒZdS )ÚPdfCommonDocProtocolr   c                 C   s   d S r   r   r   r   r   r   Ú
pdf_header)   s    zPdfCommonDocProtocol.pdf_headerc                 C   s   d S r   r   r   r   r   r   Úpages-   s    zPdfCommonDocProtocol.pagesc                 C   s   d S r   r   r   r   r   r   Úroot_object1   s    z PdfCommonDocProtocol.root_object)r   r   c                 C   s   d S r   r   )r   r   r   r   r   r   5   s    zPdfCommonDocProtocol.get_objectc                 C   s   d S r   r   r   r   r   r   Ústrict8   s    zPdfCommonDocProtocol.strictN)r"   r#   r$   Úpropertyr'   r+   r   r   r,   r   r-   r   r   r&   r.   r   r   r   r   r*   (   s   r*   c                   @   sP   e Zd Zeeeeeeef f dœdd„ƒƒZeeee	ef dœdd„ƒƒZ
dS )ÚPdfReaderProtocolr   c                 C   s   d S r   r   r   r   r   r   Úxref>   s    zPdfReaderProtocol.xrefc                 C   s   d S r   r   r   r   r   r   ÚtrailerC   s    zPdfReaderProtocol.trailerN)r"   r#   r$   r/   r   r   Úintr   r1   r'   r2   r   r   r   r   r0   =   s   "r0   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	e
eef eeee f dœdd„ƒZe	eedœd	d
„ƒZdS )ÚPdfWriterProtocolÚ_objectsZ_id_translatedÚincrementalZ_reader)r   r   c                 C   s   d S r   r   )r   r   r   r   r   ÚwriteP   s    zPdfWriterProtocol.write)Úobjr   c                 C   s   d S r   r   )r   r8   r   r   r   Ú_add_objectT   s    zPdfWriterProtocol._add_objectN)r"   r#   r$   r   r   r%   r   r3   r&   r   r   r   r   r
   r   r7   r9   r   r   r   r   r4   I   s   
&r4   N)Ú__doc__Úabcr   Úpathlibr   Útypingr   r   r   r   r   r	   r
   r   Ú_utilsr   r   r   r)   r*   r0   r4   r   r   r   r   Ú<module>   s   (