o
    e9                     @   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ejd  dkZer%efZ	ne
fZ	dd ZG dd deZG dd deZG d	d
 d
eeZG dd deZG dd deZG dd deZG dd deZG dd deZze jdsddlmZmZmZmZmZmZ W n	 ey   Y nw dd Zdd Zdi fddZG dd  d eZdi fd!d"Zd#d$ Zd%d& Z d'd( Z!d)d* Z"d+d, Z#G d-d. d.eZ$dS )/    N   c                 G   s   | d|i S )z%Create a base class with a metaclass.ZNewBase )metabasesr   r   >D:\Projects\ConvertPro\env\Lib\site-packages\wrapt/wrappers.pywith_metaclass      r   c                   @   sX   e Zd Zedd Zejdd Zedd Zejdd Zedd Zed	d
 ZdS )_ObjectProxyMethodsc                 C      | j jS N__wrapped__
__module__selfr   r   r   r         z_ObjectProxyMethods.__module__c                 C      || j _d S r   r   r   valuer   r   r   r   "   r   c                 C   r
   r   r   __doc__r   r   r   r   r   &   r   z_ObjectProxyMethods.__doc__c                 C   r   r   r   r   r   r   r   r   *   r   c                 C   r
   r   )r   __dict__r   r   r   r   r   1   r   z_ObjectProxyMethods.__dict__c                 C   r
   r   )r   __weakref__r   r   r   r   r   :   r   z_ObjectProxyMethods.__weakref__N)__name__r   __qualname__propertysetterr   r   r   r   r   r   r   r	      s    




r	   c                   @      e Zd Zdd ZdS )_ObjectProxyMetaTypec                 C   s   | tt t| |||S r   )updatevarsr	   type__new__)clsnamer   
dictionaryr   r   r   r"   ?   s   z_ObjectProxyMetaType.__new__N)r   r   r   r"   r   r   r   r   r   >   s    r   c                   @   s  e Zd ZdZdd Zedd Z e jdd Z edd Zejd	d Zd
d Zdd Z	e
s2dd Zdd Zdd Ze
s@dd ZejdkrIdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Z d7d8 Z!d9d: Z"d;d< Z#d=d> Z$d?d@ Z%dAdB Z&dCdD Z'dEdF Z(dGdH Z)dIdJ Z*dKdL Z+dMdN Z,dOdP Z-dQdR Z.dSdT Z/dUdV Z0dWdX Z1dYdZ Z2d[d\ Z3d]d^ Z4d_d` Z5dadb Z6dcdd Z7dedf Z8dgdh Z9didj Z:dkdl Z;dmdn Z<dodp Z=dqdr Z>dsdt Z?dudv Z@dwdx ZAdydz ZBd{d| ZCd}d~ ZDdd ZEdd ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dS )ObjectProxyr   c                 C   sb   t | d| z
t | d|j W n	 ty   Y nw zt | d|j W d S  ty0   Y d S w )Nr   r   __annotations__)object__setattr__r   AttributeErrorr'   )r   wrappedr   r   r   __init__M   s   zObjectProxy.__init__c                 C   r
   r   r   r   r   r   r   r   r   a   r   zObjectProxy.__name__c                 C   r   r   r-   r   r   r   r   r   e   r   c                 C   r
   r   r   	__class__r   r   r   r   r/   i   r   zObjectProxy.__class__c                 C   r   r   r.   r   r   r   r   r/   m   r   c                 C   
   t | jS r   )dirr   r   r   r   r   __dir__q      
