
    hBe                        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 Z G d de      Z G d de      Z G d d	 ee            Z G d
 de      Z G d de      Z G d de      Z G d de      Z G d de      Z	 e j,                  j/                  d      sddlmZmZmZmZmZmZ d Zd Zdi fdZ G d de      Zdi fdZd Zd Z d  Z!d! Z"d" Z# G d# d$e      Z$y# e$ r Y ?w xY w)%    N   c                      | d|i       S )z%Create a base class with a metaclass.NewBase )metabasess     .lib/python3.12/site-packages/wrapt/wrappers.pywith_metaclassr
      s    	5"%%    c                       e Zd Zed        Zej                  d        Zed        Zej                  d        Zed        Zed        Zy)_ObjectProxyMethodsc                 .    | j                   j                  S N__wrapped__
__module__selfs    r	   r   z_ObjectProxyMethods.__module__   s    ***r   c                 &    || j                   _        y r   r   r   values     r	   r   z_ObjectProxyMethods.__module__"   s    &+#r   c                 .    | j                   j                  S r   r   __doc__r   s    r	   r   z_ObjectProxyMethods.__doc__&   s    '''r   c                 &    || j                   _        y r   r   r   s     r	   r   z_ObjectProxyMethods.__doc__*   s    #( r   c                 .    | j                   j                  S r   )r   __dict__r   s    r	   r   z_ObjectProxyMethods.__dict__1       (((r   c                 .    | j                   j                  S r   )r   __weakref__r   s    r	   r    z_ObjectProxyMethods.__weakref__:   s    +++r   N)__name__r   __qualname__propertysetterr   r   r    r   r   r	   r   r      s     + + , , ( ( ^^) ) ) ) , ,r   r   c                       e Zd Zd Zy)_ObjectProxyMetaTypec                 n    |j                  t        t                     t        j	                  | |||      S r   )updatevarsr   type__new__)clsnamer   
dictionarys       r	   r+   z_ObjectProxyMetaType.__new__?   s-     	$234||Cuj99r   N)r!   r   r"   r+   r   r   r	   r&   r&   >   s    :r   r&   c                      e Zd ZdZd Zed        Z e j                  d        Z ed        Zej                  d        Zd Zd Z	e
sd	 Zd
 Zd Ze
