o
    îRµi`  ã                   @   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G dd„ deƒZeZeZ	eZ
dedefdd„Zdedefdd	„Zdefd
d„Zdd„ Z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ƒ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   ú4/usr/lib/python3/dist-packages/cryptography/utils.pyr      ó    r   ÚnameÚvaluec                 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   c                    s   ddœ‡ fdd„
}|S )NF©Úcheck_annotationsc                   s   t ˆ | |d� ˆ  | ¡ | S ©Nr   ©Úverify_interfaceÚregister©Úklassr   ©Úifacer   r	   Úregister_decorator-   s   
z.register_interface.<locals>.register_decoratorr   )r'   r(   r   r&   r	   Úregister_interface,   s   r)   c                    s   ddœ‡ ‡fdd„
}|S )NFr   c                   s    ˆrt ˆ | |d� ˆ  | ¡ | S r    r!   r$   ©r'   Ú	predicater   r	   r(   6   s   
z1register_interface_if.<locals>.register_decoratorr   )r+   r'   r(   r   r*   r	   Úregister_interface_if5   s   r,   ÚintegerÚlengthÚreturnc                 C   s    |   |p|  ¡ d d pdd¡S )Né   é   é   Úbig)Úto_bytesÚ
bit_length)r-   r.   r   r   r	   Úint_to_bytes?   s   ÿr6   c                   @   r   )ÚInterfaceNotImplementedNr   r   r   r   r	   r7   E   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>K   s    ÿÿz$strip_annotation.<locals>.<listcomp>)r:   Ú	SignatureÚ
parametersÚvalues)Ú	signaturer   r   r	   Ústrip_annotationI   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"   R   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__i   s   
z_DeprecatedValue.__init__N)r   r   r   rP   r   r   r   r	   rM   h   s    rM   c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )Ú_ModuleWithDeprecationsc                 C   s   || j d< d S ©NÚ_module)Ú__dict__)r   Úmoduler   r   r	   rP   p   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__s   s
   
z#_ModuleWithDeprecations.__getattr__c                 C   s   t | j||ƒ d S r   )ÚsetattrrS   )r   r\   r   r   r   r	   Ú__setattr__z   s   z#_ModuleWithDeprecations.__setattr__c                 C   s:   t | j|ƒ}t|tƒrtj|j|jdd� t| j|ƒ d S rV   )	r   rS   r   rM   rY   rZ   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__N)r   r   r   rP   r^   r`   rb   rd   r   r   r   r	   rQ   o   s    rQ   c                 C   s.   t j| }t|tƒst|ƒt j|< t| ||ƒS r   )ÚsysÚmodulesr   rQ   rM   )r   Úmodule_namerN   rO   rU   r   r   r	   Ú
deprecatedˆ   s   


ÿrh   c                    s(   d  ˆ¡‰ tƒ ‰‡ ‡‡fdd„}t|ƒS )Nz
_cached_{}c                    s0   t | ˆ ˆƒ}|ˆur|S ˆ| ƒ}t| ˆ |ƒ |S r   )r   r_   )ÚinstanceÚcacheÚresult©Úcached_nameÚfuncÚsentinelr   r	   Úinner•   s   zcached_property.<locals>.inner)r   Úobjectr   )rn   rp   r   rl   r	   Úcached_property‘   s   
rr   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: ú>)Ú	__class__r   Ú_name_Ú_value_r   r   r   r	   Ú__repr__«   s    zEnum.__repr__c                 C   s   | j j› d| j› �S )Nru   )rw   r   rx   r   r   r   r	   Ú__str__®   s   zEnum.__str__N)r   r   r   rz   r{   r   r   r   r	   rs   ª   s    rs   r   )"rG   Úenumr:   re   ÚtypingrY   ÚUserWarningr   ÚPersistentlyDeprecated2017ÚPersistentlyDeprecated2019ÚDeprecatedIn34Ústrr   r   r   r   r)   r,   ÚintÚOptionalr6   Ú	Exceptionr7   rD   r"   rq   rM   rQ   rh   rr   Ú
from_bytesr   Úint_from_bytesrs   r   r   r   r	   Ú<module>   s<   	
		ü
