o
    Ïó·i  ã                   @  sÜ   d dl mZ d dlZd dlZd dlZejdk r(d dlZejdk r$ejZnejZnejZd dlm	Z	 ej
ddd�Ze 
d	¡Ze	jZd dd„Zd!dd„Zd"dd„Zejdk raejdd�d#dd„ƒZdS ejdd�d#dd„ƒZdS )$é    )ÚannotationsN)é   é   )r   é	   )Údeclarative_asn1ÚTT)Ú	covariantÚUÚ
field_typeú
typing.AnyÚ
field_nameÚstrÚreturnúdeclarative_asn1.AnnotatedTypec                 C  sL   t  ¡ }t| dƒr| j}t|t jƒstd|› �ƒ‚|S t  | ¡}t  ||¡S )NÚ__asn1_root__zunsupported root type: )r   Ú
AnnotationÚhasattrr   Ú
isinstanceÚAnnotatedTypeÚ	TypeErrorZnon_root_python_to_rust)r
   r   Ú
annotationZannotated_rootZrust_field_type© r   úcC:\Users\psant\Downloads\PAF backend\school\venv\Lib\site-packages\cryptography/hazmat/asn1/asn1.pyÚ_normalize_field_type!   s   

r   Ú
raw_fieldsúdict[str, type]ú)dict[str, declarative_asn1.AnnotatedType]c                 C  s,   i }|   ¡ D ]\}}t||ƒ}|||< q|S )N)Úitemsr   )r   Úfieldsr   r
   Zannotated_field_typer   r   r   Ú_annotate_fields1   s
   

r   Úclsútype[U]ÚNonec                 C  s:   t | dd�}t tj | t|ƒ¡t ¡ ¡}t| d|ƒ d S )NT)Úinclude_extrasr   )Úget_type_hintsr   r   ÚTypeÚSequencer   r   Úsetattr)r    r   Úrootr   r   r   Ú_register_asn1_sequence>   s   þr)   )Zkw_only_defaultc                 C  s@   t jdkrtjddddd�| ƒ}n	tjddd�| ƒ}t|ƒ |S )N)r   é
   FT©ÚreprÚeqÚ
match_argsÚkw_only)r,   r-   )ÚsysÚversion_infoÚdataclassesÚ	dataclassr)   ©r    Zdataclass_clsr   r   r   ÚsequenceP   s"   
ø	÷þýr5   c                 C  s"   t jddddd�| ƒ}t|ƒ |S )NFTr+   )r2   r3   r)   r4   r   r   r   r5   i   s   üû)r
   r   r   r   r   r   )r   r   r   r   )r    r!   r   r"   )r    r!   r   r!   )Ú
__future__r   r2   r0   Útypingr1   Ztyping_extensionsr$   Z"cryptography.hazmat.bindings._rustr   ÚTypeVarr   r	   Z
encode_derr   r   r)   Zdataclass_transformr5   r   r   r   r   Ú<module>   s,   