sd Zej                   dk\  rd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d  Z#d! Z$d" Z%d# Z&d$ Z'd% Z(d& Z)d' Z*d( Z+d) Z,d* Z-d+ Z.d, Z/d- Z0d. Z1d/ Z2d0 Z3d1 Z4d2 Z5d3 Z6d4 Z7d5 Z8d6 Z9d7 Z:d8 Z;d9 Z<d: Z=d; Z>d< Z?d= Z@d> ZAd? ZBd@ ZCdA ZDdB ZEdC ZFdD ZGdE ZHdF ZIdG ZJdH ZKdI ZLdJ ZMdK ZNdL ZOdM ZPdN ZQdO ZRdP ZSdQ ZTdR ZUdS ZVdT ZWdU ZXdV ZYdW ZZdX Z[dY Z\dZ Z]d[ Z^d\ Z_d] Z`y^)_ObjectProxyr   c                     t         j                  | d|       	 t         j                  | d|j                         	 t         j                  | d|j                         y # t        $ r Y .w xY w# t        $ r Y y w xY w)Nr   r"   __annotations__)object__setattr__r"   AttributeErrorr2   )r   wrappeds     r	   __init__zObjectProxy.__init__M   sv    48	t^W5I5IJ	t%68O8OP  		  		s"   !A !A, 	A)(A),	A87A8c                 .    | j                   j                  S r   r   r!   r   s    r	   r!   zObjectProxy.__name__a   r   r   c                 &    || j                   _        y r   r9   r   s     r	   r!   zObjectProxy.__name__e   s    $)!r   c                 .    | j                   j                  S r   r   	__class__r   s    r	   r=   zObjectProxy.__class__i   s    )))r   c                 &    || j                   _        y r   r<   r   s     r	   r=   zObjectProxy.__class__m   s    %*"r   c                 ,    t        | j                        S r   )dirr   r   s    r	   __dir__zObjectProxy.__dir__q       4##$$r   c                 ,    t        | j                        S r   )strr   r   s    r	   __str__zObjectProxy.__str__t   rB   r   c                 ,    t        | j                        S r   )bytesr   r   s    r	   	__bytes__zObjectProxy.__bytes__x       ))**r   c                     dj                  t        |       j                  t        |       t        | j                        j                  t        | j                              S )Nz<{} at 0x{:x} for {} at 0x{:x}>)formatr*   r!   idr   r   s    r	   __repr__zObjectProxy.__repr__{   sJ    077T
##RXT%%&//4##$& 	&r   c                 ,    t        | j                        S r   )reversedr   r   s    r	   __reversed__zObjectProxy.__reversed__   s    (())r   c                 ,    t        | j                        S r   )roundr   r   s    r	   	__round__zObjectProxy.__round__   rI   r   i  c                     | j                   fS r   r   )r   r   s     r	   __mro_entries__zObjectProxy.__mro_entries__   s    $$&&r   c                      | j                   |k  S r   rU   r   others     r	   __lt__zObjectProxy.__lt__       %''r   c                      | j                   |k  S r   rU   rX   s     r	   __le__zObjectProxy.__le__       5((r   c                      | j                   |k(  S r   rU   rX   s     r	   __eq__zObjectProxy.__eq__   r^   r   c                      | j                   |k7  S r   rU   rX   s     r	   __ne__zObjectProxy.__ne__   r^   r   c                      | j                   |kD  S r   rU   rX   s     r	   __gt__zObjectProxy.__gt__   r[   r   c                      | j                   |k\  S r   rU   rX   s     r	   __ge__zObjectProxy.__ge__   r^   r   c                 ,    t        | j                        S r   )hashr   r   s    r	   __hash__zObjectProxy.__hash__       D$$%%r   c                 ,    t        | j                        S r   boolr   r   s    r	   __nonzero__zObjectProxy.__nonzero__   rj   r   c                 ,    t        | j                        S r   rl   r   s    r	   __bool__zObjectProxy.__bool__   rj   r   c                 H   |j                  d      rt        j                  | ||       y |dk(  rt        j                  | ||       	 t        j                  | d       	 t        j                  | d|j
                         	 t        j                  | d       	 t        j                  | d|j                         y |dk(  r/t        | j                  ||       t        j                  | ||       y |dk(  r/t        | j                  ||       t        j                  | ||       y t        t        |       |      rt        j                  | ||       y t        | j                  ||       y # t        $ r Y w xY w# t        $ r Y w xY w# t        $ r Y w xY w# t        $ r Y y w xY w)N_self_r   r"   r2   )
startswithr3   r4   __delattr__r5   r"   r2   setattrr   hasattrr*   )r   r-   r   s      r	   r4   zObjectProxy.__setattr__   s|   ??8$tT51]"tT51""48""49K9KL""4):;""4):E<Q<QR ^#D$$dE2tT51&&D$$dE2tT51T$Z&tT51 D$$dE27 "  "  "  " sH   E& !E6  F !F &	E32E36	FF	FF	F! F!c                 N    |dk(  rt        d      t        | j                  |      S )Nr   z wrapper has not been initialised)
ValueErrorgetattrr   r   r-   s     r	   __getattr__zObjectProxy.__getattr__   s+     = ?@@t''..r   c                 \   |j                  d      rt        j                  | |       y |dk(  rt        d      |dk(  r-t        j                  | |       t	        | j
                  |       y t        t        |       |      rt        j                  | |       y t	        | j
                  |       y )Nrr   r   z__wrapped__ must be an objectr"   )rs   r3   rt   	TypeErrordelattrr   rv   r*   rz   s     r	   rt   zObjectProxy.__delattr__   s    ??8$tT*]";<<^#tT*D$$d+T$Z&tT* D$$d+r   c                      | j                   |z   S r   rU   rX   s     r	   __add__zObjectProxy.__add__   r[   r   c                      | j                   |z
  S r   rU   rX   s     r	   __sub__zObjectProxy.__sub__   r[   r   c                      | j                   |z  S r   rU   rX   s     r	   __mul__zObjectProxy.__mul__   r[   r   c                 B    t        j                  | j                  |      S r   operatordivr   rX   s     r	   __div__zObjectProxy.__div__   s    ||D,,e44r   c                 B    t        j                  | j                  |      S r   r   truedivr   rX   s     r	   __truediv__zObjectProxy.__truediv__   s     0 0%88r   c                      | j                   |z  S r   rU   rX   s     r	   __floordiv__zObjectProxy.__floordiv__   r^   r   c                      | j                   |z  S r   rU   rX   s     r	   __mod__zObjectProxy.__mod__   r[   r   c                 .    t        | j                  |      S r   divmodr   rX   s     r	   
__divmod__zObjectProxy.__divmod__   s    d&&..r   c                 0    t        | j                  |g| S r   powr   r   rY   argss      r	   __pow__zObjectProxy.__pow__   s    4##U2T22r   c                      | j                   |z  S r   rU   rX   s     r	   
__lshift__zObjectProxy.__lshift__  r^   r   c                      | j                   |z	  S r   rU   rX   s     r	   
__rshift__zObjectProxy.__rshift__  r^   r   c                      | j                   |z  S r   rU   rX   s     r	   __and__zObjectProxy.__and__  r[   r   c                      | j                   |z  S r   rU   rX   s     r	   __xor__zObjectProxy.__xor__
  r[   r   c                      | j                   |z  S r   rU   rX   s     r	   __or__zObjectProxy.__or__  r[   r   c                      || j                   z   S r   rU   rX   s     r	   __radd__zObjectProxy.__radd__      t''''r   c                      || j                   z
  S r   rU   rX   s     r	   __rsub__zObjectProxy.__rsub__  r   r   c                      || j                   z  S r   rU   rX   s     r	   __rmul__zObjectProxy.__rmul__  r   r   c                 B    t        j                  || j                        S r   r   rX   s     r	   __rdiv__zObjectProxy.__rdiv__  s    ||E4#3#344r   c                 B    t        j                  || j                        S r   r   rX   s     r	   __rtruediv__zObjectProxy.__rtruediv__  s    t'7'788r   c                      || j                   z  S r   rU   rX   s     r	   __rfloordiv__zObjectProxy.__rfloordiv__      ((((r   c                      || j                   z  S r   rU   rX   s     r	   __rmod__zObjectProxy.__rmod__"  r   r   c                 .    t        || j                        S r   r   rX   s     r	   __rdivmod__zObjectProxy.__rdivmod__%  s    eT--..r   c                 0    t        || j                  g| S r   r   r   s      r	   __rpow__zObjectProxy.__rpow__(  s    5$**2T22r   c                      || j                   z  S r   rU   rX   s     r	   __rlshift__zObjectProxy.__rlshift__+  r   r   c                      || j                   z	  S r   rU   rX   s     r	   __rrshift__zObjectProxy.__rrshift__.  r   r   c                      || j                   z  S r   rU   rX   s     r	   __rand__zObjectProxy.__rand__1  r   r   c                      || j                   z  S r   rU   rX   s     r	   __rxor__zObjectProxy.__rxor__4  r   r   c                      || j                   z  S r   rU   rX   s     r	   __ror__zObjectProxy.__ror__7  r   r   c                 0    | xj                   |z  c_         | S r   rU   rX   s     r	   __iadd__zObjectProxy.__iadd__:      E!r   c                 0    | xj                   |z  c_         | S r   rU   rX   s     r	   __isub__zObjectProxy.__isub__>  r   r   c                 0    | xj                   |z  c_         | S r   rU   rX   s     r	   __imul__zObjectProxy.__imul__B  r   r   c                 P    t        j                  | j                  |      | _        | S r   )r   idivr   rX   s     r	   __idiv__zObjectProxy.__idiv__F  s     #==)9)95Ar   c                 P    t        j                  | j                  |      | _        | S r   )r   itruedivr   rX   s     r	   __itruediv__zObjectProxy.__itruediv__J  s"    #,,T-=-=uEr   c                 0    | xj                   |z  c_         | S r   rU   rX   s     r	   __ifloordiv__zObjectProxy.__ifloordiv__N      U"r   c                 0    | xj                   |z  c_         | S r   rU   rX   s     r	   __imod__zObjectProxy.__imod__R  r   r   c                 0    | xj                   |z  c_         | S r   rU   rX   s     r	   __ipow__zObjectProxy.__ipow__V  r   r   c                 0    | xj                   |z  c_         | S r   rU   rX   s     r	   __ilshift__zObjectProxy.__ilshift__Z  r   r   c                 0    | xj                   |z  c_         | S r   rU   rX   s     r	   __irshift__zObjectProxy.__irshift__^  r   r   c                 0    | xj                   |z  c_         | S r   rU   rX   s     r	   __iand__zObjectProxy.__iand__b  r   r   c                 0    | xj                   |z  c_         | S r   rU   rX   s     r	   __ixor__zObjectProxy.__ixor__f  r   r   c                 0    | xj                   |z  c_         | S r   rU   rX   s     r	   __ior__zObjectProxy.__ior__j  r   r   c                     | j                    S r   rU   r   s    r	   __neg__zObjectProxy.__neg__n          r   c                     | j                   S r   rU   r   s    r	   __pos__zObjectProxy.__pos__q  r   r   c                 ,    t        | j                        S r   )absr   r   s    r	   __abs__zObjectProxy.__abs__t  rB   r   c                     | j                    S r   rU   r   s    r	   
__invert__zObjectProxy.__invert__w  r   r   c                 ,    t        | j                        S r   )intr   r   s    r	   __int__zObjectProxy.__int__z  rB   r   c                 ,    t        | j                        S r   )longr   r   s    r	   __long__zObjectProxy.__long__}  rj   r   c                 ,    t        | j                        S r   )floatr   r   s    r	   	__float__zObjectProxy.__float__  s    T%%&&r   c                 ,    t        | j                        S r   )complexr   r   s    r	   __complex__zObjectProxy.__complex__  s    t''((r   c                 ,    t        | j                        S r   )octr   r   s    r	   __oct__zObjectProxy.__oct__  rB   r   c                 ,    t        | j                        S r   )hexr   r   s    r	   __hex__zObjectProxy.__hex__  rB   r   c                 @    t        j                  | j                        S r   )r   indexr   r   s    r	   	__index__zObjectProxy.__index__  s    ~~d..//r   c                 ,    t        | j                        S r   )lenr   r   s    r	   __len__zObjectProxy.__len__  rB   r   c                     || j                   v S r   rU   r   s     r	   __contains__zObjectProxy.__contains__  s    ((((r   c                      | j                   |   S r   rU   r   keys     r	   __getitem__zObjectProxy.__getitem__  s    $$r   c                 "    || j                   |<   y r   rU   )r   r  r   s      r	   __setitem__zObjectProxy.__setitem__  s     %r   c                     | j                   |= y r   rU   r  s     r	   __delitem__zObjectProxy.__delitem__  s    S!r   c                      | j                   || S r   rU   r   ijs      r	   __getslice__zObjectProxy.__getslice__  s    !$$r   c                 "    || j                   || y r   rU   )r   r  r  r   s       r	   __setslice__zObjectProxy.__setslice__  s     %1r   c                 "    | j                   ||= y r   rU   r  s      r	   __delslice__zObjectProxy.__delslice__  s    QqS!r   c                 6    | j                   j                         S r   )r   	__enter__r   s    r	   r  zObjectProxy.__enter__  s    ))++r   c                 :     | j                   j                  |i |S r   )r   __exit__r   r   kwargss      r	   r  zObjectProxy.__exit__  s     (t(($9&99r   c                 ,    t        | j                        S r   )iterr   r   s    r	   __iter__zObjectProxy.__iter__  rj   r   c                     t        d      )Nz#object proxy must define __copy__()NotImplementedErrorr   s    r	   __copy__zObjectProxy.__copy__  s    !"GHHr   c                     t        d      )Nz'object proxy must define __deepcopy__()r!  )r   memos     r	   __deepcopy__zObjectProxy.__deepcopy__  s    !"KLLr   c                     t        d      Nz(object proxy must define __reduce_ex__()r!  r   s    r	   
__reduce__zObjectProxy.__reduce__      !:< 	<r   c                     t        d      r(  r!  )r   protocols     r	   __reduce_ex__zObjectProxy.__reduce_ex__  r*  r   N)ar!   r   r"   	__slots__r7   r#   r$   r=   rA   rE   PY2rH   rM   rP   rS   sys
hexversionrV   rZ   r]   r`   rb   rd   rf   ri   rn   rp   r4   r{   rt   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	  r  r  r  r  r  r  r  r  r#  r&  r)  r-  r   r   r	   r0   r0   I   s/   I( ) ) __* * * * + +%% 	+&* 	+ ~~#	'()))()&&&#3J/,"(((59)(/3))((((((59)(/3))(((!!%!%&')%%0%)%&"%&",:&IM<<r   r0   c                       e Zd Zd Zy)CallableObjectProxyc                 &     | j                   |i |S r   rU   r  s      r	   __call__zCallableObjectProxy.__call__  s    t000r   Nr!   r   r"   r5  r   r   r	   r3  r3    s    1r   r3  c                   $     e Zd Z fdZd Z xZS )PartialCallableObjectProxyc                     t        |      dk  rt        d      |d   |dd  }}t        |      st        d      t        t        |   |       || _        || _        y )N   z(partial type takes at least one argumentr   z#the first argument must be callable)r  r}   callablesuperr8  r7   
_self_args_self_kwargs)r   r   r  r6   r=   s       r	   r7   z#PartialCallableObjectProxy.__init__  s`    t9q=FGGQab ABB($8A"r   c                     | j                   |z   }t        | j                        }|j                  |        | j                  |i |S r   )r=  dictr>  r(   r   )r   r   r  _args_kwargss        r	   r5  z#PartialCallableObjectProxy.__call__  sD    $&t(()vt2'22r   )r!   r   r"   r7   r5  __classcell__r=   s   @r	   r8  r8    s    #3r   r8  c                   F     e Zd ZdZ	 	 d fd	Zd Zd Zd Zd Zd Z	 xZ
S )	_FunctionWrapperBase)_self_instance_self_wrapper_self_enabled_self_binding_self_parentc                    t         t        |   |       t        j	                  | d|       t        j	                  | d|       t        j	                  | d|       t        j	                  | d|       t        j	                  | d|       y )NrG  rH  rI  rJ  rK  )r<  rF  r7   r3   r4   )r   r6   instancewrapperenabledbindingparentr=   s          r	   r7   z_FunctionWrapperBase.__init__  sp     	"D27;4!18<4':4':4':48r   c                    | j                   qt        j                  | j                        sP| j                  j	                  ||      }| j                  ||| j                  | j                  | j                  |       S | S | j                  }| j                  dk(  rn| j                   j                  j	                  ||      }| j                   j                  ||| j                  | j                  | j                  | j                         S | S )Nfunction)
rK  inspectisclassr   __get____bound_function_wrapper__rH  rI  rJ  rG  )r   rM  owner
descriptors       r	   rV  z_FunctionWrapperBase.__get__  s    4 $??4#3#34!--55hF
66z8**D,>,>**D2 2 K &4+=+=+K**66>>e%J $$??$*<*<&&(:(:%%' '
 r   c                    | j                   Ut        | j                         r"| j                         s0 | j                  |i |S | j                   s | j                  |i |S | j                  dv rC| j                  7t        | j                  dd       }|| j                  | j                  |||      S | j                  | j                  | j                  ||      S )N)rS  classmethod__self__)rI  r;  r   rJ  rG  ry   rH  )r   r   r  rM  s       r	   r5  z_FunctionWrapperBase.__call__#  s     )**+))++4++T<V<<'''t''888 !<<""*"4#3#3ZF'--d.>.> &* * !!$"2"2D4G4Gf 	r   c                 j    t        | j                  d      r| j                  j                  ||       y y )N__set_name__)rv   r   r^  )r   rX  r-   s      r	   r^  z!_FunctionWrapperBase.__set_name__E  s/     4##^4))%6 5r   c                 .    t        || j                        S r   )
isinstancer   r   rM  s     r	   __instancecheck__z&_FunctionWrapperBase.__instancecheck__O  s     (D$4$455r   c                     t        |d      r t        |j                  | j                        S t        || j                        S )Nr   )rv   
issubclassr   )r   subclasss     r	   __subclasscheck__z&_FunctionWrapperBase.__subclasscheck__T  s:     8]+h22D4D4DEEh(8(899r   )NrS  N)r!   r   r"   r.  r7   rV  r5  r^  rb  rf  rC  rD  s   @r	   rF  rF    s3    -I <@'+	96p D76

:r   rF  c                       e Zd Zd Zy)BoundFunctionWrapperc                 6   | j                   Ut        | j                         r"| j                         s0 | j                  |i |S | j                   s | j                  |i |S | j                  dk(  ru| j                  A|st        d      |d   |dd  }}t        | j                  |      }| j                  ||||      S | j                  | j                  | j                  ||      S t        | j                  dd       }| j                  | j                  |||      S )NrS  z&missing 1 required positional argumentr   r:  r\  )	rI  r;  r   rJ  rG  r}   r8  rH  ry   )r   r   r  rM  r6   s        r	   r5  zBoundFunctionWrapper.__call__b  s,    )**+))++4++T<V<<'''t''888 +""* #$LMM!%a$qr($4T5E5ExP))'8T6JJ%%d&6&68K8K&" "" t//TBH%%d&6&6$ r   Nr6  r   r   r	   rh  rh  `  s    6r   rh  c                   $     e Zd ZeZd fd	Z xZS )FunctionWrapperc                     t        |t              rd}nFt        |t              rd}n3t        |d      r%t	        j
                  |j                        rd}nd}nd}t        t        | '  |d |||       y )Nr[  staticmethodr\  rS  )
