o
    bK,                     @   sp   d dl Z ddlmZ ddlmZ ddlmZ ddlmZ G dd deZG d	d
 d
e	Z
G dd dee
ZdS )    N   )PY2)PY3)with_metaclass)identityc                   @   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 )_ProxyMethodsc                 C      | j jS N__wrapped__
__module__self r   V/var/www/secure340b-portal/env/lib/python3.10/site-packages/lazy_object_proxy/slots.pyr         z_ProxyMethods.__module__c                 C      || j _d S r	   r
   r   valuer   r   r   r         c                 C   r   r	   r   __doc__r   r   r   r   r      r   z_ProxyMethods.__doc__c                 C   r   r	   r   r   r   r   r   r      r   c                 C   r   r	   )r   __dict__r   r   r   r   r   &   r   z_ProxyMethods.__dict__c                 C   r   r	   )r   __weakref__r   r   r   r   r   /   r   z_ProxyMethods.__weakref__N)__name__r   __qualname__propertysetterr   r   r   r   r   r   r   r   	   s    





r   c                   @   s   e Zd Zdd ZdS )_ProxyMetaTypec                 C   s   | tt t| |||S r	   )updatevarsr   type__new__)clsnamebases
dictionaryr   r   r   r"   5   s   z_ProxyMetaType.__new__N)r   r   r   r"   r   r   r   r   r   4   s    r   c                   @   sd  e Zd ZdZdZdd Zeejej	ej
fddZejej
fddZejej	fd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jdd Zdd Zdd Zerbdd ZejfddZdd Zersd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ej	fd0d1Z	d2d3 Z ej
fd4d5Z
d6d7 Z!d8d9 Z"d:d; Z#d<d= Z$d>d? Z%d@dA Z&dBdC Z'dDdE Z(dFdG Z)dHdI Z*dJdK Z+dLdM Z,dNdO Z-dPdQ Z.dRdS Z/dTdU Z0dVdW Z1dXdY Z2dZd[ Z3d\d] Z4d^d_ Z5d`da Z6dbdc Z7ddde Z8dfdg Z9dhdi Z:djdk Z;dldm Z<dndo Z=dpdq Z>drds Z?dtdu Z@dvdw ZAdxdy ZBdzd{ ZCd|d} ZDd~d ZEdd ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNeOrhdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd ZbdS )Proxya  
    A proxy implementation in pure Python, using slots. You can subclass this to add
    local methods or attributes, or enable __dict__.

    The most important internals:

    * ``__factory__`` is the callback that "materializes" the object we proxy to.
    * ``__target__`` will contain the object we proxy to, once it's "materialized".
    * ``__wrapped__`` is a property that does either:

      * return ``__target__`` if it's set.
      * calls ``__factory__``, saves result to ``__target__`` and returns said result.
    )
__target____factory__c                 C   s   t | d| d S )Nr)   )object__setattr__)r   factoryr   r   r   __init__Q      zProxy.__init__c                 C   s\   z|| dW S  t y-   z|| d}W n t y   tdw | }|| d| | Y S w )Nr(   r)   z4Proxy hasn't been initiated: __factory__ is missing.)AttributeError
ValueError)r   __getattr__r+   __delattr__r,   targetr   r   r   r   T   s   zProxy.__wrapped__c                 C   s   || d d S Nr(   r   )r   r2   r   r   r   r   b   s   c                 C   s   || d| d S r4   r   )r   r3   r+   r   r   r   r   f   s   c                 C   r   r	   r   r   r   r   r   r   r   j   r   zProxy.__name__c                 C   r   r	   r5   r   r   r   r   r   n   r   c                 C   r   r	   r   	__class__r   r   r   r   r7   r   r   zProxy.__class__c                 C   r   r	   r6   r   r   r   r   r7   v   r   c                 C   r   r	   )r   Z__anotations__r   r   r   r   __annotations__z   r   zProxy.__annotations__c                 C   r   r	   )r   r8   r   r   r   r   r8   ~   r   c                 C   
   t | jS r	   )dirr   r   r   r   r   __dir__      
