o
    ™¨Êh¾  ã                   @   s   d dl mZmZm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d„ Zdd„ Zd	d
„ Zdd„ ZeedƒrEejZnd$dd„ZeedƒrUd%dd„Znd%dd„ZG dd„ deƒZeedƒrkejZnejZdd„ Zdd„ ZG dd„ deƒZG dd„ deƒZd d!„ Z d"d#„ Z!dS )&é    )Úabsolute_importÚdivisionÚprint_functionNc                   @   ó   e Zd ZdS )ÚCryptographyDeprecationWarningN©Ú__name__Ú
__module__Ú__qualname__© r   r   úD/var/www/html/env/lib/python3.10/site-packages/cryptography/utils.pyr      ó    r   c                 C   s   t |tƒstd | ¡ƒ‚d S )Nz{0} must be bytes)Ú
isinstanceÚbytesÚ	TypeErrorÚformat)ÚnameÚvaluer   r   r   Ú_check_bytes   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   ‡ fdd„}|S )Nc                    s   t ˆ | ƒ ˆ  | ¡ | S r   ©Úverify_interfaceÚregister©Úklass©Úifacer   r   Úregister_decorator&   s   

z.register_interface.<locals>.register_decoratorr   )r$   r%   r   r#   r   Úregister_interface%   s   r&   c                    s   ‡ ‡fdd„}|S )Nc                    s   ˆrt ˆ | ƒ ˆ  | ¡ | S r   r   r!   ©r$   Ú	predicater   r   r%   .   s   

z1register_interface_if.<locals>.register_decoratorr   )r(   r$   r%   r   r'   r   Úregister_interface_if-   s   r)   Ú
from_bytesFc                 C   s$   |dksJ ‚|r
J ‚t t | ¡dƒS )NÚbigé   )ÚintÚbinasciiÚhexlify)ÚdataÚ	byteorderÚsignedr   r   r   Úint_from_bytes9   s   r3   Úto_bytesc                 C   s    |   |p|  ¡ d d pdd¡S )Né   é   é   r+   )r4   Ú
bit_length)ÚintegerÚlengthr   r   r   Úint_to_bytesA   s   ÿr;   c                 C   s:   d|  }|d u rt |ƒ}n|d }t | ||d@  ¡¡S )Nz%xé   r7   )Úlenr.   Ú	unhexlifyÚzfill)r9   r:   Ú
hex_stringÚnr   r   r   r;   F   s
   
c                   @   r   )ÚInterfaceNotImplementedNr   r   r   r   r   rB   O   r   rB   Ú	signaturec                 C   sv   | j D ]5}t||ƒstd ||¡ƒ‚tt| |ƒtjƒrqtt| |ƒƒ}tt||ƒƒ}||kr8td ||||¡ƒ‚qd S )Nz{0} is missing a {1!r} methodzO{0}.{1}'s signature differs from the expected. Expected: {2!r}. Received: {3!r})	Ú__abstractmethods__ÚhasattrrB   r   r   r   ÚabcÚabstractpropertyrC   )r$   r"   ÚmethodÚsigÚactualr   r   r   r   Y   s$   


ÿÿþÿör   c                 C   s   |   ¡ S r   )r8   )Úxr   r   r   r8   o   s   r8   c                   @   s   e Zd Zdd„ ZdS )Ú_DeprecatedValuec                 C   s   || _ || _|| _d S r   )r   ÚmessageÚwarning_class)r   r   rM   rN   r   r   r   Ú__init__t   s   
z_DeprecatedValue.__init__N)r   r	   r
   rO   r   r   r   r   rL   s   s    rL   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   rO   {   s   z _ModuleWithDeprecations.__init__c                 C   s4   t | j|ƒ}t|tƒrtj|j|jdd� |j}|S ©Nr<   )Ú
stacklevel)	r   rR   r   rL   ÚwarningsÚwarnrM   rN   r   ©r   ÚattrÚobjr   r   r   Ú__getattr__~   s
   
z#_ModuleWithDeprecations.__getattr__c                 C   s   t | j||ƒ d S r   )ÚsetattrrR   )r   rZ   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 rU   )	r   rR   r   rL   rW   rX   rM   rN   ÚdelattrrY   r   r   r   Ú__delattr__ˆ   s   
z#_ModuleWithDeprecations.__delattr__c                 C   s   dgt | jƒ S rQ   )ÚdirrR   r   r   r   r   Ú__dir__�   r   z_ModuleWithDeprecations.__dir__N)r   r	   r
   rO   r\   r^   r`   rb   r   r   r   r   rP   z   s    rP   c                 C   s.   t j| }t|tƒst|ƒt j|< t| ||ƒS r   )ÚsysÚmodulesr   rP   rL   )r   Úmodule_namerM   rN   rT   r   r   r   Ú
deprecated“   s   

rf   c                    s(   d  ˆ¡‰ tƒ ‰‡ ‡‡fdd„}t|ƒS )Nz_cached_{0}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   )rl   rn   r   rj   r   Úcached_propertyš   s   
rp   )Fr   )"Ú
__future__r   r   r   rF   r.   Úinspectrc   rW   ÚUserWarningr   ÚPersistentlyDeprecatedÚDeprecatedIn21ÚDeprecatedIn23r   r   r&   r)   rE   r-   r*   r3   r;   Ú	ExceptionrB   rC   Ú
getargspecr   r8   ro   rL   rP   rf   rp   r   r   r   r   Ú<module>   s<   
	


	