r`  r[  rm  rv   rT  rU  r\  r<  rk  r7   )r   r6   rN  rO  rP  r=   s        r	   r7   zFunctionWrapper.__init__  sk    R g{+#G.$GWj)w//0'$ !Got-gtW	"r   r   )r!   r   r"   rh  rW  r7   rC  rD  s   @r	   rk  rk    s    !5Y" Y"r   rk  WRAPT_DISABLE_EXTENSIONSr:  )r0   r3  r8  rk  rh  rF  c                     t        | t              rt        |        t        j                  |    } | }|j                  d      }|d   }d } |||      }|dd  D ]  }|} |||      } |||fS )N.r   c                     t        j                  |       rCt        j                  |       D ]  }|t        |      v st        |      |   c S  t	        | |      S t	        | |      S r   )rT  rU  getmror)   ry   )rQ  	attributer,   s      r	   lookup_attributez&resolve_path.<locals>.lookup_attribute  s]    ??6"~~f- 2S	)9Y//2 vy1169--r   r:  )r`  string_types
__import__r0  modulessplit)moduler-   rQ  pathrs  rt  originals          r	   resolve_pathr|    s    &,'6V$F::c?DQI.  	2H!"X 7	#FI67 Ix((r   c                     t        | ||       y r   )ru   )rQ  rs  replacements      r	   apply_patchr  ,  s    FI{+r   r   c                 X    t        | |      \  }}} ||g|i |}t        |||       |S r   )r|  r  )	ry  r-   factoryr   r  rQ  rs  r{  rN  s	            r	   wrap_objectr  /  s:    $0$>!VYh000G	7+Nr   c                   $    e Zd Zd Zd Zd Zd Zy)AttributeWrapperc                 <    || _         || _        || _        || _        y r   )rs  r  r   r  )r   rs  r  r   r  s        r	   r7   zAttributeWrapper.__init__=  s    "	r   c                     |j                   | j                     } | j                  |g| j                  i | j                  S r   )r   rs  r  r   r  )r   rM  rX  r   s       r	   rV  zAttributeWrapper.__get__C  s9    !!$..1t||E=DII===r   c                 6    ||j                   | j                  <   y r   r   rs  )r   rM  r   s      r	   __set__zAttributeWrapper.__set__G  s    ,1$..)r   c                 2    |j                   | j                  = y r   r  ra  s     r	   
__delete__zAttributeWrapper.__delete__J  s    dnn-r   N)r!   r   r"   r7   rV  r  r  r   r   r	   r  r  ;  s    >2.r   r  c                     |j                  dd      \  }}t        | |      d   }t        ||||      }t        |||       |S )Nrp  r:  r   )rsplitr|  r  r  )	ry  r-   r  r   r  rz  rs  rQ  rN  s	            r	   wrap_object_attributer  M  sH    kk#q)OD)&$'*Fy'4@G	7+Nr   c                 &      fd}t         |      S )Nc                     |d   }|}nCt        j                  |      rj                  d |      }nj                  |t        |            }t	        ||      S )Nr   rT  rU  rV  r*   rk  )r6   rM  r   r  target_wrappedtarget_wrapperrN  s         r	   _wrapperz"function_wrapper.<locals>._wrapperZ  sT    a$N__X&$__T8<N$__XtH~FN~~>>r   rk  )rN  r  s   ` r	   function_wrapperr  Y  s    ? 7H--r   c                 (    t        | |t        |f      S r   r  rk  )ry  r-   rN  s      r	   wrap_function_wrapperr  e  s    vt_wjAAr   c                       fd}|S )Nc                 *    t        t        | f      S r   r  )rN  ry  r-   s    r	   r  z(patch_function_wrapper.<locals>._wrapperi  s    647*EEr   r   )ry  r-   r  s   `` r	   patch_function_wrapperr  h  s    FOr   c                       fd}|S )Nc                 ,      fd}t         |      S )Nc                     |d   }|	nCt        j                  |      r	j                  d |      n	j                  |t        |            fd}t	        ||      S )Nr   c                     t        	      \  }}}t        |
      }t        |||       	  | |i |t        |||       S # t        |||       w xY wr   )r|  rk  ru   )r6   rM  r   r  rQ  rs  r{  r~  ry  r-   r  s           r	   _executezRtransient_function_wrapper.<locals>._decorator.<locals>._wrapper.<locals>._executew  sY    0<VT0J-H-hG	;79"D3F3FIx8GFIx8s   A Ar  )
r6   rM  r   r  r  r  r  ry  r-   rN  s
         @r	   r  z@transient_function_wrapper.<locals>._decorator.<locals>._wrappero  s[    !!WN!(*!(x!@!(4>!J9 #>8<<r   r  )rN  r  ry  r-   s   ` r	   