zProxy.__dir__c                 C   r9   r	   )strr   r   r   r   r   __str__   r<   zProxy.__str__c                 C   r9   r	   )bytesr   r   r   r   r   	__bytes__   r<   zProxy.__bytes__c                 C   s^   z|| d}W n t y   dt| jt| | jf  Y S w dt| jt| |t|| jf S )Nr(   z<%s at 0x%x with factory %r>z0<%s at 0x%x wrapping %r at 0x%x with factory %r>)r/   r!   r   idr)   )r   r1   r3   r   r   r   __repr__   s   
zProxy.__repr__c                 C   r9   r	   )reversedr   r   r   r   r   __reversed__   r<   zProxy.__reversed__c                 C   r9   r	   )roundr   r   r   r   r   	__round__   r<   zProxy.__round__c                 C   s
   | j |k S r	   r   r   otherr   r   r   __lt__   r<   zProxy.__lt__c                 C   s
   | j |kS r	   rG   rH   r   r   r   __le__   r<   zProxy.__le__c                 C   s
   | j |kS r	   rG   rH   r   r   r   __eq__   r<   zProxy.__eq__c                 C   s
   | j |kS r	   rG   rH   r   r   r   __ne__   r<   zProxy.__ne__c                 C   s
   | j |kS r	   rG   rH   r   r   r   __gt__   r<   zProxy.__gt__c                 C   s
   | j |kS r	   rG   rH   r   r   r   __ge__   r<   zProxy.__ge__c                 C   r9   r	   )hashr   r   r   r   r   __hash__   r<   zProxy.__hash__c                 C   r9   r	   boolr   r   r   r   r   __nonzero__   r<   zProxy.__nonzero__c                 C   r9   r	   rR   r   r   r   r   __bool__   r<   zProxy.__bool__c                 C   s0   t t| |r|| || d S t| j|| d S r	   )hasattrr!   setattrr   )r   r$   r   r+   r   r   r   r+      s   zProxy.__setattr__c                 C   s   |dv rt |t| j|S )N)r   r)   )r/   getattrr   )r   r$   r   r   r   r1      s   zProxy.__getattr__c                 C   s,   t t| |r|| | d S t| j| d S r	   )rV   r!   delattrr   )r   r$   r2   r   r   r   r2      s   zProxy.__delattr__c                 C   s
   | j | S r	   rG   rH   r   r   r   __add__   r<   zProxy.__add__c                 C   s
   | j | S r	   rG   rH   r   r   r   __sub__   r<   zProxy.__sub__c                 C   s
   | j | S r	   rG   rH   r   r   r   __mul__   r<   zProxy.__mul__c                 C      t | j|S r	   operatordivr   rH   r   r   r   __div__      zProxy.__div__c                 C   r]   r	   r_   truedivr   rH   r   r   r   __truediv__   rb   zProxy.__truediv__c                 C   s
   | j | S r	   rG   rH   r   r   r   __floordiv__   r<   zProxy.__floordiv__c                 C   
   | j |A S r	   rG   rH   r   r   r   __mod__   r<   zProxy.__mod__c                 C   s   t | j|S r	   divmodr   rH   r   r   r   
__divmod__      zProxy.__divmod__c                 G   s   t | j|g|R  S r	   powr   r   rI   argsr   r   r   __pow__      zProxy.__pow__c                 C   s
   | j |> S r	   rG   rH   r   r   r   
__lshift__   r<   zProxy.__lshift__c                 C   s
   | j |? S r	   rG   rH   r   r   r   
__rshift__   r<   zProxy.__rshift__c                 C   s
   | j |@ S r	   rG   rH   r   r   r   __and__   r<   zProxy.__and__c                 C   rg   r	   rG   rH   r   r   r   __xor__   r<   zProxy.__xor__c                 C   s
   | j |B S r	   rG   rH   r   r   r   __or__   r<   zProxy.__or__c                 C   s
   || j  S r	   rG   rH   r   r   r   __radd__   r<   zProxy.__radd__c                 C   s
   || j  S r	   rG   rH   r   r   r   __rsub__   r<   zProxy.__rsub__c                 C   s
   || j  S r	   rG   rH   r   r   r   __rmul__   r<   zProxy.__rmul__c                 C      t || jS r	   r^   rH   r   r   r   __rdiv__  rb   zProxy.__rdiv__c                 C   r{   r	   rc   rH   r   r   r   __rtruediv__  rb   zProxy.__rtruediv__c                 C   s
   || j  S r	   rG   rH   r   r   r   __rfloordiv__  r<   zProxy.__rfloordiv__c                 C   s
   || j  S r	   rG   rH   r   r   r   __rmod__  r<   zProxy.__rmod__c                 C   s   t || jS r	   ri   rH   r   r   r   __rdivmod__  rl   zProxy.__rdivmod__c                 G   s   t || jg|R  S r	   rm   ro   r   r   r   __rpow__  rr   zProxy.__rpow__c                 C   s
   || j > S r	   rG   rH   r   r   r   __rlshift__  r<   zProxy.__rlshift__c                 C   s
   || j ? S r	   rG   rH   r   r   r   __rrshift__  r<   zProxy.__rrshift__c                 C   s
   || j @ S r	   rG   rH   r   r   r   __rand__  r<   zProxy.__rand__c                 C   s
   || j A S r	   rG   rH   r   r   r   __rxor__  r<   zProxy.__rxor__c                 C   s
   || j B S r	   rG   rH   r   r   r   __ror__   r<   zProxy.__ror__c                 C   s   |  j |7  _ | S r	   rG   rH   r   r   r   __iadd__#     zProxy.__iadd__c                 C   s   |  j |8  _ | S r	   rG   rH   r   r   r   __isub__'  r   zProxy.__isub__c                 C   s   |  j |9  _ | S r	   rG   rH   r   r   r   __imul__+  r   zProxy.__imul__c                 C      t | j|| _| S r	   )r_   Zidivr   rH   r   r   r   __idiv__/     zProxy.__idiv__c                 C   r   r	   )r_   itruedivr   rH   r   r   r   __itruediv__3  r   zProxy.__itruediv__c                 C   s   |  j |  _ | S r	   rG   rH   r   r   r   __ifloordiv__7  r   zProxy.__ifloordiv__c                 C   s   |  j |;  _ | S r	   rG   rH   r   r   r   __imod__;  r   zProxy.__imod__c                 C   s   |  j |C  _ | S r	   rG   rH   r   r   r   __ipow__?  r   zProxy.__ipow__c                 C   s   |  j |K  _ | S r	   rG   rH   r   r   r   __ilshift__C  r   zProxy.__ilshift__c                 C   s   |  j |L  _ | S r	   rG   rH   r   r   r   __irshift__G  r   zProxy.__irshift__c                 C   s   |  j |M  _ | S r	   rG   rH   r   r   r   __iand__K  r   zProxy.__iand__c                 C   s   |  j |N  _ | S r	   rG   rH   r   r   r   __ixor__O  r   zProxy.__ixor__c                 C   s   |  j |O  _ | S r	   rG   rH   r   r   r   __ior__S  r   zProxy.__ior__c                 C   s   | j  S r	   rG   r   r   r   r   __neg__W     zProxy.__neg__c                 C   s   | j 
 S r	   rG   r   r   r   r   __pos__Z  r   zProxy.__pos__c                 C   r9   r	   )absr   r   r   r   r   __abs__]  r<   zProxy.__abs__c                 C   s   | j  S r	   rG   r   r   r   r   