zObjectProxy.__dir__c                 C   r0   r   )strr   r   r   r   r   __str__t   r3   zObjectProxy.__str__c                 C   r0   r   )bytesr   r   r   r   r   	__bytes__x   r3   zObjectProxy.__bytes__c                 C   s(   d t| jt| t| jjt| jS )Nz<{} at 0x{:x} for {} at 0x{:x}>)formatr!   r   idr   r   r   r   r   __repr__{   s
   
zObjectProxy.__repr__c                 C   r0   r   )reversedr   r   r   r   r   __reversed__   r3   zObjectProxy.__reversed__c                 C   r0   r   )roundr   r   r   r   r   	__round__   r3   zObjectProxy.__round__i  c                 C   s   | j fS r   r   )r   r   r   r   r   __mro_entries__      zObjectProxy.__mro_entries__c                 C   s
   | j |k S r   r?   r   otherr   r   r   __lt__   r3   zObjectProxy.__lt__c                 C   s
   | j |kS r   r?   rB   r   r   r   __le__   r3   zObjectProxy.__le__c                 C   s
   | j |kS r   r?   rB   r   r   r   __eq__   r3   zObjectProxy.__eq__c                 C   s
   | j |kS r   r?   rB   r   r   r   __ne__   r3   zObjectProxy.__ne__c                 C   s
   | j |kS r   r?   rB   r   r   r   __gt__   r3   zObjectProxy.__gt__c                 C   s
   | j |kS r   r?   rB   r   r   r   __ge__   r3   zObjectProxy.__ge__c                 C   r0   r   )hashr   r   r   r   r   __hash__   r3   zObjectProxy.__hash__c                 C   r0   r   boolr   r   r   r   r   __nonzero__   r3   zObjectProxy.__nonzero__c                 C   r0   r   rL   r   r   r   r   __bool__   r3   zObjectProxy.__bool__c                 C   sP  | drt| || d S |dkrgt| || zt| d W n	 ty*   Y nw z
