U
    EZh                     @   s   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eddddZeeddddZdeeje ed	d
dZejejeef dddZG dd deZG dd dZG dd dejZdeeeeje eje edddZejedddZ G dd de j!Z!dS )    Nc                   @   s   e Zd ZdS )CryptographyDeprecationWarningN__name__
__module____qualname__ r   r   Y/home/aprabhat/apps/x.techxrdev.in/venv/lib/python3.8/site-packages/cryptography/utils.pyr      s   r   )namevaluereturnc                 C   s   t |tst|  dd S )Nz must be bytes)
isinstancebytes	TypeErrorr	   r
   r   r   r   _check_bytes   s    
r   c                 C   s4   zt | W n" tk
r.   t|  dY nX d S )Nz must be bytes-like)
memoryviewr   r   r   r   r   _check_byteslike!   s    r   )integerlengthr   c                 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   )objr   c                 C   s2   ddl m} |j| }t|jd|t|fS )Nr   )_opensslZ	uintptr_t)Z"cryptography.hazmat.bindings._rustr   ffiZfrom_bufferintcastlen)r   r   bufr   r   r   _extract_buffer_length.   s    r#   c                   @   s   e Zd ZdS )InterfaceNotImplementedNr   r   r   r   r   r$   5   s   r$   c                   @   s   e Zd ZeedddZdS )_DeprecatedValue)r
   messagec                 C   s   || _ || _|| _d S N)r
   r&   warning_class)selfr
   r&   r(   r   r   r   __init__:   s    z_DeprecatedValue.__init__N)r   r   r   objectstrr*   r   r   r   r   r%   9   s   r%   c                       sj   e Zd Zejd fddZeedddZeeddd	d
Z	eddddZ
eje dddZ  ZS )_ModuleWithDeprecations)modulec                    s   t  |j || jd< d S N_module)superr*   r   __dict__)r)   r.   	__class__r   r   r*   A   s    z _ModuleWithDeprecations.__init__)attrr   c                 C   s4   t | j|}t|tr0tj|j|jdd |j}|S N   )
stacklevel)	getattrr0   r   r%   warningswarnr&   r(   r
   r)   r5   r   r   r   r   __getattr__E   s
    
z#_ModuleWithDeprecations.__getattr__N)r5   r
   r   c                 C   s   t | j|| d S r'   )setattrr0   )r)   r5   r
   r   r   r   __setattr__L   s    z#_ModuleWithDeprecations.__setattr__c                 C   s:   t | j|}t|tr*tj|j|jdd t| j| d S r6   )	r9   r0   r   r%   r:   r;   r&   r(   delattrr<   r   r   r   __delattr__O   s    
z#_ModuleWithDeprecations.__delattr__r   c                 C   s   dgt | j S r/   )dirr0   r)   r   r   r   __dir__V   s    z_ModuleWithDeprecations.__dir__)r   r   r   types
ModuleTyper*   r,   r+   r=   r?   rA   typingSequencerE   __classcell__r   r   r3   r   r-   @   s
   r-   )r
   module_namer&   r(   r	   r   c                 C   sJ   t j| }t|ts&t| t j|< }t| ||}|d k	rFt||| |S r'   )sysmodulesr   r-   r%   r>   )r
   rK   r&   r(   r	   r.   Zdvr   r   r   
deprecatedZ   s    

rN   )funcr   c                    s.   d  t  t d fdd}t|S )NZ_cached_)instancec                    s0   t |  }|k	r|S | }t|  | |S r'   )r9   r>   )rP   cacheresultZcached_namerO   sentinelr   r   innero   s    zcached_property.<locals>.inner)r+   property)rO   rU   r   rS   r   cached_propertyk   s    
rW   c                   @   s(   e Zd ZedddZedddZdS )EnumrB   c                 C   s    d| j j d| j d| jdS )N<.z: >)r4   r   _name__value_rD   r   r   r   __repr__}   s    zEnum.__repr__c                 C   s   | j j d| j S )NrZ   )r4   r   r\   rD   r   r   r   __str__   s    zEnum.__str__N)r   r   r   r,   r^   r_   r   r   r   r   rX   |   s   rX   )N)N)"enumrL   rF   rH   r:   UserWarningr   ZDeprecatedIn36ZDeprecatedIn37ZDeprecatedIn39ZDeprecatedIn40r,   r   r   r   r   Optionalr   AnyTupler#   	Exceptionr$   r%   rG   r-   r+   TypeWarningrN   CallablerV   rW   rX   r   r   r   r   <module>   s6    