
    HAi                         S SK r S SKrS SKrS r " S S\\5      r " S S5      r " S S\5      r	 " S	 S
\" \	5      5      r
 " S S\
5      r " S S\
5      r " S S\
5      r " S S\5      r " S S\5      rg)    Nc                     U " SU0 5      $ )z%Create a base class with a metaclass.NewBase )metabasess     J/var/www/html/land-ocr/venv/lib/python3.13/site-packages/wrapt/wrappers.pywith_metaclassr	      s    	5"%%    c                       \ rS rSrSrSrg)WrapperNotInitializedError   z
Exception raised when a wrapper is accessed before it has been initialized.
To satisfy different situations where this could arise, we inherit from both
ValueError and AttributeError.
r   N)__name__
__module____qualname____firstlineno____doc____static_attributes__r   r
   r   r   r      s     	r
   r   c                       \ rS rSr\S 5       r\R
                  S 5       r\S 5       r\R
                  S 5       r\S 5       r\S 5       rSr	g	)
_ObjectProxyMethods   c                 .    U R                   R                  $ N__wrapped__r   selfs    r   r   _ObjectProxyMethods.__module__    s    ***r
   c                 $    XR                   l        g r   r   r   values     r   r   r   $   s    &+#r
   c                 .    U R                   R                  $ r   r   r   r   s    r   r   _ObjectProxyMethods.__doc__(   s    '''r
   c                 $    XR                   l        g r   r"   r   s     r   r   r#   ,   s    #( r
   c                 .    U R                   R                  $ r   )r   __dict__r   s    r   r&   _ObjectProxyMethods.__dict__3       (((r
   c                 .    U R                   R                  $ r   )r   __weakref__r   s    r   r*   _ObjectProxyMethods.__weakref__<   s    +++r
   r   N)
r   r   r   r   propertysetterr   r&   r*   r   r   r
   r   r   r      s     + + , , ( ( ^^) ) ) ) , ,r
   r   c                       \ rS rSrS rSrg)_ObjectProxyMetaTypeA   c                 j    UR                  [        [        5      5        [        R	                  XX#5      $ r   )updatevarsr   type__new__)clsnamer   
dictionarys       r   r5   _ObjectProxyMetaType.__new__B   s)     	$234||Cu99r
   r   N)r   r   r   r   r5   r   r   r
   r   r/   r/   A   s    :r
   r/   c                      \ rS rSrSrS r\S 5       rS r\S 5       r \ R                  S 5       r \S 5       r
\
R                  S	 5       r
S
 rS rS rS rS rS rScS jrS rS rS rS rS rS rS rS rS rS rS rS rS rS rS  r S! r!S" r"S# r#S$ r$S% r%S& r&S' r'S( r(S) r)S* r*S+ r+S, r,S- r-S. r.S/ r/S0 r0S1 r1S2 r2S3 r3S4 r4S5 r5S6 r6S7 r7S8 r8S9 r9S: r:S; r;S< r<S= r=S> r>S? r?S@ r@SA rASB rBSC rCSD rDSE rESF rFSG rGSH rHSI rISJ rJSK rKSL rLSM rMSN rNSO rOSP rPSQ rQSR rRSS rSST rTSU rUSV rVSW rWSX rXSY rYSZ rZS[ r[S\ r\S] r]S^ r^S_ r_S` r`Sa raSbrbg)dObjectProxyU   r   c                    Uc3   [         R                  U S5      nUb  O/[         R                  U SU5        O[         R                  U SU5         [         R                  U SUR                  5         [         R                  U SUR
                  5        g! [         a    Sn Nf = f! [         a     NAf = f! [         a     gf = f)z/Create an object proxy around the given object.N__wrapped_factory__r   r   __annotations__)object__getattribute__AttributeError__setattr__r   r?   )r   wrappedcallbacks      r   __init__ObjectProxy.__init__Y   s     ? !2249NO #  ""4@t]G<	t^W5I5IJ	t%68O8OP; "   ,  		  		s5   B !B% 1!B5 B"!B"%
B21B25
CCc                     [         $ r   )r;   r   s    r   __object_proxy__ObjectProxy.__object_proxy__   s    r
   c                 0    [         R                  XU5        g r   )r@   rC   )r   r7   r    s      r   __self_setattr__ObjectProxy.__self_setattr__   s    4u-r
   c                 .    U R                   R                  $ r   r   r   r   s    r   r   ObjectProxy.__name__   r(   r
   c                 $    XR                   l        g r   rO   r   s     r   r   rP      s    $)!r
   c                 .    U R                   R                  $ r   r   	__class__r   s    r   rT   ObjectProxy.__class__   s    )))r
   c                 $    XR                   l        g r   rS   r   s     r   rT   rU      s    %*"r
   c                 ,    [        U R                  5      $ r   )dirr   r   s    r   __dir__ObjectProxy.__dir__       4##$$r
   c                 ,    [        U R                  5      $ r   )strr   r   s    r   __str__ObjectProxy.__str__   r[   r
   c                 ,    [        U R                  5      $ r   )bytesr   r   s    r   	__bytes__ObjectProxy.__bytes__       T%%&&r
   c           
          S[        U 5      R                   S[        U 5      S S[        U R                  5      R                   S[        U R                  5      S S3	$ )N<z at 0xxz for >)r4   r   idr   r   s    r   __repr__ObjectProxy.__repr__   sY    4:&&'vbhq\tDDTDT?U?^?^>__efhimiyiyfz{|e}}~r
   c                 .    [        U R                  U5      $ r   )formatr   )r   format_specs     r   
__format__ObjectProxy.__format__   s    d&&44r
   c                 ,    [        U R                  5      $ r   )reversedr   r   s    r   __reversed__ObjectProxy.__reversed__   s    (())r
   Nc                 .    [        U R                  U5      $ r   )roundr   )r   ndigitss     r   	__round__ObjectProxy.__round__   s    T%%w//r
   c                     [        U R                  [        5      (       d6  [        U R                  S5      (       a  U R                  R	                  U5      $ U R                  4$ )N__mro_entries__)
isinstancer   r4   hasattrr{   )r   r   s     r   r{   ObjectProxy.__mro_entries__   sU    $**D11g/7
 7
 ##33E::  ""r
   c                      U R                   U:  $ r   r   r   others     r   __lt__ObjectProxy.__lt__       %''r
   c                      U R                   U:*  $ r   r   r   s     r   __le__ObjectProxy.__le__       5((r
   c                      U R                   U:H  $ r   r   r   s     r   __eq__ObjectProxy.__eq__   r   r
   c                      U R                   U:g  $ r   r   r   s     r   __ne__ObjectProxy.__ne__   r   r
   c                      U R                   U:  $ r   r   r   s     r   __gt__ObjectProxy.__gt__   r   r
   c                      U R                   U:  $ r   r   r   s     r   __ge__ObjectProxy.__ge__   r   r
   c                 ,    [        U R                  5      $ r   )hashr   r   s    r   __hash__ObjectProxy.__hash__       D$$%%r
   c                 ,    [        U R                  5      $ r   boolr   r   s    r   __nonzero__ObjectProxy.__nonzero__   r   r
   c                 ,    [        U R                  5      $ r   r   r   s    r   __bool__ObjectProxy.__bool__   r   r
   c                    UR                  S5      (       a  [        R                  XU5        g US:X  a  [        R                  XU5         [        R                  U S5         [        R                  U SUR
                  5         [        R                  U S5         [        R                  U SUR                  5        [        U SS 5      nUb  U" 5         g g US:X  a-  [        U R                  X5        [        R                  XU5        g US:X  a-  [        U R                  X5        [        R                  XU5        g [        [        U 5      U5      (       a  [        R                  XU5        g [        U R                  X5        g ! [         a     GN/f = f! [         a     GNf = f! [         a     GNf = f! [         a     GNf = f)N_self_r   r   r?   __wrapped_setattr_fixups__)
startswithr@   rC   __delattr__rB   r   r?   getattrsetattrr   r}   r4   )r   r7   r    r   s       r   rC   ObjectProxy.__setattr__   s   ??8$$t51]"t51""48""49K9KL""4):;""4):E<Q<QR *12D*& *5*, 6 ^#D$$d2t51&&D$$d2t51T$Z&&t51 D$$d2E "  "  "  " sH   F "!F F% !F6 
FF
F"!F"%
F32F36
GGc                     US:X  a2   [         R                  U S5        [         R                  U S5      " 5       $ [	        U R
                  U5      $ ! [         a     Of = f[        S5      e)Nr   r>   __wrapped_get__z wrapper has not been initialized)r@   rA   rB   r   r   r   r   r7   s     r   __getattr__ObjectProxy.__getattr__   ss    
 = J''.CD ..t5FGII t''.. " 
 --OPPs   A 
AAc                 n   UR                  S5      (       a  [        R                  X5        g US:X  a  [        S5      eUS:X  a,  [        R                  X5        [	        U R
                  U5        g [        [        U 5      U5      (       a  [        R                  X5        g [	        U R
                  U5        g )Nr   r   z'__wrapped__ attribute cannot be deletedr   )r   r@   r   	TypeErrordelattrr   r}   r4   r   s     r   r   ObjectProxy.__delattr__  s    ??8$$t*]"EFF^#t*D$$d+T$Z&&t* D$$d+r
   c                      U R                   U-   $ r   r   r   s     r   __add__ObjectProxy.__add__$  r   r
   c                      U R                   U-
  $ r   r   r   s     r   __sub__ObjectProxy.__sub__'  r   r
   c                      U R                   U-  $ r   r   r   s     r   __mul__ObjectProxy.__mul__*  r   r
   c                 D    [         R                  " U R                  U5      $ r   operatortruedivr   r   s     r   __truediv__ObjectProxy.__truediv__-  s     0 0%88r
   c                      U R                   U-  $ r   r   r   s     r   __floordiv__ObjectProxy.__floordiv__0  r   r
   c                      U R                   U-  $ r   r   r   s     r   __mod__ObjectProxy.__mod__3  r   r
   c                 .    [        U R                  U5      $ r   divmodr   r   s     r   
__divmod__ObjectProxy.__divmod__6  s    d&&..r
   c                 0    [        U R                  U/UQ76 $ r   powr   r   r   argss      r   __pow__ObjectProxy.__pow__9  s    4##U2T22r
   c                      U R                   U-  $ r   r   r   s     r   
__lshift__ObjectProxy.__lshift__<  r   r
   c                      U R                   U-	  $ r   r   r   s     r   
__rshift__ObjectProxy.__rshift__?  r   r
   c                      U R                   U-  $ r   r   r   s     r   __and__ObjectProxy.__and__B  r   r
   c                      U R                   U-  $ r   r   r   s     r   __xor__ObjectProxy.__xor__E  r   r
   c                      U R                   U-  $ r   r   r   s     r   __or__ObjectProxy.__or__H  r   r
   c                     XR                   -   $ r   r   r   s     r   __radd__ObjectProxy.__radd__K      ''''r
   c                     XR                   -
  $ r   r   r   s     r   __rsub__ObjectProxy.__rsub__N  r   r
   c                     XR                   -  $ r   r   r   s     r   __rmul__ObjectProxy.__rmul__Q  r   r
   c                 B    [         R                  " XR                  5      $ r   r   r   s     r   __rtruediv__ObjectProxy.__rtruediv__T  s    '7'788r
   c                     XR                   -  $ r   r   r   s     r   __rfloordiv__ObjectProxy.__rfloordiv__W      ((((r
   c                     XR                   -  $ r   r   r   s     r   __rmod__ObjectProxy.__rmod__Z  r   r
   c                 ,    [        XR                  5      $ r   r   r   s     r   __rdivmod__ObjectProxy.__rdivmod__]  s    e--..r
   c                 .    [        XR                  /UQ76 $ r   r   r   s      r   __rpow__ObjectProxy.__rpow__`  s    5**2T22r
   c                     XR                   -  $ r   r   r   s     r   __rlshift__ObjectProxy.__rlshift__c  r   r
   c                     XR                   -	  $ r   r   r   s     r   __rrshift__ObjectProxy.__rrshift__f  r   r
   c                     XR                   -  $ r   r   r   s     r   __rand__ObjectProxy.__rand__i  r   r
   c                     XR                   -  $ r   r   r   s     r   __rxor__ObjectProxy.__rxor__l  r   r
   c                     XR                   -  $ r   r   r   s     r   __ror__ObjectProxy.__ror__o  r   r
   c                     [        U R                  S5      (       a  U =R                  U-  sl        U $ U R                  U R                  U-   5      $ )N__iadd__r}   r   rI   r   s     r   r  ObjectProxy.__iadd__r  G    4##Z00%K(()9)9E)ABBr
   c                     [        U R                  S5      (       a  U =R                  U-  sl        U $ U R                  U R                  U-
  5      $ )N__isub__r  r   s     r   r  ObjectProxy.__isub__y  r  r
   c                     [        U R                  S5      (       a  U =R                  U-  sl        U $ U R                  U R                  U-  5      $ )N__imul__r  r   s     r   r  ObjectProxy.__imul__  r  r
   c                     [        U R                  S5      (       a  U =R                  U-  sl        U $ U R                  U R                  U-  5      $ )N__itruediv__r  r   s     r   r  ObjectProxy.__itruediv__  sG    4##^44%K(()9)9E)ABBr
   c                     [        U R                  S5      (       a  U =R                  U-  sl        U $ U R                  U R                  U-  5      $ )N__ifloordiv__r  r   s     r   r  ObjectProxy.__ifloordiv__  sG    4##_55&K(()9)9U)BCCr
   c                     [        U R                  S5      (       a  U =R                  U-  sl        U $ U R                  U R                  U-  5      $ )N__imod__r  r   s     r   r  ObjectProxy.__imod__  r  r
   c                     [        U R                  S5      (       a  U =R                  U-  sl        U $ U R                  U R                  U-  5      $ )N__ipow__r  r   s     r   r"  ObjectProxy.__ipow__  sG    4##Z00&K(()9)95)@AAr
   c                     [        U R                  S5      (       a  U =R                  U-  sl        U $ U R                  U R                  U-  5      $ )N__ilshift__r  r   s     r   r%  ObjectProxy.__ilshift__  G    4##]33&K(()9)9U)BCCr
   c                     [        U R                  S5      (       a  U =R                  U-  sl        U $ U R                  U R                  U-	  5      $ )N__irshift__r  r   s     r   r)  ObjectProxy.__irshift__  r'  r
   c                     [        U R                  S5      (       a  U =R                  U-  sl        U $ U R                  U R                  U-  5      $ )N__iand__r  r   s     r   r,  ObjectProxy.__iand__  r  r
   c                     [        U R                  S5      (       a  U =R                  U-  sl        U $ U R                  U R                  U-  5      $ )N__ixor__r  r   s     r   r/  ObjectProxy.__ixor__  r  r
   c                     [        U R                  S5      (       a  U =R                  U-  sl        U $ U R                  U R                  U-  5      $ )N__ior__r  r   s     r   r2  ObjectProxy.__ior__  sG    4##Y//%K(()9)9E)ABBr
   c                     U R                   * $ r   r   r   s    r   __neg__ObjectProxy.__neg__          r
   c                     U R                   7$ r   r   r   s    r   __pos__ObjectProxy.__pos__  r7  r
   c                 ,    [        U R                  5      $ r   )absr   r   s    r   __abs__ObjectProxy.__abs__  r[   r
   c                     U R                   ) $ r   r   r   s    r   
__invert__ObjectProxy.__invert__  r7  r
   c                 ,    [        U R                  5      $ r   )intr   r   s    r   __int__ObjectProxy.__int__  r[   r
   c                 ,    [        U R                  5      $ r   )floatr   r   s    r   	__float__ObjectProxy.__float__  rd   r
   c                 ,    [        U R                  5      $ r   )complexr   r   s    r   __complex__ObjectProxy.__complex__  s    t''((r
   c                 ,    [        U R                  5      $ r   )octr   r   s    r   __oct__ObjectProxy.__oct__  r[   r
   c                 ,    [        U R                  5      $ r   )hexr   r   s    r   __hex__ObjectProxy.__hex__  r[   r
   c                 B    [         R                  " U R                  5      $ r   )r   indexr   r   s    r   	__index__ObjectProxy.__index__  s    ~~d..//r
   c                      U R                   U-  $ r   r   r   s     r   
__matmul__ObjectProxy.__matmul__  r   r
   c                     XR                   -  $ r   r   r   s     r   __rmatmul__ObjectProxy.__rmatmul__  r   r
   c                     [        U R                  S5      (       a  U =R                  U-  sl        U $ U R                  U R                  U-  5      $ )N__imatmul__r  r   s     r   ra  ObjectProxy.__imatmul__  sG    4##]33%K(()9)9E)ABBr
   c                 ,    [        U R                  5      $ r   )lenr   r   s    r   __len__ObjectProxy.__len__  r[   r
   c                     XR                   ;   $ r   r   r   s     r   __contains__ObjectProxy.__contains__  r   r
   c                      U R                   U   $ r   r   r   keys     r   __getitem__ObjectProxy.__getitem__  s    $$r
   c                      X R                   U'   g r   r   )r   rl  r    s      r   __setitem__ObjectProxy.__setitem__  s     %r
   c                     U R                   U	 g r   r   rk  s     r   __delitem__ObjectProxy.__delitem__  s    S!r
   c                     U R                   X $ r   r   r   ijs      r   __getslice__ObjectProxy.__getslice__  s    $$r
   c                     X0R                   X& g r   r   )r   rw  rx  r    s       r   __setslice__ObjectProxy.__setslice__  s     %r
   c                      U R                   X2	 g r   r   rv  s      r   __delslice__ObjectProxy.__delslice__  s    QS!r
   c                 6    U R                   R                  5       $ r   )r   	__enter__r   s    r   r  ObjectProxy.__enter__  s    ))++r
   c                 :    U R                   R                  " U0 UD6$ r   )r   __exit__r   r   kwargss      r   r  ObjectProxy.__exit__  s    (($9&99r
   c                 6    U R                   R                  5       $ r   )r   
__aenter__r   s    r   r  ObjectProxy.__aenter__  s    **,,r
   c                 :    U R                   R                  " U0 UD6$ r   )r   	__aexit__r  s      r   r  ObjectProxy.__aexit__  s    ))4:6::r
   c                     [        S5      e)Nz#object proxy must define __copy__()NotImplementedErrorr   s    r   __copy__ObjectProxy.__copy__  s    !"GHHr
   c                     [        S5      e)Nz'object proxy must define __deepcopy__()r  )r   memos     r   __deepcopy__ObjectProxy.__deepcopy__  s    !"KLLr
   c                     [        S5      e)Nz%object proxy must define __reduce__()r  r   s    r   
__reduce__ObjectProxy.__reduce__  s    !"IJJr
   c                     [        S5      e)Nz(object proxy must define __reduce_ex__()r  )r   protocols     r   __reduce_ex__ObjectProxy.__reduce_ex__   s    !"LMMr
   r   r   )cr   r   r   r   	__slots__rF   r,   rI   rL   r-   rT   rY   r^   rb   rj   ro   rs   rx   r{   r   r   r   r   r   r   r   r   r   rC   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/  r2  r5  r9  r=  r@  rD  rH  rL  rP  rT  rX  r[  r^  ra  re  rh  rm  rp  rs  ry  r|  r  r  r  r  r  r  r  r  r  r   r   r
   r   r;   r;   U   sE   I%N  . ) ) __* * * * + +%%'@5*0#()))()&&&+3Z/0,"(((9)(/3))((((((9)(/3))(((CCCCDBDDCCC!!%!%')%%0((C%)%&"%&",:-;IMKNr
   r;   c                       \ rS rSrS rSrg)CallableObjectProxyi$  c                  :    S nU" U 6 u  p0UR                   " U 0 UD6$ )Nc                     X4$ r   r   r   r   s     r   _unpack_self2CallableObjectProxy.__call__.<locals>._unpack_self'  
    :r
   r   )r   r  r  r   s       r   __call__CallableObjectProxy.__call__&  s+    	 "4(
000r
   r   Nr   r   r   r   r  r   r   r
   r   r  r  $  s    1r
   r  c                   2   ^  \ rS rSrSrU 4S jrS rSrU =r$ )PartialCallableObjectProxyi/  zUA callable object proxy that supports partial application of arguments
and keywords.
c                     > S nU" U 6 u  p0[        U 5      S:  a  [        S5      eU S   U SS p[        U5      (       d  [        S5      e[        [        U]  U5        Xl        Xl        g)zCreate a callable object proxy with partial application of the given
arguments and keywords. This behaves the same as `functools.partial`, but
implemented using the `ObjectProxy` class to provide better support for
introspection.
c                     X4$ r   r   r  s     r   r  9PartialCallableObjectProxy.__init__.<locals>._unpack_self;  r  r
      z(partial type takes at least one argumentr   Nz#the first argument must be callable)rd  r   callablesuperr  rF   
_self_args_self_kwargs)r   r  r  r   rD   rT   s        r   rF   #PartialCallableObjectProxy.__init__4  sp    	 "4(
t9q=FGGQab  ABB($8A"r
   c                      S nU" U 6 u  p0UR                   U -   n[        UR                  5      nUR                  U5        UR                  " U0 UD6$ )Nc                     X4$ r   r   r  s     r   r  9PartialCallableObjectProxy.__call__.<locals>._unpack_selfN  r  r
   )r  dictr  r2   r   )r   r  r  r   _args_kwargss         r   r  #PartialCallableObjectProxy.__call__M  sU    	 "4(
$&t(()v2'22r
   )r  r  )	r   r   r   r   r   rF   r  r   __classcell__rT   s   @r   r  r  /  s    #23 3r
   r  c                   V   ^  \ rS rSrSr    S
U 4S jjrS rS rS rS r	S r
S	rU =r$ )_FunctionWrapperBasei[  )_self_instance_self_wrapper_self_enabled_self_binding_self_parent_self_ownerc                 @  > [         [        U ]  U5        [        R	                  U SU5        [        R	                  U SU5        [        R	                  U SU5        [        R	                  U SU5        [        R	                  U SU5        [        R	                  U SU5        g )Nr  r  r  r  r  r  )r  r  rF   r@   rC   )	r   rD   instancewrapperenabledbindingparentownerrT   s	           r   rF   _FunctionWrapperBase.__init__f  s     	"D27;4!18<4':4':4':4846r
   c           	      0   U R                   c}  U R                  S:X  a  U $ U R                  S:X  a  U $ [        U R                  SS 5      nUc  U $ U" X5      nU R	                  UUU R
                  U R                  U R                  U U5      $ U R                  c~  U R                  S;   an  U R                   R                  R                  X5      nU R                   R	                  UUU R
                  U R                  U R                  U R                   U5      $ U $ )Nbuiltinclass__get__)functioninstancemethodr  )	r  r  r   r   __bound_function_wrapper__r  r  r  r  )r   r  r  binder
descriptors        r   r  _FunctionWrapperBase.__get__z  s&   . $ !!Y.!!W,T--y$?F~0J22"""""" $ &4+=+= B
 ,

 **66>>xOJ$$??""""""!!  r
   c                     S nU" U 6 u  p0UR                   be  [        UR                   5      (       a(  UR                  5       (       d  UR                  " U 0 UD6$ O#UR                   (       d  UR                  " U 0 UD6$ UR                  S;   aD  UR                  c7  [        UR                  SS 5      nUb  UR                  UR                  X@U5      $ UR                  UR                  UR                  X5      $ )Nc                     X4$ r   r   r  s     r   r  3_FunctionWrapperBase.__call__.<locals>._unpack_self  r  r
   )r  r  classmethodr  __self__)r  r  r   r  r  r   r  )r   r  r  r   r  s        r   r  _FunctionWrapperBase.__call__  s    	 "4(
 )**++))++++T<V<< ,''''888  "
 
 ""*"4#3#3ZF'--d.>.>PVWW !!$"2"2D4G4GVVr
   c                 r    [        U R                  S5      (       a  U R                  R                  X5        g g )N__set_name__)r}   r   r  )r   r  r7   s      r   r  !_FunctionWrapperBase.__set_name__  s0     4##^44))%6 5r
   c                 ,    [        XR                  5      $ r   )r|   r   )r   r  s     r   __instancecheck__&_FunctionWrapperBase.__instancecheck__  s     ($4$455r
   c                     [        US5      (       a   [        UR                  U R                  5      $ [        XR                  5      $ )Nr   )r}   
issubclassr   )r   subclasss     r   __subclasscheck__&_FunctionWrapperBase.__subclasscheck__   s;     8]++h22D4D4DEEh(8(899r
   r   )Nr  NN)r   r   r   r   r  rF   r  r  r  r  r  r   r  r  s   @r   r  r  [  s?    I 7(KZ(WT76

: 
:r
   r  c                       \ rS rSrS rSrg)BoundFunctionWrapperi  c                     S nU" U 6 u  p0UR                   be  [        UR                   5      (       a(  UR                  5       (       d  UR                  " U 0 UD6$ O#UR                   (       d  UR                  " U 0 UD6$ UR                  S:X  a  UR                  cR  U (       aK  U S   U SS  pT[        XCR                  5      (       a(  [        UR                  U5      nUR                  XdXQ5      $ UR                  UR                  UR                  X5      $ UR                  S:X  aw  UR                  cC  U (       d  [        S5      eU S   U SS  p[        UR                  U5      nUR                  XdX5      $ UR                  UR                  UR                  X5      $ [        UR                  SS 5      nUR                  UR                  X@U5      $ )Nc                     X4$ r   r   r  s     r   r  3BoundFunctionWrapper.__call__.<locals>._unpack_self  r  r
   r  r   r  r  z&missing 1 required positional argumentr  )r  r  r   r  r  r|   r  r  r  r   r   )r   r  r  r   r  newargsrD   s          r   r  BoundFunctionWrapper.__call__  s   	 "4(
 )**++))++++T<V<< ,''''888
 +""*t$(GT!"X'h(8(89989I9I8TG--gQQ%%  $"5"5t  :-""* #$LMM!%a$qr($4T5E5ExP))'TJJ%%  $"5"5t $ t//TBH%%d&6&6OOr
   r   Nr  r   r
   r   r  r    s	    EPr
   r  c                   4   ^  \ rS rSrSr\rSU 4S jjrSrU =r	$ )FunctionWrapperiW  z
A wrapper for callable objects that can be used to apply decorators to
functions, methods, classmethods, and staticmethods, or any other callable.
It handles binding and unbinding of methods, and allows for the wrapper to
be enabled or disabled.
c                 R  > Sn[        U[        5      (       a  UR                  nU(       d  [        R                  " U5      (       a  SnO[        R
                  " U5      (       a  SnO[        R                  " U5      (       a  SnO[        U[        5      (       a  SnOt[        U[        5      (       a  SnO\[        US5      (       aI  [        R                  " UR                  5      (       a  SnO#[        R                  " U5      (       a  SnOS	nOS	n[        [        U ];  USX#U5        g)
a  
Initialize the `FunctionWrapper` with the `wrapped` callable, the
`wrapper` function, and an optional `enabled` argument. The `enabled`
argument can be a boolean or a callable that returns a boolean. When a
callable is provided, it will be called each time the wrapper is
invoked to determine if the wrapper function should be executed or
whether the wrapped function should be called directly. If `enabled`
is not provided, the wrapper is enabled by default.
Nr  r  r  r  staticmethodr  r  r  )r|   r  r  inspect	isbuiltin
isfunctionisclassr  r  r}   r  ismethodr  r  rF   )r   rD   r  r  r  rT   s        r   rF   FunctionWrapper.__init__a  s    f g344++G  ))###G,,$))!G[11'G\22(*--??7#3#344+G%%g...G(G %ot-gtWwWr
   r   r   )
r   r   r   r   r   r  r  rF   r   r  r  s   @r   r  r  W  s     "6sX sXr
   r  )r  r   sysr	   
ValueErrorrB   r   r   r4   r/   r;   r  r  r  r  r  r   r
   r   <module>r     s      
&
	^ 	), ),X	:4 	:(LN.!56 LN^1+ 1)3 )3Xo:; o:dGP/ GPT}X* }Xr
   