t| d|j W n	 ty>   Y nw zt| d W n	 tyP   Y nw zt| d|j W d S  tyf   Y d S w |dkr{t| j|| t| || d S |dkrt| j|| t| || d S t	t
| |rt| || d S t| j|| d S )N_self_r   r   r'   )
startswithr(   r)   __delattr__r*   r   r'   setattrr   hasattrr!   )r   r$   r   r   r   r   r)      sB   
zObjectProxy.__setattr__c                 C   s   |dkrt dt| j|S )Nr   z wrapper has not been initialised)
ValueErrorgetattrr   r   r$   r   r   r   __getattr__   s   zObjectProxy.__getattr__c                 C   s|   | drt| | d S |dkrtd|dkr't| | t| j| d S tt| |r6t| | d S t| j| d S )NrP   r   z__wrapped__ must be an objectr   )rQ   r(   rR   	TypeErrordelattrr   rT   r!   rW   r   r   r   rR      s   
zObjectProxy.__delattr__c                 C   s
   | j | S r   r?   rB   r   r   r   __add__   r3   zObjectProxy.__add__c                 C   s
   | j | S r   r?   rB   r   r   r   __sub__   r3   zObjectProxy.__sub__c                 C   s
   | j | S r   r?   rB   r   r   r   __mul__   r3   zObjectProxy.__mul__c                 C      t | j|S r   operatordivr   rB   r   r   r   __div__      zObjectProxy.__div__c                 C   r^   r   r`   truedivr   rB   r   r   r   __truediv__   rc   zObjectProxy.__truediv__c                 C   s
   | j | S r   r?   rB   r   r   r   __floordiv__   r3   zObjectProxy.__floordiv__c                 C   s
   | j | S r   r?   rB   r   r   r   __mod__   r3   zObjectProxy.__mod__c                 C   s   t | j|S r   divmodr   rB   r   r   r   
__divmod__      zObjectProxy.__divmod__c                 G   s   t | j|g|R  S r   powr   r   rC   argsr   r   r   __pow__      zObjectProxy.__pow__c                 C   s
   | j |> S r   r?   rB   r   r   r   
__lshift__  r3   zObjectProxy.__lshift__c                 C   s
   | j |? S r   r?   rB   r   r   r   
__rshift__  r3   zObjectProxy.__rshift__c                 C   s
   | j |@ S r   r?   rB   r   r   r   __and__  r3   zObjectProxy.__and__c                 C   s
   | j |A S r   r?   rB   r   r   r   __xor__
  r3   zObjectProxy.__xor__c                 C   s
   | j |B S r   r?   rB   r   r   r   __or__  r3   zObjectProxy.__or__c                 C   s
   || j  S r   r?   rB   r   r   r   __radd__  r3   zObjectProxy.__radd__c                 C   s
   || j  S r   r?   rB   r   r   r   __rsub__  r3   zObjectProxy.__rsub__c                 C   s
   || j  S r   r?   rB   r   r   r   __rmul__  r3   zObjectProxy.__rmul__c                 C      t || jS r   r_   rB   r   r   r   __rdiv__  rc   zObjectProxy.__rdiv__c                 C   r{   r   rd   rB   r   r   r   __rtruediv__  rc   zObjectProxy.__rtruediv__c                 C   s
   || j  S r   r?   rB   r   r   r   __rfloordiv__  r3   zObjectProxy.__rfloordiv__c                 C   s
   || j  S r   r?   rB   r   r   r   __rmod__"  r3   zObjectProxy.__rmod__c                 C      t || jS r   ri   rB   r   r   r   __rdivmod__%  rl   zObjectProxy.__rdivmod__c                 G   s   t || jg|R  S r   rm   ro   r   r   r   __rpow__(  rr   zObjectProxy.__rpow__c                 C   s
   || j > S r   r?   rB   r   r   r   __rlshift__+  r3   zObjectProxy.__rlshift__c                 C   s
   || j ? S r   r?   rB   r   r   r   __rrshift__.  r3   zObjectProxy.__rrshift__c                 C   s
   || j @ S r   r?   rB   r   r   r   __rand__1  r3   zObjectProxy.__rand__c                 C   s
   || j A S r   r?   rB   r   r   r   __rxor__4  r3   zObjectProxy.__rxor__c                 C   s
   || j B S r   r?   rB   r   r   r   __ror__7  r3   zObjectProxy.__ror__c                 C   s   |  j |7  _ | S r   r?   rB   r   r   r   __iadd__:     zObjectProxy.__iadd__c                 C   s   |  j |8  _ | S r   r?   rB   r   r   r   __isub__>  r   zObjectProxy.__isub__c                 C   s   |  j |9  _ | S r   r?   rB   r   r   r   __imul__B  r   zObjectProxy.__imul__c                 C      t | j|| _| S r   )r`   Zidivr   rB   r   r   r   __idiv__F     zObjectProxy.__idiv__c                 C   r   r   )r`   itruedivr   rB   r   r   r   __itruediv__J  r   zObjectProxy.__itruediv__c                 C   s   |  j |  _ | S r   r?   rB   r   r   r   __ifloordiv__N  r   zObjectProxy.__ifloordiv__c                 C   s   |  j |;  _ | S r   r?   rB   r   r   r   __imod__R  r   zObjectProxy.__imod__c                 C   s   |  j |C  _ | S r   r?   rB   r   r   r   __ipow__V  r   zObjectProxy.__ipow__c                 C   s   |  j |K  _ | S r   r?   rB   r   r   r   __ilshift__Z  r   zObjectProxy.__ilshift__c                 C   s   |  j |L  _ | S r   r?   rB   r   r   r   __irshift__^  r   zObjectProxy.__irshift__c                 C   s   |  j |M  _ | S r   r?   rB   r   r   r   __iand__b  r   zObjectProxy.__iand__c                 C   s   |  j |N  _ | S r   r?   rB   r   r   r   __ixor__f  r   zObjectProxy.__ixor__c                 C   s   |  j |O  _ | S r   r?   rB   r   r   r   __ior__j  r   zObjectProxy.__ior__c                 C   s   | j  S r   r?   r   r   r   r   __neg__n  rA   zObjectProxy.__neg__c                 C   s   | j 
 S r   r?   r   r   r   r   __pos__q  rA   zObjectProxy.__pos__c                 C   r0   r   )absr   r   r   r   r   __abs__t  r3   zObjectProxy.__abs__c                 C   s   | j  S r   r?   r   r   r   r   
__invert__w  rA   zObjectProxy.__invert__c                 C   r0   r   )intr   r   r   r   r   __int__z  r3   zObjectProxy.__int__c                 C   r0   r   )longr   r   r   r   r   __long__}  r3   zObjectProxy.__long__c                 C   r0   r   )floatr   r   r   r   r   	__float__  r3   zObjectProxy.__float__c                 C   r0   r   )complexr   r   r   r   r   __complex__  r3   zObjectProxy.__complex__c                 C   r0   r   )octr   r   r   r   r   __oct__  r3   zObjectProxy.__oct__c                 C   r0   r   )hexr   r   r   r   r   __hex__  r3   zObjectProxy.__hex__c                 C   s   t | jS r   )r`   indexr   r   r   r   r   	__index__  rl   zObjectProxy.__index__c                 C   r0   r   )lenr   r   r   r   r   __len__  r3   zObjectProxy.__len__c                 C   s
   || j v S r   r?   r   r   r   r   __contains__  r3   zObjectProxy.__contains__c                 C   s
   | j | S r   r?   r   keyr   r   r   __getitem__  r3   zObjectProxy.__getitem__c                 C   s   || j |< d S r   r?   )r   r   r   r   r   r   __setitem__  rc   zObjectProxy.__setitem__c                 C   s   | j |= d S r   r?   r   r   r   r   __delitem__  rl   zObjectProxy.__delitem__c                 C   s   | j || S r   r?   r   ijr   r   r   __getslice__  rc   zObjectProxy.__getslice__c                 C   s   || j ||< d S r   r?   )r   r   r   r   r   r   r   __setslice__     zObjectProxy.__setslice__c                 C   s   | j ||= d S r   r?   r   r   r   r   __delslice__     zObjectProxy.__delslice__c                 C   s
   | j  S r   )r   	__enter__r   r   r   r   r     r3   zObjectProxy.__enter__c                 O   s   | j j|i |S r   )r   __exit__)r   rp   kwargsr   r   r   r     r   zObjectProxy.__exit__c                 C   r0   r   )iterr   r   r   r   r   __iter__  r3   zObjectProxy.__iter__c                 C      t d)Nz#object proxy must define __copy__()NotImplementedErrorr   r   r   r   __copy__  rA   zObjectProxy.__copy__c                 C   r   )Nz'object proxy must define __deepcopy__()r   )r   memor   r   r   __deepcopy__  rA   zObjectProxy.__deepcopy__c                 C   r   Nz(object proxy must define __reduce_ex__()r   r   r   r   r   
