
    ~i                         d dl Z d dlZd dlZd Z G d dee      Z G d d      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y)    Nc                      | d|i       S )z%Create a base class with a metaclass.NewBase )metabasess     b/var/www/catia.catastroantioquia-mas.com/valormasv2/lib/python3.12/site-packages/wrapt/wrappers.pywith_metaclassr	      s    	5"%%    c                       e Zd ZdZy)WrapperNotInitializedErrorz
    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.
    N)__name__
__module____qualname____doc__r   r
   r   r   r      s     	r
   r   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__r   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   r   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__3       (((r
   c                 .    | j                   j                  S r   )r   __weakref__r   s    r   r#   z_ObjectProxyMethods.__weakref__<   s    +++r
   N)r   r   r   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__B   s-     	$234||Cuj99r
   N)r   r   r   r,   r   r
   r   r'   r'   A   s    :r
   r'   c                      e Zd ZdZd Zed        Zd Zed        Z e j                  d        Z ed        Z	e	j                  d        Z	d	 Z
d
 Zd Zd Zd Zd Zdad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/ Z/d0 Z0d1 Z1d2 Z2d3 Z3d4 Z4d5 Z5d6 Z6d7 Z7d8 Z8d9 Z9d: Z:d; Z;d< Z<d= Z=d> Z>d? Z?d@ Z@dA ZAdB ZBdC ZCdD ZDdE ZEdF ZFdG ZGdH ZHdI ZIdJ ZJdK ZKdL ZLdM ZMdN ZNdO ZOdP ZPdQ ZQdR ZRdS ZSdT ZTdU ZUdV ZVdW ZWdX ZXdY ZYdZ ZZd[ Z[d\ Z\d] Z]d^ Z^d_ Z_d` Z`y)bObjectProxyr   c                    |2	 t         j                  | d      }|n/t         j                  | d|       nt         j                  | d|       	 t         j                  | d|j                         	 t         j                  | d|j
                         y# t        $ r d}Y w xY w# t        $ r Y ?w xY w# t        $ r Y yw xY w)z/Create an object proxy around the given object.N__wrapped_factory__r   r   __annotations__)object__getattribute__AttributeError__setattr__r   r4   )r   wrappedcallbacks      r   __init__zObjectProxy.__init__Y   s     ? !2249NO #  ""4@t]G<	t^W5I5IJ	t%68O8OP; "   ,  		  		s5   B !B" /!B1 BB"	B.-B.1	B=<B=c                     t         S r   )r1   r   s    r   __object_proxy__zObjectProxy.__object_proxy__   s    r
   c                 2    t         j                  | ||       y r   )r5   r8   )r   r.   r   s      r   __self_setattr__zObjectProxy.__self_setattr__   s    4u-r
   c                 .    | j                   j                  S r   r   r   r   s    r   r   zObjectProxy.__name__   r!   r
   c                 &    || j                   _        y r   rA   r   s     r   r   zObjectProxy.__name__   s    $)!r
   c                 .    | j                   j                  S r   r   	__class__r   s    r   rE   zObjectProxy.__class__   s    )))r
   c                 &    || j                   _        y r   rD   r   s     r   rE   zObjectProxy.__class__   s    %*"r
   c                 ,    t        | j                        S r   )dirr   r   s    r   __dir__zObjectProxy.__dir__       4##$$r
   c                 ,    t        | j                        S r   )strr   r   s    r   __str__zObjectProxy.__str__   rJ   r
   c                 ,    t        | j                        S r   )bytesr   r   s    r   	__bytes__zObjectProxy.__bytes__       T%%&&r
   c           
          dt        |       j                   dt        |       ddt        | j                        j                   dt        | j                        dd	S )N<z at 0xxz for >)r+   r   idr   r   s    r   __repr__zObjectProxy.__repr__   sY    4:&&'vbhq\tDDTDT?U?^?^>__efhimiyiyfz{|e}}~r
   c                 .    t        | j                  |      S r   )formatr   )r   format_specs     r   
__format__zObjectProxy.__format__   s    d&&44r
   c                 ,    t        | j                        S r   )reversedr   r   s    r   __reversed__zObjectProxy.__reversed__   s    (())r
   Nc                 .    t        | j                  |      S r   )roundr   )r   ndigitss     r   	__round__zObjectProxy.__round__   s    T%%w//r
   c                     t        | j                  t              s1t        | j                  d      r| j                  j	                  |      S | j                  fS )N__mro_entries__)
