o
    2h                     @   s   d dl Z d dlZd dlZdd ZG dd deeZG dd dZG dd	 d	eZ	G d
d dee	Z
G dd de
ZG dd de
ZG dd de
ZG dd deZG dd deZdS )    Nc                 G   s   | d|i S )z%Create a base class with a metaclass.NewBase )metabasesr   r   I/var/www/html/chatgem/venv/lib/python3.10/site-packages/wrapt/wrappers.pywith_metaclass      r   c                   @   s   e Zd ZdZdS )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	   c                   @   sX   e Zd Zedd Zejdd Zedd Zejdd Zedd Zed	d
 ZdS )_ObjectProxyMethodsc                 C      | j jS N__wrapped__r   selfr   r   r   r          z_ObjectProxyMethods.__module__c                 C      || j _d S r   r   r   valuer   r   r   r   $   r   c                 C   r   r   r   r   r   r   r   r   r   (   r   z_ObjectProxyMethods.__doc__c                 C   r   r   r   r   r   r   r   r   ,   r   c                 C   r   r   )r   __dict__r   r   r   r   r   3   r   z_ObjectProxyMethods.__dict__c                 C   r   r   )r   __weakref__r   r   r   r   r   <   r   z_ObjectProxyMethods.__weakref__N)r
   r   r   propertysetterr   r   r   r   r   r   r   r      s    




r   c                   @      e Zd Zdd ZdS )_ObjectProxyMetaTypec                 C   s   | tt t| |||S r   )updatevarsr   type__new__)clsnamer   
dictionaryr   r   r   r#   B   s   z_ObjectProxyMetaType.__new__N)r
   r   r   r#   r   r   r   r   r   A   s    r   c                   @   s  e Zd ZdZdd Zedd Zdd Zedd	 Z e jd
d	 Z edd Z	e	jdd Z	dd Z
dd Zdd Zdd Zdd Zdd ZdddZdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Z d=d> Z!d?d@ Z"dAdB Z#dCdD Z$dEdF Z%dGdH Z&dIdJ Z'dKdL Z(dMdN Z)dOdP Z*dQdR Z+dSdT Z,dUdV Z-dWdX Z.dYdZ Z/d[d\ Z0d]d^ Z1d_d` Z2dadb Z3dcdd Z4dedf Z5dgdh Z6didj Z7dkdl Z8dmdn Z9dodp Z:dqdr Z;dsdt Z<dudv Z=dwdx Z>dydz Z?d{d| Z@d}d~ ZAdd ZBdd ZCdd ZDdd ZEdd ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dS )ObjectProxyr   c                 C   s   |du r%zt | d}W n ty   d}Y nw |durnt | d| nt | d| z
t | d|j W n	 ty?   Y nw zt | d|j W dS  tyU   Y dS w )z/Create an object proxy around the given object.N__wrapped_factory__r   r   __annotations__)object__getattribute__AttributeError__setattr__r   r)   )r   wrappedcallbackr   r   r   __init__Y   s(   zObjectProxy.__init__c                 C   s   t S r   )r'   r   r   r   r   __object_proxy__   s   zObjectProxy.__object_proxy__c                 C   s   t | || d S r   )r*   r-   )r   r%   r   r   r   r   __self_setattr__      zObjectProxy.__self_setattr__c                 C   r   r   r   r
   r   r   r   r   r
      r   zObjectProxy.__name__c                 C   r   r   r4   r   r   r   r   r
      r   c                 C   r   r   r   	__class__r   r   r   r   r6      r   zObjectProxy.__class__c                 C   r   r   r5   r   r   r   r   r6      r   c                 C   
   t | jS r   )dirr   r   r   r   r   __dir__      
