U
    #i                     @  s   d dl mZ d dlZd dlZd dlZejdk rPd dlZejdk rHejZqVe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dddZdddddZdddddZejdk rejdddddddZnejdddddddZdS )    )annotationsN)      )r   	   )declarative_asn1TT)	covariantUz
typing.Anystrzdeclarative_asn1.AnnotatedType)
field_type
field_namereturnc                 C  sL   t  }t| dr6| j}t|t js2t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   e/var/www/html/me.goteku.com/backend/venv/lib/python3.8/site-packages/cryptography/hazmat/asn1/asn1.py_normalize_field_type!   s    

r   zdict[str, type]z)dict[str, declarative_asn1.AnnotatedType])
raw_fieldsr   c                 C  s,   i }|   D ]\}}t||}|||< q|S )N)itemsr   )r   fieldsr   r   Zannotated_field_typer   r   r   _annotate_fields1   s
    

r   ztype[U]None)clsr   c                 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$   )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eqZ
match_argsZkw_only)r(   r)   )sysversion_infodataclasses	dataclassr$   r   Zdataclass_clsr   r   r   sequenceP   s"    
	r/   c                 C  s"   t jddddd| }t| |S )NFTr'   )r,   r-   r$   r.   r   r   r   r/   i   s    )
__future__r   r,   r*   typingr+   typing_extensionsr   Z"cryptography.hazmat.bindings._rustr   TypeVarr   r	   Z
encode_derr   r   r$   dataclass_transformr/   r   r   r   r   <module>   s*   