isinstancer   r+   hasattrrd   )r   r   s     r   rd   zObjectProxy.__mro_entries__   sM    $**D1g/7
 ##33E::  ""r
   c                      | j                   |k  S r   r   r   others     r   __lt__zObjectProxy.__lt__       %''r
   c                      | j                   |k  S r   rh   ri   s     r   __le__zObjectProxy.__le__       5((r
   c                      | j                   |k(  S r   rh   ri   s     r   __eq__zObjectProxy.__eq__   ro   r
   c                      | j                   |k7  S r   rh   ri   s     r   __ne__zObjectProxy.__ne__   ro   r
   c                      | j                   |kD  S r   rh   ri   s     r   __gt__zObjectProxy.__gt__   rl   r
   c                      | j                   |k\  S r   rh   ri   s     r   __ge__zObjectProxy.__ge__   ro   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__   r{   r
   c                 ,    t        | j                        S r   r}   r   s    r   __bool__zObjectProxy.__bool__   r{   r
   c                 z   |j                  d      rt        j                  | ||       y |dk(  rt        j                  | ||       	 t        j                  | d       	 t        j                  | d|j
                         	 t        j                  | d       	 t        j                  | d|j                         t        | dd       }| |        y 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 w xY w)N_self_r   r   r4   __wrapped_setattr_fixups__)
startswithr5   r8   __delattr__r7   r   r4   getattrsetattrr   rf   r+   )r   r.   r   r   s       r   r8   zObjectProxy.__setattr__   s   ??8$tT51]"tT51""48""49K9KL""4):;""4):E<Q<QR *12D*& *5*, 6 ^#D$$dE2tT51&&D$$dE2tT51T$Z&tT51 D$$dE2E "  "  "  " sH   E= !F  F !F- =	F
	F
	FF	F*)F*-	F:9F:c                     |dk(  r1	 t         j                  | d       t        j                  | d             S t	        | j
                  |      S # t        $ r Y t        d      w xY w)Nr   r3   __wrapped_get__z wrapper has not been initialized)r5   r6   r7   r   r   r   r   r.   s     r   __getattr__zObjectProxy.__getattr__   ss    
 = J''.CD ..t5FGII t''.. "  --OPPs   A 	A#"A#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 )Nr   r   z'__wrapped__ attribute cannot be deletedr   )r   r5   r   	TypeErrordelattrr   rf   r+   r   s     r   r   zObjectProxy.__delattr__  s    ??8$tT*]"EFF^#tT*D$$d+T$Z&tT* D$$d+r
   c                      | j                   |z   S r   rh   ri   s     r   __add__zObjectProxy.__add__$  rl   r
   c                      | j                   |z
  S r   rh   ri   s     r   __sub__zObjectProxy.__sub__'  rl   r
   c                      | j                   |z  S r   rh   ri   s     r   __mul__zObjectProxy.__mul__*  rl   r
   c                 B    t        j                  | j                  |      S r   operatortruedivr   ri   s     r   __truediv__zObjectProxy.__truediv__-  s     0 0%88r
   c                      | j                   |z  S r   rh   ri   s     r   __floordiv__zObjectProxy.__floordiv__0  ro   r
   c                      | j                   |z  S r   rh   ri   s     r   __mod__zObjectProxy.__mod__3  rl   r
   c                 .    t        | j                  |      S r   divmodr   ri   s     r   
__divmod__zObjectProxy.__divmod__6  s    d&&..r
   c                 0    t        | j                  |g| S r   powr   r   rj   argss      r   __pow__zObjectProxy.__pow__9  s    4##U2T22r
   c                      | j                   |z  S r   rh   ri   s     r   
__lshift__zObjectProxy.__lshift__<  ro   r
   c                      | j                   |z	  S r   rh   ri   s     r   
__rshift__zObjectProxy.__rshift__?  ro   r
   c                      | j                   |z  S r   rh   ri   s     r   __and__zObjectProxy.__and__B  rl   r
   c                      | j                   |z  S r   rh   ri   s     r   __xor__zObjectProxy.__xor__E  rl   r
   c                      | j                   |z  S r   rh   ri   s     r   __or__zObjectProxy.__or__H  rl   r
   c                      || j                   z   S r   rh   ri   s     r   __radd__zObjectProxy.__radd__K      t''''r
   c                      || j                   z
  S r   rh   ri   s     r   __rsub__zObjectProxy.__rsub__N  r   r
   c                      || j                   z  S r   rh   ri   s     r   __rmul__zObjectProxy.__rmul__Q  r   r
   c                 B    t        j                  || j                        S r   r   ri   s     r   __rtruediv__zObjectProxy.__rtruediv__T  s    t'7'788r
   c                      || j                   z  S r   rh   ri   s     r   __rfloordiv__zObjectProxy.__rfloordiv__W      ((((r
   c                      || j                   z  S r   rh   ri   s     r   __rmod__zObjectProxy.__rmod__Z  r   r
   c                 .    t        || j                        S r   r   ri   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   rh   ri   s     r   __rlshift__zObjectProxy.__rlshift__c  r   r
   c                      || j                   z	  S r   rh   ri   s     r   __rrshift__zObjectProxy.__rrshift__f  r   r
   c                      || j                   z  S r   rh   ri   s     r   __rand__zObjectProxy.__rand__i  r   r
   c                      || j                   z  S r   rh   ri   s     r   __rxor__zObjectProxy.__rxor__l  r   r
   c                      || j                   z  S r   rh   ri   s     r   __ror__zObjectProxy.__ror__o  r   r
   c                     t        | j                  d      r| xj                  |z  c_        | S | j                  | j                  |z         S )N__iadd__rf   r   r=   ri   s     r   r   zObjectProxy.__iadd__r  D    4##Z0%K(()9)9E)ABBr
   c                     t        | j                  d      r| xj                  |z  c_        | S | j                  | j                  |z
        S )N__isub__r   ri   s     r   r   zObjectProxy.__isub__y  r   r
   c                     t        | j                  d      r| xj                  |z  c_        | S | j                  | j                  |z        S )N__imul__r   ri   s     r   r   zObjectProxy.__imul__  r   r
   c                     t        | j                  d      r| xj                  |z  c_        | S | j                  | j                  |z        S )N__itruediv__r   ri   s     r   r   zObjectProxy.__itruediv__  sD    4##^4%K(()9)9E)ABBr
   c                     t        | j                  d      r| xj                  |z  c_        | S | j                  | j                  |z        S )N__ifloordiv__r   ri   s     r   r   zObjectProxy.__ifloordiv__  sD    4##_5&K(()9)9U)BCCr
   c                     t        | j                  d      r| xj                  |z  c_        | S | j                  | j                  |z        S )N__imod__r   ri   s     r   r   zObjectProxy.__imod__  r   r
   c                     t        | j                  d      r| xj                  |z  c_        | S | j                  | j                  |z        S )N__ipow__r   ri   s     r   r   zObjectProxy.__ipow__  sD    4##Z0&K(()9)95)@AAr
   c                     t        | j                  d      r| xj                  |z  c_        | S | j                  | j                  |z        S )N__ilshift__r   ri   s     r   r   zObjectProxy.__ilshift__  D    4##]3&K(()9)9U)BCCr
   c                     t        | j                  d      r| xj                  |z  c_        | S | j                  | j                  |z	        S )N__irshift__r   ri   s     r   r   zObjectProxy.__irshift__  r   r
   c                     t        | j                  d      r| xj                  |z  c_        | S | j                  | j                  |z        S )N__iand__r   ri   s     r   r   zObjectProxy.__iand__  r   r
   c                     t        | j                  d      r| xj                  |z  c_        | S | j                  | j                  |z        S )N__ixor__r   ri   s     r   r   zObjectProxy.__ixor__  r   r
   c                     t        | j                  d      r| xj                  |z  c_        | S | j                  | j                  |z        S )N__ior__r   ri   s     r   r   zObjectProxy.__ior__  sD    4##Y/%K(()9)9E)ABBr
   c                     | j                    S r   rh   r   s    r   __neg__zObjectProxy.__neg__          r
   c                     | j                   S r   rh   r   s    r   __pos__zObjectProxy.__pos__  r   r
   c                 ,    t        | j                        S r   )absr   r   s    r   __abs__zObjectProxy.__abs__  rJ   r
   c                     | j                    S r   rh   r   s    r   
__invert__zObjectProxy.__invert__  r   r
   c                 ,    t        | j                        S r   )intr   r   s    r   __int__zObjectProxy.__int__  rJ   r
   c                 ,    t        | j                        S r   )floatr   r   s    r   	__float__zObjectProxy.__float__  rQ   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__  rJ   r
   c                 ,    t        | j                        S r   )hexr   r   s    r   __hex__zObjectProxy.__hex__  rJ   r
   c                 @    t        j                  | j                        S r   )r   indexr   r   s    r   	__index__zObjectProxy.__index__  s    ~~d..//r
   c                      | j                   |z  S r   rh   ri   s     r   
__matmul__zObjectProxy.__matmul__  rl   r
   c                      || j                   z  S r   rh   ri   s     r   __rmatmul__zObjectProxy.__rmatmul__  r   r
   c                     t        | j                  d      r| xj                  |z  c_        | S | j                  | j                  |z        S )N__imatmul__r   ri   s     r   r  zObjectProxy.__imatmul__  sD    4##]3%K(()9)9E)ABBr
   c                 ,    t        | j                        S r   )lenr   r   s    r   __len__zObjectProxy.__len__  rJ   r
   c                     || j                   v S r   rh   r   s     r   __contains__zObjectProxy.__contains__  s    ((((r
   c                      | j                   |   S r   rh   r   keys     r   __getitem__zObjectProxy.__getitem__  s    $$r
   c                 "    || j                   |<   y r   rh   )r   r  r   s      r   __setitem__zObjectProxy.__setitem__  s     %r
   c                     | j                   |= y r   rh   r  s     r   __delitem__zObjectProxy.__delitem__  s    S!r
   c                      | j                   || S r   rh   r   ijs      r   __getslice__zObjectProxy.__getslice__  s    !$$r
   c                 "    || j                   || y r   rh   )r   r  r  r   s       r   __setslice__zObjectProxy.__setslice__  s     %1r
   c                 "    | j                   ||= y r   rh   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                 6    | j                   j                         S r   )r   
__aenter__r   s    r   r)  zObjectProxy.__aenter__  s    **,,r
   c                 :     | j                   j                  |i |S r   )r   	__aexit__r&  s      r   r+  zObjectProxy.__aexit__  s     )t))4:6::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__()r-  r   s    r   
__reduce__zObjectProxy.__reduce__  s    !"IJJr
   c                     t        d      )Nz(object proxy must define __reduce_ex__()r-  )r   protocols     r   __reduce_ex__zObjectProxy.__reduce_ex__   s    !"LMMr
   r   )ar   r   r   	__slots__r;   r$   r=   r?   r%   rE   rI   rM   rP   rW   r[   r^   rb   rd   rk   rn   rq   rs   ru   rw   rz   r   r   r8   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/  r2  r4  r7  r   r
   r   r1   r1   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
   r1   c                       e Zd Zd Zy)CallableObjectProxyc                  <    d } ||  \  }}  |j                   | i |S )Nc                 
    | |fS r   r   r   r   s     r   _unpack_selfz2CallableObjectProxy.__call__.<locals>._unpack_self'      :r
   rh   )r   r'  r>  r   s       r   __call__zCallableObjectProxy.__call__&  s/    	 "4(
dt000r
   Nr   r   r   r@  r   r
   r   r:  r:  $  s    1r
   r:  c                   (     e Zd ZdZ fdZd Z xZS )PartialCallableObjectProxyz]A callable object proxy that supports partial application of arguments
    and keywords.
    c                      d } ||  \  }} t        |       dk  rt        d      | d   | dd } }t        |      st        d      t        t        |  |       | |_        ||_        y)a  Create 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                 
    | |fS r   r   r=  s     r   r>  z9PartialCallableObjectProxy.__init__.<locals>._unpack_self;  r?  r
      z(partial type takes at least one argumentr   Nz#the first argument must be callable)r  r   callablesuperrC  r;   
_self_args_self_kwargs)r   r'  r>  r   r9   rE   s        r   r;   z#PartialCallableObjectProxy.__init__4  su    	 "4(
dt9q=FGGQab ABB($8A"r
   c                      d } ||  \  }} |j                   | z   }t        |j                        }|j                  |        |j                  |i |S )Nc                 
    | |fS r   r   r=  s     r   r>  z9PartialCallableObjectProxy.__call__.<locals>._unpack_selfN  r?  r
   )rI  dictrJ  r)   r   )r   r'  r>  r   _args_kwargss         r   r@  z#PartialCallableObjectProxy.__call__M  sY    	 "4(
d$&t(()vt2'22r
   )r   r   r   r   r;   r@  __classcell__rE   s   @r   rC  rC  /  s    #23r
   rC  c                   J     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_parent_self_ownerc                 @   t         t        |   |       t        j	                  | d|       t        j	                  | d|       t        j	                  | d|       t        j	                  | d|       t        j	                  | d|       t        j	                  | d|       y )NrT  rU  rV  rW  rX  rY  )rH  rS  r;   r5   r8   )	r   r9   instancewrapperenabledbindingparentownerrE   s	           r   r;   z_FunctionWrapperBase.__init__f  s     	"D27;4!18<4':4':4':4846r
   c           	      &   | j                   {| j                  dk(  r| S | j                  dk(  r| S t        | j                  dd       }|| S  |||      }| j	                  ||| j
                  | j                  | j                  | |      S | j                  }| j                  dv ro| j                   j                  j                  ||      }| j                   j	                  ||| j
                  | j                  | j                  | j                   |      S | S )Nbuiltinclass__get__)functioninstancemethodrG  )	rX  rW  r   r   __bound_function_wrapper__rU  rV  rT  rd  )r   r[  r`  binder
descriptors        r   rd  z_FunctionWrapperBase.__get__z  s*   . $ !!Y.!!W,T--y$?F~%0J22"""""" $ &4+=+= B
 ,

 **66>>xOJ$$??""""""!!  r
   c                     d } ||  \  }} |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 )Nc                 
    | |fS r   r   r=  s     r   r>  z3_FunctionWrapperBase.__call__.<locals>._unpack_self  r?  r
   )re  rf  classmethodrG  __self__)rV  rG  r   rW  rT  r   rU  )r   r'  r>  r   r[  s        r   r@  z_FunctionWrapperBase.__call__  s    	 "4(
d )**+))++4++T<V<<'''t''888  "
 
 ""*"4#3#3ZF'--d.>.>$PVWW !!$"2"2D4G4GvVVr
   c                 j    t        | j                  d      r| j                  j                  ||       y y )N__set_name__)rf   r   ro  )r   r`  r.   s      r   ro  z!_FunctionWrapperBase.__set_name__  s/     4##^4))%6 5r
   c                 .    t        || j                        S r   )re   r   )r   r[  s     r   __instancecheck__z&_FunctionWrapperBase.__instancecheck__  s     (D$4$455r
   c                     t        |d      r t        |j                  | j                        S t        || j                        S )Nr   )rf   
issubclassr   )r   subclasss     r   __subclasscheck__z&_FunctionWrapperBase.__subclasscheck__   s:     8]+h22D4D4DEEh(8(899r
   )NrG  NN)r   r   r   r8  r;   rd  r@  ro  rq  ru  rP  rQ  s   @r   rS  rS  [  s:    I 7(KZ(WT76

:r
   rS  c                       e Zd Zd Zy)BoundFunctionWrapperc                  j   d } ||  \  }} |j                   Ut        |j                         r"|j                         s0 |j                  | i |S |j                   s |j                  | i |S |j                  dk(  r|j                  L| rJ| d   | dd  }}t        ||j                        r*t        |j                  |      }|j                  ||||      S |j                  |j                  |j                  | |      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 )Nc                 
    | |fS r   r   r=  s     r   r>  z3BoundFunctionWrapper.__call__.<locals>._unpack_self  r?  r
   re  r   rF  rG  z&missing 1 required positional argumentrm  )rV  rG  r   rW  rT  re   rY  rC  rU  r   r   )r   r'  r>  r   r[  newargsr9   s          r   r@  zBoundFunctionWrapper.__call__  s   	 "4(
d )**+))++4++T<V<<'''t''888
 +""*t$(GT!"X'h(8(8989I9I8TG--gx&QQ%%  $"5"5tV  :-""* #$LMM!%a$qr($4T5E5ExP))'8T6JJ%%  $"5"5tV $ t//TBH%%d&6&6$OOr
   NrA  r   r
   r   rw  rw    s	    EPr
   rw  c                   (     e Zd ZdZeZd fd	Z xZS )FunctionWrappera  
    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                    d}t        |t              r|j                  }|st        j                  |      rd}nt        j
                  |      rd}nt        j                  |      rd}nqt        |t              rd}n^t        |t              rd}nKt        |d      r=t        j                  |j                        rd}nt        j                  |      rd}nd	}nd	}t        t        | ;  |d|||       y)
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.
        Nrb  re  rc  rl  staticmethodrm  rf  rG  )re   rS  rW  inspect	isbuiltin
isfunctionisclassrl  r~  rf   rm  ismethodrH  r|  r;   )r   r9   r\  r]  r^  rE   s        r   r;   zFunctionWrapper.__init__a  s    f g34++G  )###G,$)!G[1'G\2(*-??7#3#34+G%%g..G(G %ot-gtWgwWr
   r   )r   r   r   r   rw  rg  r;   rP  rQ  s   @r   r|  r|  W  s     "6sX sXr
   r|  )r  r   sysr	   
ValueErrorr7   r   r   r+   r'   r1   r:  rC  rS  rw  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
   