o
    >Di0                     @   sn   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ZG d	d
 d
eZ	G dd dee	Z
dS )    N   )string_types)with_metaclass)await_)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   P/var/www/Datamplify/venv/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                   @   s  e Zd ZdZdZdd Zeejf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dd Zejf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/d0 Zd1d2 Zd3d4 Z ej
fd5d6Z
d7d8 Z!ejf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 Z0dYdZ Z1d[d\ Z2d]d^ Z3d_d` Z4dadb Z5dcdd Z6dedf Z7dgdh Z8didj Z9dkdl Z:dmdn Z;dodp Z<dqdr Z=dsdt Z>dudv Z?dwdx Z@dydz ZAd{d| ZBd}d~ ZCdd 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`dd Zadd Zbdd Zcdd ZdeerddlfmgZg ddlfmhZh ddlfmiZi ddlfmjZj ddlfmkZk eiejekegehf d S d S )ProxyaU  
    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".
    * ``__resolved__`` is a boolean, `True` if factory was called.
    * ``__wrapped__`` is a property that does either:

      * return ``__target__`` if it's set.
      * calls ``__factory__``, saves result to ``__target__`` and returns said result.
    )__factory__
__target__c                 C   s   t | d| d S )Nr(   )object__setattr__)r   factoryr   r   r   __init__R      zProxy.__init__c                 C   s&   z|| d W dS  t y   Y dS w )Nr)   FT)AttributeError)r   __getattr__r   r   r   __resolved__U   s   zProxy.__resolved__c                 C   sh   z|| dW S  t y3   z|| d}W n t y% } ztd|d }~ww | }|| d| | Y S w )Nr)   r(   z4Proxy hasn't been initiated: __factory__ is missing.)r/   
ValueError)r   r0   r+   __delattr__r,   exctargetr   r   r   r   ^   s   
zProxy.__wrapped__c                 C   s   || d d S Nr)   r   )r   r3   r   r   r   r   k   s   c                 C   s   || d| d S r6   r   )r   r5   r+   r   r   r   r   o   s   c                 C   r   r	   r   r   r   r   r   r   r   s   r   zProxy.__name__c                 C   r   r	   r7   r   r   r   r   r   w   r   c                 C   r   r	   r   	__class__r   r   r   r   r9   {   r   zProxy.__class__c                 C   r   r	   r8   r   r   r   r   r9      r   c                 C   r   r	   )r   __anotations__r   r   r   r   __annotations__   r   zProxy.__annotations__c                 C   r   r	   )r   r;   r   r   r   r   r;      r   c                 C   
   t | jS r	   )dirr   r   r   r   r   __dir__      
zProxy.__dir__c                 C   r<   r	   )strr   r   r   r   r   __str__   r?   zProxy.__str__c                 C   r<   r	   )bytesr   r   r   r   r   	__bytes__   r?   zProxy.__bytes__c                 C   s   z|| d}W n t y#   dt| j dt| dd| jd Y S w dt| j dt| dd|dt|dd| jdS )Nr)   <z at 0xxz with factory >z
 wrapping )r/   r!   r   idr(   )r   r0   r5   r   r   r   __repr__   s   *8zProxy.__repr__c                 C   s2   | j }t|tr