__reduce__     zObjectProxy.__reduce__c                 C   r   r   r   )r   protocolr   r   r   __reduce_ex__  r   zObjectProxy.__reduce_ex__N)ar   r   r   	__slots__r,   r   r   r/   r2   r5   PY2r7   r:   r<   r>   sys
hexversionr@   rD   rE   rF   rG   rH   rI   rK   rN   rO   r)   rX   rR   r[   r\   r]   rb   rf   rg   rh   rk   rq   rs   rt   ru   rv   rw   rx   ry   rz   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r&   I   s    




%	r&   c                   @   r   )CallableObjectProxyc                  O   s$   dd }||  \}} |j | i |S )Nc                 W      | |fS r   r   r   rp   r   r   r   _unpack_self  rA   z2CallableObjectProxy.__call__.<locals>._unpack_selfr?   )rp   r   r   r   r   r   r   __call__  s   zCallableObjectProxy.__call__Nr   r   r   r   r   r   r   r   r         r   c                       s$   e Zd Z fddZdd Z  ZS )PartialCallableObjectProxyc                     sn   dd }||  \}} t | dk rtd| d | dd  }} t|s'tdtt|| | |_||_d S )Nc                 W   r   r   r   r   r   r   r   r     rA   z9PartialCallableObjectProxy.__init__.<locals>._unpack_self   z(partial type takes at least one argumentr   z#the first argument must be callable)r   rY   callablesuperr   r,   
_self_args_self_kwargs)rp   r   r   r   r+   r/   r   r   r,     s   
z#PartialCallableObjectProxy.__init__c                  O   sB   dd }||  \}} |j |  }t|j}|| |j|i |S )Nc                 W   r   r   r   r   r   r   r   r     rA   z9PartialCallableObjectProxy.__call__.<locals>._unpack_self)r   dictr   r   r   )rp   r   r   r   _args_kwargsr   r   r   r     s   