zObjectProxy.__dir__c                 C   r7   r   )strr   r   r   r   r   __str__   r:   zObjectProxy.__str__c                 C   r7   r   )bytesr   r   r   r   r   	__bytes__   r:   zObjectProxy.__bytes__c              	   C   s:   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   r   r   r   __repr__   s   :zObjectProxy.__repr__c                 C      t | j|S r   )formatr   )r   format_specr   r   r   
__format__      zObjectProxy.__format__c                 C   r7   r   )reversedr   r   r   r   r   __reversed__   r:   zObjectProxy.__reversed__Nc                 C   rD   r   )roundr   )r   ndigitsr   r   r   	__round__   rH   zObjectProxy.__round__c                 C   s,   t | jtst| jdr| j|S | jfS )N__mro_entries__)
isinstancer   r"   hasattrrN   )r   r   r   r   r   rN      s
   zObjectProxy.__mro_entries__c                 C   s
   | j |k S r   r   r   otherr   r   r   __lt__   r:   zObjectProxy.__lt__c                 C   s
   | j |kS r   rQ   rR   r   r   r   __le__   r:   zObjectProxy.__le__c                 C   s
   | j |kS r   rQ   rR   r   r   r   __eq__   r:   zObjectProxy.__eq__c                 C   s
   | j |kS r   rQ   rR   r   r   r   __ne__   r:   zObjectProxy.__ne__c                 C   s
   | j |kS r   rQ   rR   r   r   r   __gt__   r:   zObjectProxy.__gt__c                 C   s
   | j |kS r   rQ   rR   r   r   r   __ge__   r:   zObjectProxy.__ge__c                 C   r7   r   )hashr   r   r   r   r   __hash__   r:   zObjectProxy.__hash__c                 C   r7   r   boolr   r   r   r   r   __nonzero__   r:   zObjectProxy.__nonzero__c                 C   r7   r   r\   r   r   r   r   __bool__   r:   zObjectProxy.__bool__c                 C   sn  | drt| || d S |dkrvt| || zt| d W n	 ty*   Y nw z
t| d|j W n	 ty>   Y nw zt| d W n	 tyP   Y nw z
t| d|j W n	 tyd   Y nw t| dd }|d urt|  d S d S |dkrt| j	|| t| || d S |dkrt| j	|| t| || d S t
t| |rt| || d S t| j	|| d S )N_self_r   r   r)   __wrapped_setattr_fixups__)
startswithr*   r-   __delattr__r,   r   r)   getattrsetattrr   rP   r"   )r   r%   r   ra   r   r   r   r-      sN   

zObjectProxy.__setattr__c                 C   sL   |dkr zt | d W n ty   Y tdw t | d S t| j|S )Nr   r(   __wrapped_get__z wrapper has not been initialized)r*   r+   r,   r	   rd   r   r   r%   r   r   r   __getattr__   s   zObjectProxy.__getattr__c                 C   s|   | drt| | d S |dkrtd|dkr't| | t| j| d S tt| |r6t| | d S t| j| d S )Nr`   r   z'__wrapped__ attribute cannot be deletedr   )rb   r*   rc   	TypeErrordelattrr   rP   r"   rg   r   r   r   rc     s   
zObjectProxy.__delattr__c                 C   s
   | j | S r   rQ   rR   r   r   r   __add__$  r:   zObjectProxy.__add__c                 C   s
   | j | S r   rQ   rR   r   r   r   __sub__'  r:   zObjectProxy.__sub__c                 C   s
   | j | S r   rQ   rR   r   r   r   __mul__*  r:   zObjectProxy.__mul__c                 C   s   t | j|S r   operatortruedivr   rR   r   r   r   __truediv__-     zObjectProxy.__truediv__c                 C   s
   | j | S r   rQ   rR   r   r   r   __floordiv__0  r:   zObjectProxy.__floordiv__c                 C   s
   | j | S r   rQ   rR   r   r   r   __mod__3  r:   zObjectProxy.__mod__c                 C   rD   r   divmodr   rR   r   r   r   
__divmod__6  rH   zObjectProxy.__divmod__c                 G   s   t | j|g|R  S r   powr   r   rS   argsr   r   r   __pow__9     zObjectProxy.__pow__c                 C   s
   | j |> S r   rQ   rR   r   r   r   
__lshift__<  r:   zObjectProxy.__lshift__c                 C   s
   | j |? S r   rQ   rR   r   r   r   