_decoratorz.transient_function_wrapper.<locals>._decoratorn  s    	=" w11r   r   )ry  r-   r  s   `` r	   transient_function_wrapperr  m  s    2& r   c                 B    |j                   ry d|_         |	 ||       y y )NT)_self_expired)refproxycallbacks      r	   _weak_function_proxy_callbackr    s*    E  r   c                   *     e Zd ZdZd fd	Zd Z xZS )WeakFunctionProxy)r  rG  c                    |xr t        j                  t        | |      }d| _        t	        |t
              rt        j                  |j                  |      | _        |j                  2t        t        | 3  t        j                  |j                  |             y t        t        | 3  t        j                  ||             y 	 t        j                  |j                  |      | _        t        t        | 3  t        j                  |j                  |             y # t         $ r1 d | _        t        t        | 3  t        j                  ||             Y y w xY w)N)r  r  F)	functoolspartialr  r  r`  rF  weakrefr  rG  rK  r<  r  r7   r  r\  __func__r5   )r   r6   r  	_callbackr=   s       r	   r7   zWeakFunctionProxy.__init__  s,     #!2!2-T!"#	 #g34")++g.D.D#D ##/'7g&:&:IFH  '7gy9; 
	7")++g.>.>	"JD#T3MM'"2"2I>@  	7"&D#T3MM'957	7s   AD 7EEc                     | j                   xr | j                         }| j                  xr | j                  }| | j                  |i |S  |j                  |t        |            |i |S r   )rG  r   rV  r*   )r   r   r  rM  rS  s        r	   r5  zWeakFunctionProxy.__call__  sv    
 &&@4+>+>+@##8(8(8 #4##T4V449x$x.94J6JJr   r   )r!   r   r"   r.  r7   r5  rC  rD  s   @r	   r  r    s    3I+7ZKr   r  )%osr0  r  r   r  rT  version_infor/  
basestringru  rD   r
   r3   r   r*   r&   r0   r3  r8  rF  rh  rk  environget	_wrappersImportErrorr|  r  r  r  r  r  r  r  r  r  r  r   r   r	   <module>r     sC   	 
    	qQ;L4L&),& ),V	:4 	:s<.!56 s<j1+ 1
3 30C:; C:J8/ 8t]"* ]"~	::>>45	8 	8')R, -/r .v .$ 79 
.B
>AK AKw  		s   +C9 9D D