__invert__`  r   zProxy.__invert__c                 C   r9   r	   )intr   r   r   r   r   __int__c  r<   zProxy.__int__c                 C   r9   r	   )longr   r   r   r   r   __long__g  r<   zProxy.__long__c                 C   r9   r	   )floatr   r   r   r   r   	__float__j  r<   zProxy.__float__c                 C   r9   r	   )octr   r   r   r   r   __oct__m  r<   zProxy.__oct__c                 C   r9   r	   )hexr   r   r   r   r   __hex__p  r<   zProxy.__hex__c                 C   s   t | jS r	   )r_   indexr   r   r   r   r   	__index__s  rl   zProxy.__index__c                 C   r9   r	   )lenr   r   r   r   r   __len__v  r<   zProxy.__len__c                 C   s
   || j v S r	   rG   r   r   r   r   __contains__y  r<   zProxy.__contains__c                 C   s
   | j | S r	   rG   r   keyr   r   r   __getitem__|  r<   zProxy.__getitem__c                 C   s   || j |< d S r	   rG   )r   r   r   r   r   r   __setitem__  rb   zProxy.__setitem__c                 C   s   | j |= d S r	   rG   r   r   r   r   __delitem__  rl   zProxy.__delitem__c                 C   s   | j || S r	   rG   r   ijr   r   r   __getslice__  rb   zProxy.__getslice__c                 C   s   || j ||< d S r	   rG   )r   r   r   r   r   r   r   __setslice__  r.   zProxy.__setslice__c                 C   s   | j ||= d S r	   rG   r   r   r   r   __delslice__     zProxy.__delslice__c                 C   s
   | j  S r	   )r   	__enter__r   r   r   r   r     r<   zProxy.__enter__c                 O   s   | j j|i |S r	   )r   __exit__r   rp   kwargsr   r   r   r     r.   zProxy.__exit__c                 C   r9   r	   )iterr   r   r   r   r   __iter__  r<   zProxy.__iter__c                 O   s   | j |i |S r	   rG   r   r   r   r   __call__  r   zProxy.__call__c                 C      t | jffS r	   r   r   r   r   r   r   
__reduce__  rl   zProxy.__reduce__c                 C   r   r	   r   )r   protocolr   r   r   __reduce_ex__  rl   zProxy.__reduce_ex__N)cr   r   r   r   	__slots__r-   r   r*   __getattribute__r+   r2   r   deleterr   r7   r8   r;   r>   r   r@   rB   rD   rF   rJ   rK   rL   rM   rN   rO   rQ   rT   rU   r1   rZ   r[   r\   ra   re   rf   rh   rk   rq   rs   rt   ru   rv   rw   rx   ry   rz   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r'   @   s    





r'   )r_   compatr   r   r   utilsr   r*   r   r!   r   r'   r   r   r   r   <module>   s    +