__rshift__?  r:   zObjectProxy.__rshift__c                 C   s
   | j |@ S r   rQ   rR   r   r   r   __and__B  r:   zObjectProxy.__and__c                 C   s
   | j |A S r   rQ   rR   r   r   r   __xor__E  r:   zObjectProxy.__xor__c                 C   s
   | j |B S r   rQ   rR   r   r   r   __or__H  r:   zObjectProxy.__or__c                 C   s
   || j  S r   rQ   rR   r   r   r   __radd__K  r:   zObjectProxy.__radd__c                 C   s
   || j  S r   rQ   rR   r   r   r   __rsub__N  r:   zObjectProxy.__rsub__c                 C   s
   || j  S r   rQ   rR   r   r   r   __rmul__Q  r:   zObjectProxy.__rmul__c                 C   s   t || jS r   rn   rR   r   r   r   __rtruediv__T  rr   zObjectProxy.__rtruediv__c                 C   s
   || j  S r   rQ   rR   r   r   r   __rfloordiv__W  r:   zObjectProxy.__rfloordiv__c                 C   s
   || j  S r   rQ   rR   r   r   r   __rmod__Z  r:   zObjectProxy.__rmod__c                 C      t || jS r   ru   rR   r   r   r   __rdivmod__]  rH   zObjectProxy.__rdivmod__c                 G   s   t || jg|R  S r   rx   rz   r   r   r   __rpow__`  r}   zObjectProxy.__rpow__c                 C   s
   || j > S r   rQ   rR   r   r   r   __rlshift__c  r:   zObjectProxy.__rlshift__c                 C   s
   || j ? S r   rQ   rR   r   r   r   __rrshift__f  r:   zObjectProxy.__rrshift__c                 C   s
   || j @ S r   rQ   rR   r   r   r   __rand__i  r:   zObjectProxy.__rand__c                 C   s
   || j A S r   rQ   rR   r   r   r   __rxor__l  r:   zObjectProxy.__rxor__c                 C   s
   || j B S r   rQ   rR   r   r   r   __ror__o  r:   zObjectProxy.__ror__c                 C   s.   t | jdr|  j|7  _| S | | j| S )N__iadd__rP   r   r1   rR   r   r   r   r   r     zObjectProxy.__iadd__c                 C   s.   t | jdr|  j|8  _| S | | j| S )N__isub__r   rR   r   r   r   r   y  r   zObjectProxy.__isub__c                 C   s.   t | jdr|  j|9  _| S | | j| S )N__imul__r   rR   r   r   r   r     r   zObjectProxy.__imul__c                 C   s.   t | jdr|  j|  _| S | | j| S )N__itruediv__r   rR   r   r   r   r     r   zObjectProxy.__itruediv__c                 C   s.   t | jdr|  j|  _| S | | j| S )N__ifloordiv__r   rR   r   r   r   r     r   zObjectProxy.__ifloordiv__c                 C   s.   t | jdr|  j|;  _| S | | j| S )N__imod__r   rR   r   r   r   r     r   zObjectProxy.__imod__c                 C   s.   t | jdr|  j|C  _| S | | j| S )N__ipow__r   rR   r   r   r   r     r   zObjectProxy.__ipow__c                 C   s.   t | jdr|  j|K  _| S | | j|> S )N__ilshift__r   rR   r   r   r   r     r   zObjectProxy.__ilshift__c                 C   s.   t | jdr|  j|L  _| S | | j|? S )N__irshift__r   rR   r   r   r   r     r   zObjectProxy.__irshift__c                 C   s.   t | jdr|  j|M  _| S | | j|@ S )N__iand__r   rR   r   r   r   r     r   zObjectProxy.__iand__c                 C   s.   t | jdr|  j|N  _| S | | j|A S )N__ixor__r   rR   r   r   r   r     r   zObjectProxy.__ixor__c                 C   s.   t | jdr|  j|O  _| S | | j|B S )N__ior__r   rR   r   r   r   r     r   zObjectProxy.__ior__c                 C   s   | j  S r   rQ   r   r   r   r   __neg__     zObjectProxy.__neg__c                 C   s   | j 
 S r   rQ   r   r   r   r   __pos__  r   zObjectProxy.__pos__c                 C   r7   r   )absr   r   r   r   r   __abs__  r:   zObjectProxy.__abs__c                 C   s   | j  S r   rQ   r   r   r   r   
__invert__  r   zObjectProxy.__invert__c                 C   r7   r   )intr   r   r   r   r   __int__  r:   zObjectProxy.__int__c                 C   r7   r   )floatr   r   r   r   r   	__float__  r:   zObjectProxy.__float__c                 C   r7   r   )complexr   r   r   r   r   __complex__  r:   zObjectProxy.__complex__c                 C   r7   r   )octr   r   r   r   r   __oct__  r:   zObjectProxy.__oct__c                 C   r7   r   )hexr   r   r   r   r   __hex__  r:   zObjectProxy.__hex__c                 C   s   t | jS r   )ro   indexr   r   r   r   r   	__index__  rH   zObjectProxy.__index__c                 C   s
   | j | S r   rQ   rR   r   r   r   
__matmul__  r:   zObjectProxy.__matmul__c                 C   s
   || j  S r   rQ   rR   r   r   r   __rmatmul__  r:   zObjectProxy.__rmatmul__c                 C   s.   t | jdr|  j|  _| S | | j| S )N__imatmul__r   rR   r   r   r   r     r   zObjectProxy.__imatmul__c                 C   r7   r   )lenr   r   r   r   r   __len__  r:   zObjectProxy.__len__c                 C   s
   || j v S r   rQ   r   r   r   r   __contains__  r:   zObjectProxy.__contains__c                 C   s
   | j | S r   rQ   r   keyr   r   r   __getitem__  r:   zObjectProxy.__getitem__c                 C   s   || j |< d S r   rQ   )r   r   r   r   r   r   __setitem__  rr   zObjectProxy.__setitem__c                 C   s   | j |= d S r   rQ   r   r   r   r   __delitem__  rH   zObjectProxy.__delitem__c                 C   s   | j || S r   rQ   r   ijr   r   r   __getslice__  rr   zObjectProxy.__getslice__c                 C   s   || j ||< d S r   rQ   )r   r   r   r   r   r   r   __setslice__  r3   zObjectProxy.__setslice__c                 C   s   | j ||= d S r   rQ   r   r   r   r   __delslice__  s   zObjectProxy.__delslice__c                 C   
   | j  S r   )r   	__enter__r   r   r   r   r     r:   zObjectProxy.__enter__c                 O      | j j|i |S r   )r   __exit__r   r{   kwargsr   r   r   r     r3   zObjectProxy.__exit__c                 C   r   r   )r   
__aenter__r   r   r   r   r     r:   zObjectProxy.__aenter__c                 O   r   r   )r   	__aexit__r   r   r   r   r     r3   zObjectProxy.__aexit__c                 C      t d)Nz#object proxy must define __copy__()NotImplementedErrorr   r   r   r   __copy__  r   zObjectProxy.__copy__c                 C   r   )Nz'object proxy must define __deepcopy__()r   )r   memor   r   r   __deepcopy__  r   zObjectProxy.__deepcopy__c                 C   r   )Nz%object proxy must define __reduce__()r   r   r   r   r   
__reduce__  r   zObjectProxy.__reduce__c                 C   r   )Nz(object proxy must define __reduce_ex__()r   )r   protocolr   r   r   __reduce_ex__   r   zObjectProxy.__reduce_ex__r   )ar
   r   r   	__slots__r0   r   r1   r2   r   r6   r9   r<   r>   rC   rG   rJ   rM   rN   rT   rU   rV   rW   rX   rY   r[   r^   r_   r-   rh   rc   rk   rl   rm   rq   rs   rt   rw   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'   U   s    '





-	r'   c                   @   r   )CallableObjectProxyc                  O   s$   dd }||  \}} |j | i |S )Nc                 W      | |fS r   r   r   r{   r   r   r   _unpack_self'  r   z2CallableObjectProxy.__call__.<locals>._unpack_selfrQ   )r{   r   r   r   r   r   r   __call__&  s   zCallableObjectProxy.__call__Nr
   r   r   r   r   r   r   r   r   $      r   c                       s(   e Zd ZdZ fddZdd Z  ZS )PartialCallableObjectProxyz]A callable object proxy that supports partial application of arguments
    and keywords.
    c                     sn   dd }||  \}} t | dk rtd| d | dd }} t|s'tdtt|| | |_||_dS )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                 W   r   r   r   r   r   r   r   r   ;  r   z9PartialCallableObjectProxy.__init__.<locals>._unpack_self   z(partial type takes at least one argumentr   Nz#the first argument must be callable)r   ri   callablesuperr   r0   
_self_args_self_kwargs)r{   r   r   r   r.   r6   r   r   r0   4  s   
z#PartialCallableObjectProxy.__init__c                  O   sB   dd }||  \}} |j |  }t|j}|| |j|i |S )Nc                 W   r   r   r   r   r   r   r   r   N  r   z9PartialCallableObjectProxy.__call__.<locals>._unpack_self)r   dictr   r    r   )r{   r   r   r   _args_kwargsr   r   r   r   M  s   


z#PartialCallableObjectProxy.__call__)r
   r   r   r   r0   r   __classcell__r   r   r   r   r   /  s    r   c                       sR   e Zd ZdZ				d fdd	Zdd Zdd	 Zd
d Zdd Zdd Z	  Z
S )_FunctionWrapperBase)_self_instance_self_wrapper_self_enabled_self_binding_self_parent_self_ownerNr   c                    sh   t t| | t| d| t| d| t| d| t| d| t| d| t| d| d S )Nr   r   r   r   r   r   )r   r   r0   r*   r-   )r   r.   instancewrapperenabledbindingparentownerr   r   r   r0   f  s   z_FunctionWrapperBase.__init__c              	   C   s   | j d u r3| jdkr| S | jdkr| S t| jdd }|d u r | S |||}| ||| j| j| j| |S | jd u rU| jdv rU| j j||}| j ||| j| j| j| j |S | S )Nbuiltinclass__get__)functioninstancemethodr   )	r   r   rd   r   __bound_function_wrapper__r   r   r   r   )r   r   r   binder
descriptorr   r   r   r   z  s<   




z_FunctionWrapperBase.__get__c                  O   s   dd }||  \}} |j d ur,t|j r!|  s |j| i |S n|j s,|j| i |S |jdv rJ|jd u rJt|jdd }|d urJ||j|| |S ||j|j| |S )Nc                 W   r   r   r   r   r   r   r   r     r   z3_FunctionWrapperBase.__call__.<locals>._unpack_self)r   r   classmethodr   __self__)r   r   r   r   r   rd   r   )r{   r   r   r   r   r   r   r   r     s   



z_FunctionWrapperBase.__call__c                 C   s"   t | jdr| j|| d S d S )N__set_name__)rP   r   r   )r   r   r%   r   r   r   r     s   z!_FunctionWrapperBase.__set_name__c                 C   r   r   )rO   r   )r   r   r   r   r   __instancecheck__  s   z&_FunctionWrapperBase.__instancecheck__c                 C   s$   t |drt|j| jS t|| jS )Nr   )rP   
issubclassr   )r   subclassr   r   r   __subclasscheck__   s   
z&_FunctionWrapperBase.__subclasscheck__)Nr   NN)r
   r   r   r   r0   r   r   r   r   r  r   r   r   r   r   r   [  s    M*
r   c                   @   r   )BoundFunctionWrapperc                  O   sH  dd }||  \}} |j d ur,t|j r!|  s |j| i |S n|j s,|j| i |S |jdkra|jd u rW| rW| d | dd  }}t||jrWt|j|}|||||S ||j|j| |S |jdkr|jd u r| sqt	d| d | dd  }} t|j|}|||| |S ||j|j| |S t
|jdd }||j|| |S )	Nc                 W   r   r   r   r   r   r   r   r     r   z3BoundFunctionWrapper.__call__.<locals>._unpack_selfr   r   r   r   z&missing 1 required positional argumentr   )r   r   r   r   r   rO   r   r   r   ri   rd   )r{   r   r   r   r   newargsr.   r   r   r   r     s<   




zBoundFunctionWrapper.__call__Nr   r   r   r   r   r    r   r  c                       s&   e Zd ZdZeZd fdd	Z  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.
    Nc                    s   d}t |tr
|j}|sOt|rd}n;t|rd}n3t|r$d}n+t |tr,d}n#t |tr4d}nt	|drMt|j
rBd}nt|rJd}nd	}nd	}tt| |d||| dS )
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   )rO   r   r   inspect	isbuiltin
isfunctionisclassr   r  rP   r   ismethodr   r  r0   )r   r.   r   r   r   r   r   r   r0   a  s,   S







zFunctionWrapper.__init__r   )r
   r   r   r   r  r   r0   r   r   r   r   r   r  W  s    r  )r  ro   sysr   
ValueErrorr,   r	   r   r"   r   r'   r   r   r   r  r  r   r   r   r   <module>   s"    
,   R, 3J