B
    .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e
Zdd Zdd Zd	d
 Zdd Zdd ZeedrejZn
d&ddZeedrd'ddZn
d(ddZG dd deZeedre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               @   s   e Zd ZdS )CryptographyDeprecationWarningN)__name__
__module____qualname__ r	   r	   OC:\Users\sanjo\AppData\Local\Qlobot\Launcher\ext_packages\cryptography\utils.pyr      s   r   c             C   s   t |tstd| d S )Nz{} must be bytes)
isinstancebytes	TypeErrorformat)namevaluer	   r	   r
   _check_bytes   s    
r   c             C   s4   yt | W n" tk
r.   td| Y nX d S )Nz{} must be bytes-like)
memoryviewr   r   )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>*       z$read_only_property.<locals>.<lambda>)property)r   r	   )r   r
   read_only_property)   s    r   c                s    fdd}|S )Nc                s   t  |   |  | S )N)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 )N)r   r   )r   )r   	predicater	   r
   r   6   s    

z1register_interface_if.<locals>.register_decoratorr	   )r    r   r   r	   )r   r    r
   register_interface_if5   s    r!   
from_bytesFc             C   s$   |dkst |rt tt| dS )Nbig   )AssertionErrorintbinasciihexlify)data	byteordersignedr	   r	   r
   int_from_bytesA   s    r,   to_bytesc             C   s    |  |p|  d d pddS )N         r#   )r-   
bit_length)integerlengthr	   r	   r
   int_to_bytesI   s    r4   c             C   s:   d|  }|d krt |}n|d }t|||d@  S )Nz%x   r0   )lenr'   	unhexlifyzfill)r2   r3   Z
hex_stringnr	   r	   r
   r4   N   s
    
c               @   s   e Zd ZdS )InterfaceNotImplementedN)r   r   r   r	   r	   r	   r
   r:   W   s   r:   	signaturec             C   sz   xt| j D ]j}t||s&td||tt| |tjr:qtt| |}tt||}||krtd||||qW d S )Nz{} is missing a {!r} methodzK{}.{}'s signature differs from the expected. Expected: {!r}. Received: {!r})	__abstractmethods__hasattrr:   r   r   r   abcabstractpropertyr;   )r   r   methodsigactualr	   r	   r
   r   a   s    
r   c             C   s   |   S )N)r1   )xr	   r	   r
   r1   w   s    r1   c               @   s   e Zd Zdd ZdS )_DeprecatedValuec             C   s   || _ || _|| _d S )N)r   messagewarning_class)r   r   rE   rF   r	   r	   r
   __init__|   s    z_DeprecatedValue.__init__N)r   r   r   rG   r	   r	   r	   r
   rD   {   s   rD   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
   rG      s    z _ModuleWithDeprecations.__init__c             C   s4   t | j|}t|tr0tj|j|jdd |j}|S )Nr5   )
stacklevel)	r   rI   r   rD   warningswarnrE   rF   r   )r   attrobjr	   r	   r
   __getattr__   s
    
z#_ModuleWithDeprecations.__getattr__c             C   s   t | j|| d S )N)setattrrI   )r   rO   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 )Nr5   )rL   )	r   rI   r   rD   rM   rN   rE   rF   delattr)r   rO   rP   r	   r	   r
   __delattr__   s    
z#_ModuleWithDeprecations.__delattr__c             C   s   dgt | j S )NrI   )dirrI   )r   r	   r	   r
   __dir__   s    z_ModuleWithDeprecations.__dir__N)r   r   r   rG   rQ   rS   rU   rW   r	   r	   r	   r
   rH      s
   rH   c             C   s.   t j| }t|ts"t|t j|< t| ||S )N)sysmodulesr   rH   rD   )r   module_namerE   rF   rK   r	   r	   r
   
deprecated   s    

r[   c                s(   d  t  fdd}t|S )Nz
_cached_{}c                s0   t |  }|k	r|S | }t|  | |S )N)r   rR   )instancecacheresult)cached_namefuncsentinelr	   r
   inner   s    zcached_property.<locals>.inner)r   objectr   )r`   rb   r	   )r_   r`   ra   r
   cached_property   s    
rd   )F)N)N)$
__future__r   r   r   r>   r'   inspectrX   rM   UserWarningr   ZPersistentlyDeprecated2017ZPersistentlyDeprecated2018ZDeprecatedIn25ZDeprecatedIn27r   r   r   r   r!   r=   r&   r"   r,   r4   	Exceptionr:   r;   
getargspecr   r1   rc   rD   rH   r[   rd   r	   r	   r	   r
   <module>   s>   	



	
