o
    b=                     @   sr  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defddZejrad 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d,dedeje defddZG dd deZdd Z dddd Z!G d!d" d"e"Z#G d#d$ d$ej$Z%d%d& Z&d'd( Z'e&ej(e)d)eZ*G d*d+ d+ej+Z+dS )-    Nc                   @      e Zd ZdS )CryptographyDeprecationWarningN__name__
__module____qualname__ r   r   Q/var/www/secure340b-portal/env/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   c                    s   t  fddS )Nc                    s
   t |  S N)getattrselfr   r   r	   <lambda>+   s   
 z$read_only_property.<locals>.<lambda>)propertyr   r   r   r	   read_only_property*      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 r   r   )r   r%   r$   r   r   r	   __call__4   s   z_RegisterDecoratorType.__call__N)r   r   r   r    boolr&   r   r   r   r	   r"   3   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_decorator;   s   
z.register_interface.<locals>.register_decorator)r'   )r(   r,   r   r+   r	   register_interface:   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_bytesE   s   r6   c                   @   r   )InterfaceNotImplementedNr   r   r   r   r	   r7   K   r
   r7   c                 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>Q   s    z$strip_annotation.<locals>.<listcomp>)r:   	Signature
parametersvalues)	signaturer   r   r	   strip_annotationO   s
   rD   Fr#   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__hasattrr7   r   r   r   abcabstractpropertyr:   rC   rD   )r(   r%   r$   methodsigactualokr   r   r	   r)   X   s&   



r)   c                   @   s   e Zd Zdd ZdS )_DeprecatedValuec                 C   s   || _ || _|| _d S r   )r   messagewarning_class)r   r   rN   rO   r   r   r	   __init__o   s   
z_DeprecatedValue.__init__N)r   r   r   rP   r   r   r   r	   rM   n   s    rM   c                       s<   e Zd Z fddZdd Zdd Zdd Zd	d
 Z  ZS )_ModuleWithDeprecationsc                    s   t  |j || jd< d S N_module)superrP   r   __dict__)r   module	__class__r   r	   rP   v   s   z _ModuleWithDeprecations.__init__c                 C   s4   t | j|}t|trtj|j|jdd |j}|S N   )
stacklevel)	r   rS   r   rM   warningswarnrN   rO   r   r   attrobjr   r   r	   __getattr__z   s
   
z#_ModuleWithDeprecations.__getattr__c                 C   s   t | j|| d S r   )setattrrS   )r   r_   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 rY   )	r   rS   r   rM   r\   r]   rN   rO   delattrr^   r   r   r	   __delattr__   s   
z#_ModuleWithDeprecations.__delattr__c                 C   s   dgt | j S rR   )dirrS   r   r   r   r	   __dir__   r   z_ModuleWithDeprecations.__dir__)	r   r   r   rP   ra   rc   re   rg   __classcell__r   r   rW   r	   rQ   u   s    rQ   c                 C   s.   t j| }t|tst|t j|< t| ||S r   )sysmodulesr   rQ   rM   )r   module_namerN   rO   rV   r   r   r	   
deprecated   s   


rl   c                    s(   d  t  fdd}t|S )Nz
_cached_{}c                    s0   t |  }|ur|S | }t|  | |S r   )r   rb   )instancecacheresultZcached_namefuncsentinelr   r	   inner   s   zcached_property.<locals>.inner)r   objectr   )rq   rs   r   rp   r	   cached_property   s   
ru   z8int_from_bytes is deprecated, use int.from_bytes insteadc                   @   s   e Zd Zdd Zdd ZdS )Enumc                 C   s    d| j j d| j d| jdS )N<.z: >)rX   r   _name__value_r   r   r   r	   __repr__   s    zEnum.__repr__c                 C   s   | j j d| j S )Nrx   )rX   r   rz   r   r   r   r	   __str__   s   zEnum.__str__N)r   r   r   r|   r}   r   r   r   r	   rv      s    rv   r   ),rG   enumr:   ri   typestypingr\   UserWarningr   ZPersistentlyDeprecated2017ZPersistentlyDeprecated2019ZDeprecatedIn34ZDeprecatedIn35strr   r   r   r   TYPE_CHECKINGZtyping_extensionsr   TypeVartyper    r"   ABCMetar-   intOptionalr6   	Exceptionr7   rD   r)   rt   rM   
ModuleTyperQ   rl   ru   
from_bytesr   Zint_from_bytesrv   r   r   r   r	   <module>   sF   		
