U
    gt                     @   sr   d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	 ddgZ
G dd de jZed	d
G dd dZdS )    N)	dataclass)IterableOptional)generic)pdf_nameDevExtensionMultivaluedDeveloperExtensionc                   @   s(   e Zd ZdZe Ze Ze ZdS )r   z
    Setting indicating how an extension is expected to behave well w.r.t.
    the new mechanism for multivalued extensions in ISO 32000-2:2020.
    N)	__name__
__module____qualname____doc__enumautoZALWAYSZNEVERMAYBE r   r   @/tmp/pip-unpacked-wheel-owvgwkas/pyhanko/pdf_utils/extensions.pyr      s
   T)frozenc                   @   s   e Zd ZU dZejed< ejed< eed< dZe	e
 ed< dZe	e
 ed< dZeed	< d
Zee ed< d
Zee ed< ejZeed< ejdddZdS )r   z.
    PDF developer extension designation.
    Zprefix_namebase_versionextension_levelNurlextension_revisionFcompare_by_levelr   subsumed_bysubsumesmultivalued)returnc              
   C   sh   t tdtdtd| jtdt | ji}| jdk	rJt | j|d< | jdk	rdt | j|d< |S )z
        Format the data in this object into a PDF dictionary for registration
        into the `/Extensions` dictionary.

        :return:
            A :class:`.generic.DictionaryObject`.
        z/Typez/DeveloperExtensionsz/BaseVersionz/ExtensionLevelNz/URLz/ExtensionRevision)	r   DictionaryObjectr   r   ZNumberObjectr   r   ZTextStringObjectr   )selfresultr   r   r   as_pdf_objectp   s$    	   	

z DeveloperExtension.as_pdf_object)r	   r
   r   r   r   Z
NameObject__annotations__intr   r   strr   r   boolr   r   r   r   r   r   r   r   r   r   r   r   r   #   s   


)r   Zdataclassesr   typingr   r   Zpyhanko.pdf_utilsr   Zpyhanko.pdf_utils.genericr   __all__Enumr   r   r   r   r   r   <module>   s   