o
    ˷e                     @   s  d dl Z d dlZd dlZd dlZd dlZd dlZd dlZG dd deZeZ	eZ
eZeZdededdfddZdededdfd	d
ZejrZd dlmZ ejdedZG dd deZde jddfddZd0dedeje defddZG dd deZdejdejfddZ ddde jde!de"fd d!Z#G d"d# d#Z$G d$d% d%ej%Z&	d0de!d&ed'ed(ej'e( deje de$fd)d*Z)d+ej*de+fd,d-Z,G d.d/ d/ej-Z-dS )1    Nc                   @      e Zd ZdS )CryptographyDeprecationWarningN__name__
__module____qualname__ r   r   I/var/www/ideatree/venv/lib/python3.10/site-packages/cryptography/utils.pyr          r   namevaluereturnc                 C   s   t |tstd| d S )Nz{} must be bytes)
isinstancebytes	TypeErrorformatr   r   r   r   r	   _check_bytes   s   
r   c                 C   s,   zt | W d S  ty   td| w )Nz{} must be bytes-like)
memoryviewr   r   r   r   r   r	   _check_byteslike#   s
   r   )Protocol_T_class)boundc                   @   s(   e Zd ZdddededefddZdS )	_RegisterDecoratorTypeFcheck_annotationsklassr   r   c                C   s   d S Nr   )selfr   r   r   r   r	   __call__0   s   z_RegisterDecoratorType.__call__N)r   r   r   r   boolr   r   r   r   r	   r   /   s    r   ifacec                    s$   dddddt ddf fdd}|S )	NFr   r   r   r   r   c                   s   t  | |d  |  | S )Nr   )verify_interfaceregister)r   r   r!   r   r	   register_decorator7   s   
z.register_interface.<locals>.register_decorator)r    )r!   r%   r   r$   r	   register_interface6   s   r&   integerlengthc                 C   s    |  |p|  d d pddS )N         big)to_bytes
bit_length)r'   r(   r   r   r	   int_to_bytesA   s   r/   c                   @   r   )InterfaceNotImplementedNr   r   r   r   r	   r0   G   r
   r0   	signaturec                 C   s   t dd | j D S )Nc                 S   s   g | ]
}|j tjjd qS ))
annotation)replaceinspect	Parameterempty).0paramr   r   r	   
<listcomp>M   s    z$strip_annotation.<locals>.<listcomp>)r4   	Signature
parametersvalues)r1   r   r   r	   strip_annotationK   s
   r=   Fr   r   r   c                C   s   | j D ]D}t||std||tt| |tjrqt	t| |}t	t||}|r3||k}nt
|t
|k}|sGtd||||qd S )Nz{} is missing a {!r} methodzK{}.{}'s signature differs from the expected. Expected: {!r}. Received: {!r})__abstractmethods__hasattrr0   r   r   getattrabcabstractpropertyr4   r1   r=   )r!   r   r   methodsigactualokr   r   r	   r"   T   s&   



r"   c                   @   s   e Zd ZdedefddZdS )_DeprecatedValuer   messagec                 C   s   || _ || _|| _d S r   )r   rH   warning_class)r   r   rH   rI   r   r   r	   __init__m   s   
z_DeprecatedValue.__init__N)r   r   r   objectstrrJ   r   r   r   r	   rG   l   s    rG   c                       sr   e Zd Zdejf fddZdedefddZdededd	fd
dZ	dedd	fddZ
deje fddZ  ZS )_ModuleWithDeprecationsmodulec                    s   t  |j || jd< d S N_module)superrJ   r   __dict__)r   rN   	__class__r   r	   rJ   t   s   z _ModuleWithDeprecations.__init__attrr   c                 C   s4   t | j|}t|trtj|j|jdd |j}|S N   )
stacklevel)	r@   rP   r   rG   warningswarnrH   rI   r   r   rU   objr   r   r	   __getattr__x   s
   
z#_ModuleWithDeprecations.__getattr__r   Nc                 C   s   t | j|| d S r   )setattrrP   )r   rU   r   r   r   r	   __setattr__   s   z#_ModuleWithDeprecations.__setattr__c                 C   s:   t | j|}t|trtj|j|jdd t| j| d S rV   )	r@   rP   r   rG   rY   rZ   rH   rI   delattrr[   r   r   r	   __delattr__   s   
z#_ModuleWithDeprecations.__delattr__c                 C   s   dgt | j S rO   )dirrP   r   r   r   r	   __dir__   s   z_ModuleWithDeprecations.__dir__)r   r   r   types
ModuleTyperJ   rL   rK   r]   r_   ra   typingSequencerd   __classcell__r   r   rS   r	   rM   s   s    rM   module_namerH   rI   c                 C   sJ   t j| }t|tst| t j|< }t| ||}|d ur#t||| |S r   )sysmodulesr   rM   rG   r^   )r   rj   rH   rI   r   rN   dvr   r   r	   
deprecated   s   

rn   funcc                    s.   d  t dtf fdd}t|S )Nz
_cached_{}instancec                    s0   t |  }|ur|S | }t|  | |S r   )r@   r^   )rp   cacheresultcached_namero   sentinelr   r	   inner   s   zcached_property.<locals>.inner)r   rK   property)ro   rv   r   rs   r	   cached_property   s   
rx   c                   @   s(   e Zd ZdefddZdefddZdS )Enumr   c                 C   s    d| j j d| j d| jdS )N<.z: >)rT   r   _name__value_rc   r   r   r	   __repr__   s    zEnum.__repr__c                 C   s   | j j d| j S )Nr{   )rT   r   r}   rc   r   r   r	   __str__   s   zEnum.__str__N)r   r   r   rL   r   r   r   r   r   r	   ry      s    ry   r   ).rA   enumr4   rk   re   rg   rY   UserWarningr   PersistentlyDeprecated2019DeprecatedIn35DeprecatedIn36DeprecatedIn37rL   r   r   r   TYPE_CHECKINGtyping_extensionsr   TypeVartyper   r   ABCMetar&   intOptionalr/   	Exceptionr0   r:   r=   rK   r    r"   rG   rf   rM   TypeWarningrn   Callablerw   rx   ry   r   r   r   r	   <module>   s`   


