o
    c                     @   sf  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eZdededdfddZdede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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	d)d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 )*    Nc                   @      e Zd ZdS )CryptographyDeprecationWarningN__name__
__module____qualname__ r   r   6usr/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   integerlengthc                 C   s    |  |p|  d d pddS )N         big)to_bytes
bit_length)r   r   r   r   r	   int_to_bytes+   s   r   c                   @   r   )InterfaceNotImplementedNr   r   r   r   r	   r   1   r
   r   	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>7   s    z$strip_annotation.<locals>.<listcomp>)r#   	Signature
parametersvalues)r    r   r   r	   strip_annotation5   s
   r,   F)check_annotationsifaceklassr-   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__hasattrr   r   r   getattrabcabstractpropertyr#   r    r,   )r.   r/   r-   methodsigactualokr   r   r	   verify_interface>   s&   



r9   c                   @   s   e Zd ZdedefddZdS )_DeprecatedValuer   messagec                 C   s   || _ || _|| _d S N)r   r;   warning_class)selfr   r;   r=   r   r   r	   __init__W   s   
z_DeprecatedValue.__init__N)r   r   r   objectstrr?   r   r   r   r	   r:   V   s    r:   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)superr?   r   __dict__)r>   rC   	__class__r   r	   r?   ^   s   z _ModuleWithDeprecations.__init__attrr   c                 C   s4   t | j|}t|trtj|j|jdd |j}|S N   )
stacklevel)	r2   rE   r   r:   warningswarnr;   r=   r   r>   rJ   objr   r   r	   __getattr__b   s
   
z#_ModuleWithDeprecations.__getattr__r   Nc                 C   s   t | j|| d S r<   )setattrrE   )r>   rJ   r   r   r   r	   __setattr__i   s   z#_ModuleWithDeprecations.__setattr__c                 C   s:   t | j|}t|trtj|j|jdd t| j| d S rK   )	r2   rE   r   r:   rN   rO   r;   r=   delattrrP   r   r   r	   __delattr__l   s   
z#_ModuleWithDeprecations.__delattr__c                 C   s   dgt | j S rD   )dirrE   r>   r   r   r	   __dir__s   s   z_ModuleWithDeprecations.__dir__)r   r   r   types
ModuleTyper?   rA   r@   rR   rT   rV   typingSequencerY   __classcell__r   r   rH   r	   rB   ]   s    rB   module_namer;   r=   c                 C   sJ   t j| }t|tst| t j|< }t| ||}|d ur#t||| |S r<   )sysmodulesr   rB   r:   rS   )r   r_   r;   r=   r   rC   dvr   r   r	   
deprecatedw   s   

rc   funcc                    s.   d  t dtf fdd}t|S )Nz
_cached_{}instancec                    s0   t |  }|ur|S | }t|  | |S r<   )r2   rS   )re   cacheresultcached_namerd   sentinelr   r	   inner   s   zcached_property.<locals>.inner)r   r@   property)rd   rk   r   rh   r	   cached_property   s   
rm   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: >)rI   r   _name__value_rX   r   r   r	   __repr__   s    zEnum.__repr__c                 C   s   | j j d| j S )Nrp   )rI   r   rr   rX   r   r   r	   __str__   s   zEnum.__str__N)r   r   r   rA   rt   ru   r   r   r   r	   rn      s    rn   r<   )'r3   enumr#   r`   rZ   r\   rN   UserWarningr   PersistentlyDeprecated2019DeprecatedIn35DeprecatedIn36DeprecatedIn37DeprecatedIn38rA   r   r   r   intOptionalr   	Exceptionr   r)   r,   ABCMetar@   boolr9   r:   r[   rB   TypeWarningrc   Callablerl   rm   rn   r   r   r   r	   <module>   sX   