|S t|dd }|d u r|S | S )N
__fspath__)r   
isinstancer   getattr)r   wrappedfspathr   r   r   rI      s   
zProxy.__fspath__c                 C   r<   r	   )reversedr   r   r   r   r   __reversed__   r?   zProxy.__reversed__Nc                 C      t | j|S r	   )roundr   )r   ndigitsr   r   r   	__round__      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	   rU   rV   r   r   r   __le__   r?   zProxy.__le__c                 C   s
   | j |kS r	   rU   rV   r   r   r   __eq__   r?   zProxy.__eq__c                 C   s
   | j |kS r	   rU   rV   r   r   r   __ne__   r?   zProxy.__ne__c                 C   s
   | j |kS r	   rU   rV   r   r   r   __gt__   r?   zProxy.__gt__c                 C   s
   | j |kS r	   rU   rV   r   r   r   __ge__   r?   zProxy.__ge__c                 C   r<   r	   )hashr   r   r   r   r   __hash__   r?   zProxy.__hash__c                 C   r<   r	   boolr   r   r   r   r   __nonzero__   r?   zProxy.__nonzero__c                 C   r<   r	   r`   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/   rK   r   )r   r$   r   r   r   r0      s   zProxy.__getattr__c                 C   s,   t t| |r|| | d S t| j| d S r	   )rd   r!   delattrr   )r   r$   r3   r   r   r   r3      s   zProxy.__delattr__c                 C   s
   | j | S r	   rU   rV   r   r   r   __add__   r?   zProxy.__add__c                 C   s
   | j | S r	   rU   rV   r   r   r   __sub__   r?   zProxy.__sub__c                 C   s
   | j | S r	   rU   rV   r   r   r   __mul__   r?   zProxy.__mul__c                 C   s
   | j | S r	   rU   rV   r   r   r   
__matmul__   r?   zProxy.__matmul__c                 C   s   t | j|S r	   operatortruedivr   rV   r   r   r   __truediv__      zProxy.__truediv__c                 C   s
   | j | S r	   rU   rV   r   r   r   __floordiv__   r?   zProxy.__floordiv__c                 C   s
   | j | S r	   rU   rV   r   r   r   __mod__   r?   zProxy.__mod__c                 C   rP   r	   divmodr   rV   r   r   r   
__divmod__   rT   zProxy.__divmod__c                 G   s   t | j|g|R  S r	   powr   r   rW   argsr   r   r   __pow__      zProxy.__pow__c                 C   s
   | j |> S r	   rU   rV   r   r   r   
__lshift__   r?   zProxy.__lshift__c                 C   s
   | j |? S r	   rU   rV   r   r   r   
__rshift__   r?   zProxy.__rshift__c                 C   s
   | j |@ S r	   rU   rV   r   r   r   __and__   r?   zProxy.__and__c                 C   s
   | j |A S r	   rU   rV   r   r   r   __xor__   r?   zProxy.__xor__c                 C   s
   | j |B S r	   rU   rV   r   r   r   __or__  r?   zProxy.__or__c                 C   s
   || j  S r	   rU   rV   r   r   r   __radd__  r?   zProxy.__radd__c                 C   s
   || j  S r	   rU   rV   r   r   r   __rsub__  r?   zProxy.__rsub__c                 C   s
   || j  S r	   rU   rV   r   r   r   __rmul__
  r?   zProxy.__rmul__c                 C   s
   || j  S r	   rU   rV   r   r   r   __rmatmul__  r?   zProxy.__rmatmul__c                 C      t || jS r	   )rl   divr   rV   r   r   r   __rdiv__  ro   zProxy.__rdiv__c                 C   r   r	   rk   rV   r   r   r   __rtruediv__  ro   zProxy.__rtruediv__c                 C   s
   || j  S r	   rU   rV   r   r   r   __rfloordiv__  r?   zProxy.__rfloordiv__c                 C   s
   || j  S r	   rU   rV   r   r   r   __rmod__  r?   zProxy.__rmod__c                 C   s   t || jS r	   rr   rV   r   r   r   __rdivmod__  rT   zProxy.__rdivmod__c                 G   s   t || jg|R  S r	   ru   rw   r   r   r   __rpow__  rz   zProxy.__rpow__c                 C   s
   || j > S r	   rU   rV   r   r   r   __rlshift__"  r?   zProxy.__rlshift__c                 C   s
   || j ? S r	   rU   rV   r   r   r   __rrshift__%  r?   zProxy.__rrshift__c                 C   s
   || j @ S r	   rU   rV   r   r   r   __rand__(  r?   zProxy.__rand__c                 C   s
   || j A S r	   rU   rV   r   r   r   __rxor__+  r?   zProxy.__rxor__c                 C   s
   || j B S r	   rU   rV   r   r   r   __ror__.  r?   zProxy.__ror__c                 C   s   |  j |7  _ | S r	   rU   rV   r   r   r   __iadd__1     zProxy.__iadd__c                 C   s   |  j |8  _ | S r	   rU   rV   r   r   r   __isub__5  r   zProxy.__isub__c                 C   s   |  j |9  _ | S r	   rU   rV   r   r   r   __imul__9  r   zProxy.__imul__c                 C   s   |  j |  _ | S r	   rU   rV   r   r   r   __imatmul__=  r   zProxy.__imatmul__c                 C   s   t | j|| _| S r	   )rl   itruedivr   rV   r   r   r   __itruediv__A  s   zProxy.__itruediv__c                 C   s   |  j |  _ | S r	   rU   rV   r   r   r   __ifloordiv__E  r   zProxy.__ifloordiv__c                 C   s   |  j |;  _ | S r	   rU   rV   r   r   r   __imod__I  r   zProxy.__imod__c                 C   s   |  j |C  _ | S r	   rU   rV   r   r   r   __ipow__M  r   zProxy.__ipow__c                 C   s   |  j |K  _ | S r	   rU   rV   r   r   r   __ilshift__Q  r   zProxy.__ilshift__c                 C   s   |  j |L  _ | S r	   rU   rV   r   r   r   __irshift__U  r   zProxy.__irshift__c                 C   s   |  j |M  _ | S r	   rU   rV   r   r   r   __iand__Y  r   zProxy.__iand__c                 C   s   |  j |N  _ | S r	   rU   rV   r   r   r   __ixor__]  r   zProxy.__ixor__c                 C   s   |  j |O  _ | S r	   rU   rV   r   r   r   __ior__a  r   zProxy.__ior__c                 C   s   | j  S r	   rU   r   r   r   r   __neg__e     zProxy.__neg__c                 C   s   | j 
 S r	   rU   r   r   r   r   __pos__h  r   zProxy.__pos__c                 C   r<   r	   )absr   r   r   r   r   __abs__k  r?   zProxy.__abs__c                 C   s   | j  S r	   rU   r   r   r   r   
__invert__n  r   zProxy.__invert__c                 C   r<   r	   )intr   r   r   r   r   __int__q  r?   zProxy.__int__c                 C   r<   r	   )floatr   r   r   r   r   	__float__t  r?   zProxy.__float__c                 C   r<   r	   )octr   r   r   r   r   __oct__w  r?   zProxy.__oct__c                 C   r<   r	   )hexr   r   r   r   r   __hex__z  r?   zProxy.__hex__c                 C   s"   t | jdrt| jS t| jS )N	__index__)rd   r   rl   indexr   r   r   r   r   r   }  s   
zProxy.__index__c                 C   r<   r	   )lenr   r   r   r   r   __len__  r?   zProxy.__len__c                 C   s
   || j v S r	   rU   r   r   r   r   __contains__  r?   zProxy.__contains__c                 C   s
   | j | S r	   rU   r   keyr   r   r   __getitem__  r?   zProxy.__getitem__c                 C   s   || j |< d S r	   rU   )r   r   r   r   r   r   __setitem__  ro   zProxy.__setitem__c                 C   s   | j |= d S r	   rU   r   r   r   r   __delitem__  rT   zProxy.__delitem__c                 C   s   | j || S r	   rU   r   ijr   r   r   __getslice__  ro   zProxy.__getslice__c                 C   s   || j ||< d S r	   rU   )r   r   r   r   r   r   r   __setslice__  r.   zProxy.__setslice__c                 C   s   | j ||= d S r	   rU   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   rx   kwargsr   r   r   r     r.   zProxy.__exit__c                 C   r<   r	   )iterr   r   r   r   r   __iter__  r?   zProxy.__iter__c                 C   r<   r	   )nextr   r   r   r   r   __next__  r?   zProxy.__next__c                 O   s   | j |i |S r	   rU   r   r   r   r   __call__  r   zProxy.__call__c                 C      t | jffS r	   r   r   r   r   r   r   
__reduce__  rT   zProxy.__reduce__c                 C   r   r	   r   )r   protocolr   r   r   __reduce_ex__  rT   zProxy.__reduce_ex__c                 C   s   | j |S r	   )r   
__format__)r   format_specr   r   r   r     rT   zProxy.__format__r   )
__aenter__)	__aexit__)	__aiter__)	__anext__)	__await__r	   )lr   r   r   r   	__slots__r-   r   r*   __getattribute__r1   r+   r3   r   deleterr   r9   r;   r>   rA   rC   rH   rI   rO   rS   rX   rY   rZ   r[   r\   r]   r_   rb   rc   r0   rg   rh   ri   rj   rn   rp   rq   rt   ry   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   utilsr   r   r   r   r   r   r   r   r   r'   @   s    






r'   )rl   compatr   r   r   r   r   r   r!   r   r'   r   r   r   r   <module>   s    +