z#PartialCallableObjectProxy.__call__)r   r   r   r,   r   __classcell__r   r   r   r   r     s    r   c                       sN   e Zd ZdZ		d fdd	Zdd Zdd	 Zd
d Zdd Zdd Z	  Z
S )_FunctionWrapperBase)_self_instance_self_wrapper_self_enabled_self_binding_self_parentNfunctionc                    sZ   t t| | t| d| t| d| t| d| t| d| t| d| d S )Nr   r   r   r   r   )r   r   r,   r(   r)   )r   r+   instancewrapperenabledbindingparentr   r   r   r,     s   z_FunctionWrapperBase.__init__c                 C   s   | j d u r!t| js| j||}| ||| j| j| j| S | S | j	d u rB| jdkrB| j j||}| j ||| j| j| j| j S | S )Nr   )
r   inspectisclassr   __get____bound_function_wrapper__r   r   r   r   )r   r   ownerZ
descriptorr   r   r   r     s$   
z_FunctionWrapperBase.__get__c                  O   s   dd }||  \}} |j d ur,t|j r!|  s |j| i |S n|j s,|j| i |S |jdv rJ|jd u rJt|jdd }|d urJ||j|| |S ||j|j| |S )Nc                 W   r   r   r   r   r   r   r   r   3  rA   z3_FunctionWrapperBase.__call__.<locals>._unpack_self)r   classmethod__self__)r   r   r   r   r   rV   r   )rp   r   r   r   r   r   r   r   r   2  s&   




	z_FunctionWrapperBase.__call__c                 C   s"   t | jdr| j|| d S d S )N__set_name__)rT   r   r   )r   r   r$   r   r   r   r   Y  s   z!_FunctionWrapperBase.__set_name__c                 C   r   r   )
isinstancer   r   r   r   r   r   __instancecheck__c  s   z&_FunctionWrapperBase.__instancecheck__c                 C   s$   t |drt|j| jS t|| jS )Nr   )rT   
issubclassr   )r   subclassr   r   r   __subclasscheck__h  s   
z&_FunctionWrapperBase.__subclasscheck__)Nr   N)r   r   r   r   r,   r   r   r   r   r   r   r   r   r   r   r     s    8'
r   c                   @   r   )BoundFunctionWrapperc                  O   s   dd }||  \}} |j d ur,t|j r!|  s |j| i |S n|j s,|j| i |S |jdkr_|jd u rU| s<td| d | dd  }} t|j|}|||| |S ||j|j| |S t|jdd }||j|| |S )Nc                 W   r   r   r   r   r   r   r   r   w  rA   z3BoundFunctionWrapper.__call__.<locals>._unpack_selfr   z&missing 1 required positional argumentr   r   r   )	r   r   r   r   r   rY   r   r   rV   )rp   r   r   r   r   r+   r   r   r   r   v  s.   



zBoundFunctionWrapper.__call__Nr   r   r   r   r   r   t  r   r   c                       s"   e Zd ZeZd fdd	Z  ZS )FunctionWrapperNc                    sb   t |trd}nt |trd}nt|dr!t|jrd}nd}nd}tt| 	|d ||| d S )Nr   staticmethodr   r   )
r   r   r   rT   r   r   r   r   r   r,   )r   r+   r   r   r   r   r   r   r,     s   
I

zFunctionWrapper.__init__r   )r   r   r   r   r   r,   r   r   r   r   r   r     s    r   ZWRAPT_DISABLE_EXTENSIONSr   )r&   r   r   r   r   r   c                 C   sn   t | trt|  tj|  } | }|d}|d }dd }|||}|dd  D ]	}|}|||}q(|||fS )N.r   c                 S   sJ   t | r t | D ]}|t|v rt||   S q
t| |S t| |S r   )r   r   getmror    rV   )r   	attributer#   r   r   r   lookup_attribute3  s   


z&resolve_path.<locals>.lookup_attributer   )r   string_types
__import__r   modulessplit)moduler$   r   pathr  r  originalr   r   r   resolve_path  s   





r
  c                 C   s   t | || d S r   )rS   )r   r  replacementr   r   r   apply_patchE  r   r  r   c           	      C   s6   t | |\}}}||g|R i |}t||| |S r   )r
  r  )	r  r$   factoryrp   r   r   r  r	  r   r   r   r   wrap_objectH  s   r  c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
AttributeWrapperc                 C   s   || _ || _|| _|| _d S r   )r  r  rp   r   )r   r  r  rp   r   r   r   r   r,   V  s   
zAttributeWrapper.__init__c                 C   s(   |j | j }| j|g| jR i | jS r   )r   r  r  rp   r   )r   r   r   r   r   r   r   r   \  s   zAttributeWrapper.__get__c                 C   s   ||j | j< d S r   r   r  )r   r   r   r   r   r   __set__`  r   zAttributeWrapper.__set__c                 C   s   |j | j= d S r   r  r   r   r   r   
__delete__c  rc   zAttributeWrapper.__delete__N)r   r   r   r,   r   r  r  r   r   r   r   r  T  s
    r  c           	      C   s<   | dd\}}t| |d }t||||}t||| |S )Nr   r   r   )rsplitr
  r  r  )	r  r$   r  rp   r   r  r  r   r   r   r   r   wrap_object_attributef  s
   r  c                    s    fdd}t  |S )Nc                    sH   |d }|d u r }nt |r d |}n |t|}t||S )Nr   r   r   r   r!   r   )r+   r   rp   r   target_wrappedtarget_wrapperr   r   r   _wrappers  s   

z"function_wrapper.<locals>._wrapperr   r   r  r   r  r   function_wrapperr  s   
	r  c                 C   s   t | |t|fS r   r  r   r  r$   r   r   r   r   wrap_function_wrapper~  r   r  c                        fdd}|S )Nc                    s   t  t| fS r   r  r  r  r$   r   r   r    r   z(patch_function_wrapper.<locals>._wrapperr   )r  r$   r  r   r!  r   patch_function_wrapper  s   r"  c                    r   )Nc                    s    fdd}t  |S )Nc                    sX   |d }|d u r nt |rd | n|t|  fdd}t||S )Nr   c              
      sR   t  \}}}t|}t||| z| |i |W t||| S t||| w r   )r
  r   rS   )r+   r   rp   r   r   r  r	  r  )r  r$   r  r   r   _execute  s   
zRtransient_function_wrapper.<locals>._decorator.<locals>._wrapper.<locals>._executer  )r+   r   rp   r   r  r#  r  )r  r   r    s   

z@transient_function_wrapper.<locals>._decorator.<locals>._wrapperr  r  r!  r  r   
_decorator  s   
z.transient_function_wrapper.<locals>._decoratorr   )r  r$   r$  r   r!  r   transient_function_wrapper  s   r%  c                 C   s(   |j rd S d|_ |d ur|| d S d S )NT)_self_expired)refproxycallbackr   r   r   _weak_function_proxy_callback  s   r*  c                       s*   e Zd ZdZd fdd	Zdd Z  ZS )WeakFunctionProxy)r&  r   Nc              	      s   |o	t jt| |d}d| _t|tr<t|j|| _|j	d ur.t
t| t|j	| d S t
t| t|| d S zt|j|| _t
t| t|j| W d S  tym   d | _t
t| t|| Y d S w )N)r(  r)  F)	functoolspartialr*  r&  r   r   weakrefr'  r   r   r   r+  r,   r(  r   __func__r*   )r   r+   r)  	_callbackr   r   r   r,     s:   









zWeakFunctionProxy.__init__c                  O   s`   dd }||  \}} |j o|  }|jo|j}|d u r#|j| i |S ||t|| i |S )Nc                 W   r   r   r   r   r   r   r   r     rA   z0WeakFunctionProxy.__call__.<locals>._unpack_self)r   r   r   r!   )rp   r   r   r   r   r   r   r   r   r     s   zWeakFunctionProxy.__call__r   )r   r   r   r   r,   r   r   r   r   r   r   r+    s    -r+  )%osr   r,  r`   r.  r   version_infor   
basestringr  r4   r   r(   r	   r!   r   r&   r   r   r   r   r   environgetZ	_wrappersImportErrorr
  r  r  r  r  r  r  r"  r%  r*  r+  r   r   r   r   <module>   sP    +  w
" ?_ )