
    Zch0                         d dl Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ  G d	 d
e	          Z
 G d de          Z G d d ee                    ZdS )    N   )PY2)PY3)string_types)with_metaclass)await_)identityc                       e Zd Zed             Zej        d             Zed             Zej        d             Zed             Zed             ZdS )_ProxyMethodsc                     | j         j        S N__wrapped__
__module__selfs    7lib/python3.11/site-packages/lazy_object_proxy/slots.pyr   z_ProxyMethods.__module__   s    **    c                     || j         _        d S r   r   r   values     r   r   z_ProxyMethods.__module__   s    &+###r   c                     | j         j        S r   r   __doc__r   s    r   r   z_ProxyMethods.__doc__   s    ''r   c                     || j         _        d S r   r   r   s     r   r   z_ProxyMethods.__doc__!   s    #(   r   c                     | j         j        S r   )r   __dict__r   s    r   r   z_ProxyMethods.__dict__(       ((r   c                     | j         j        S r   )r   __weakref__r   s    r   r    z_ProxyMethods.__weakref__1   s    ++r   N)__name__r   __qualname__propertysetterr   r   r     r   r   r   r      s         + + X+ , , , ( ( X( ^) ) ^) ) ) X) , , X, , ,r   r   c                       e Zd Zd ZdS )_ProxyMetaTypec                     |                     t          t                               t                              | |||          S r   )updatevarsr   type__new__)clsnamebases
dictionarys       r   r,   z_ProxyMetaType.__new__7   s8     	$}--...||Cuj999r   N)r!   r   r"   r,   r%   r   r   r'   r'   6   s#        : : : : :r   r'   c                       e Zd ZdZdZd Zeej        fd            Z	eej        ej
        ej        fd            Zej        ej        fd            Zej        ej
        fd            Zed             Z e j        d	             Z ed
             Zej        d             Zed             Zej        d             Zd Zd Zerd Zej        fdZd Zd Zerd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!ej
        fdZ
d Z"ej        f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. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:d9 Z;d: Z<d; Z=d< Z>d= Z?d> Z@d? ZAd@ ZBdA ZCdB ZDdC ZEdD ZFdE ZGdF ZHdG ZIdH ZJdI ZKdJ ZLdK ZMdL ZNdM ZOdN ZPeQrdO ZRdP ZSdQ ZTdR ZUdS ZVdT ZWdU ZXdV ZYdW ZZdX Z[dY Z\dZ Z]d[ Z^d\ Z_d] Z`d^ Zad_ Zbd` Zcda Zddb Zeefr'dcddlgmhZh dcdelgmiZi dcdflgmjZj dcdglgmkZk dcdhlgmlZl ejekeleheif diS diS )j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.
    )
__target____factory__c                 >    t                               | d|           d S )Nr4   )object__setattr__)r   factorys     r   __init__zProxy.__init__T   s     488888r   c                 B    	  || d           dS # t           $ r Y dS w xY w)Nr3   TF)AttributeError)r   __getattr__s     r   __resolved__zProxy.__resolved__W   sD    	Kl+++ 4  	 	 	55	s    
c                     	  || d          S # t           $ rG 	  || d          }n# t           $ r t          d          w xY w |            } || d|           |cY S w xY w)Nr3   r4   z4Proxy hasn't been initiated: __factory__ is missing.)r;   
ValueError)r   r<   r7   __delattr__r8   targets         r   r   zProxy.__wrapped__`   s    		;t\222 	 	 	Y%+dM::! Y Y Y !WXXXYWYYFKlF333MMM	s#    
A&AA  AAc                      || d           d S Nr3   r%   )r   r@   s     r   r   zProxy.__wrapped__n   s    D,'''''r   c                       || d|           d S rC   r%   )r   rA   r7   s      r   r   zProxy.__wrapped__r   s    D,/////r   c                     | j         j        S r   r   r!   r   s    r   r!   zProxy.__name__v   r   r   c                     || j         _        d S r   rF   r   s     r   r!   zProxy.__name__z   s    $)!!!r   c                     | j         j        S r   r   	__class__r   s    r   rJ   zProxy.__class__~   s    ))r   c                     || j         _        d S r   rI   r   s     r   rJ   zProxy.__class__   s    %*"""r   c                     | j         j        S r   )r   __anotations__r   s    r   __annotations__zProxy.__annotations__   s    ..r   c                     || j         _        d S r   )r   rN   r   s     r   rN   zProxy.__annotations__   s    +0(((r   c                 *    t          | j                  S r   )dirr   r   s    r   __dir__zProxy.__dir__       4#$$$r   c                 *    t          | j                  S r   )strr   r   s    r   __str__zProxy.__str__   rS   r   c                 *    t          | j                  S r   )bytesr   r   s    r   	__bytes__zProxy.__bytes__       )***r   c                 F   	  || d          }d                     t          |           j        t          |           |t          |          | j                  S # t
          $ r> d                     t          |           j        t          |           | j                  cY S w xY w)Nr3   z8<{} at 0x{:x} wrapping {!r} at 0x{:x} with factory {!r}>z <{} at 0x{:x} with factory {!r}>)formatr+   r!   idr4   r;   )r   r<   rA   s      r   __repr__zProxy.__repr__   s    	 [|44F NTTT

#RXX6

     	 	 	5<<T

#RXX     	s   A AB B c                 |    | j         }t          |t                    r|S t          |dd           }||S  |            S )N
__fspath__)r   
isinstancer   getattr)r   wrappedfspaths      r   r`   zProxy.__fspath__   sJ    "g|,, 	 NWlD99F  vxxr   c                 *    t          | j                  S r   )reversedr   r   s    r   __reversed__zProxy.__reversed__   s    ()))r   c                 *    t          | j                  S r   )roundr   r   s    r   	__round__zProxy.__round__   rZ   r   c                     | j         |k     S r   r   r   others     r   __lt__zProxy.__lt__       %''r   c                     | j         |k    S r   rl   rm   s     r   __le__zProxy.__le__       5((r   c                     | j         |k    S r   rl   rm   s     r   __eq__zProxy.__eq__   rs   r   c                     | j         |k    S r   rl   rm   s     r   __ne__zProxy.__ne__   rs   r   c                     | j         |k    S r   rl   rm   s     r   __gt__zProxy.__gt__   rp   r   c                     | j         |k    S r   rl   rm   s     r   __ge__zProxy.__ge__   rs   r   c                 *    t          | j                  S r   )hashr   r   s    r   __hash__zProxy.__hash__       D$%%%r   c                 *    t          | j                  S r   boolr   r   s    r   __nonzero__zProxy.__nonzero__   r   r   c                 *    t          | j                  S r   r   r   s    r   __bool__zProxy.__bool__   r   r   c                     t          t          |           |          r || ||           d S t          | j        ||           d S r   )hasattrr+   setattrr   )r   r.   r   r7   s       r   r7   zProxy.__setattr__   sO    4::t$$ 	3KdE*****D$dE22222r   c                 R    |dv rt          |          t          | j        |          S )N)r   r4   )r;   rb   r   )r   r.   s     r   r<   zProxy.__getattr__   s1    11 	3 &&&4+T222r   c                     t          t          |           |          r || |           d S t          | j        |           d S r   )r   r+   delattrr   )r   r.   r@   s      r   r@   zProxy.__delattr__   sK    4::t$$ 	,Kd#####D$d+++++r   c                     | j         |z   S r   rl   rm   s     r   __add__zProxy.__add__       %''r   c                     | j         |z
  S r   rl   rm   s     r   __sub__zProxy.__sub__   r   r   c                     | j         |z  S r   rl   rm   s     r   __mul__zProxy.__mul__   r   r   c                 6    t          j        | j        |          S r   operatordivr   rm   s     r   __div__zProxy.__div__   s    |D,e444r   c                 6    t          j        | j        |          S r   r   truedivr   rm   s     r   __truediv__zProxy.__truediv__   s     0%888r   c                     | j         |z  S r   rl   rm   s     r   __floordiv__zProxy.__floordiv__       5((r   c                     | j         |z  S r   rl   rm   s     r   __mod__zProxy.__mod__   r   r   c                 ,    t          | j        |          S r   divmodr   rm   s     r   
__divmod__zProxy.__divmod__   s    d&...r   c                 (    t          | j        |g|R  S r   powr   r   rn   argss      r   __pow__zProxy.__pow__   s    4#U2T2222r   c                     | j         |z  S r   rl   rm   s     r   
__lshift__zProxy.__lshift__  r   r   c                     | j         |z	  S r   rl   rm   s     r   
__rshift__zProxy.__rshift__  r   r   c                     | j         |z  S r   rl   rm   s     r   __and__zProxy.__and__  r   r   c                     | j         |z  S r   rl   rm   s     r   __xor__zProxy.__xor__
  r   r   c                     | j         |z  S r   rl   rm   s     r   __or__zProxy.__or__  r   r   c                     || j         z   S r   rl   rm   s     r   __radd__zProxy.__radd__      t'''r   c                     || j         z
  S r   rl   rm   s     r   __rsub__zProxy.__rsub__  r   r   c                     || j         z  S r   rl   rm   s     r   __rmul__zProxy.__rmul__  r   r   c                 6    t          j        || j                  S r   r   rm   s     r   __rdiv__zProxy.__rdiv__  s    |E4#3444r   c                 6    t          j        || j                  S r   r   rm   s     r   __rtruediv__zProxy.__rtruediv__  s    t'7888r   c                     || j         z  S r   rl   rm   s     r   __rfloordiv__zProxy.__rfloordiv__      (((r   c                     || j         z  S r   rl   rm   s     r   __rmod__zProxy.__rmod__"  r   r   c                 ,    t          || j                  S r   r   rm   s     r   __rdivmod__zProxy.__rdivmod__%  s    eT-...r   c                 (    t          || j        g|R  S r   r   r   s      r   __rpow__zProxy.__rpow__(  s    5$*2T2222r   c                     || j         z  S r   rl   rm   s     r   __rlshift__zProxy.__rlshift__+  r   r   c                     || j         z	  S r   rl   rm   s     r   __rrshift__zProxy.__rrshift__.  r   r   c                     || j         z  S r   rl   rm   s     r   __rand__zProxy.__rand__1  r   r   c                     || j         z  S r   rl   rm   s     r   __rxor__zProxy.__rxor__4  r   r   c                     || j         z  S r   rl   rm   s     r   __ror__zProxy.__ror__7  r   r   c                 &    | xj         |z  c_         | S r   rl   rm   s     r   __iadd__zProxy.__iadd__:      E!r   c                 &    | xj         |z  c_         | S r   rl   rm   s     r   __isub__zProxy.__isub__>  r   r   c                 &    | xj         |z  c_         | S r   rl   rm   s     r   __imul__zProxy.__imul__B  r   r   c                 D    t          j        | j        |          | _        | S r   )r   idivr   rm   s     r   __idiv__zProxy.__idiv__F  s    #=)95AAr   c                 D    t          j        | j        |          | _        | S r   )r   itruedivr   rm   s     r   __itruediv__zProxy.__itruediv__J  s    #,T-=uEEr   c                 &    | xj         |z  c_         | S r   rl   rm   s     r   __ifloordiv__zProxy.__ifloordiv__N      U"r   c                 &    | xj         |z  c_         | S r   rl   rm   s     r   __imod__zProxy.__imod__R  r   r   c                 &    | xj         |z  c_         | S r   rl   rm   s     r   __ipow__zProxy.__ipow__V  r   r   c                 &    | xj         |z  c_         | S r   rl   rm   s     r   __ilshift__zProxy.__ilshift__Z  r   r   c                 &    | xj         |z  c_         | S r   rl   rm   s     r   __irshift__zProxy.__irshift__^  r   r   c                 &    | xj         |z  c_         | S r   rl   rm   s     r   __iand__zProxy.__iand__b  r   r   c                 &    | xj         |z  c_         | S r   rl   rm   s     r   __ixor__zProxy.__ixor__f  r   r   c                 &    | xj         |z  c_         | S r   rl   rm   s     r   __ior__zProxy.__ior__j  r   r   c                     | j          S r   rl   r   s    r   __neg__zProxy.__neg__n         r   c                     | j         
 S r   rl   r   s    r   __pos__zProxy.__pos__q  r   r   c                 *    t          | j                  S r   )absr   r   s    r   __abs__zProxy.__abs__t  rS   r   c                     | j          S r   rl   r   s    r   
__invert__zProxy.__invert__w  r   r   c                 *    t          | j                  S r   )intr   r   s    r   __int__zProxy.__int__z  rS   r   c                 *    t          | j                  S r   )longr   r   s    r   __long__zProxy.__long__~  s    ()))r   c                 *    t          | j                  S r   )floatr   r   s    r   	__float__zProxy.__float__  s    T%&&&r   c                 *    t          | j                  S r   )octr   r   s    r   __oct__zProxy.__oct__  rS   r   c                 *    t          | j                  S r   )hexr   r   s    r   __hex__zProxy.__hex__  rS   r   c                 4    t          j        | j                  S r   )r   indexr   r   s    r   	__index__zProxy.__index__  s    ~d.///r   c                 *    t          | j                  S r   )lenr   r   s    r   __len__zProxy.__len__  rS   r   c                     || j         v S r   rl   r   s     r   __contains__zProxy.__contains__  s    (((r   c                     | j         |         S r   rl   r   keys     r   __getitem__zProxy.__getitem__  s    $$r   c                     || j         |<   d S r   rl   )r   r  r   s      r   __setitem__zProxy.__setitem__  s     %r   c                     | j         |= d S r   rl   r  s     r   __delitem__zProxy.__delitem__  s    S!!!r   c                      | j         ||         S r   rl   r   ijs      r   __getslice__zProxy.__getslice__  s    !$$r   c                     || j         ||<   d S r   rl   )r   r  r  r   s       r   __setslice__zProxy.__setslice__  s     %1r   c                     | j         ||= d S r   rl   r  s      r   __delslice__zProxy.__delslice__  s    QqS!!!r   c                 4    | j                                         S r   )r   	__enter__r   s    r   r$  zProxy.__enter__  s    ))+++r   c                 &     | j         j        |i |S r   )r   __exit__r   r   kwargss      r   r&  zProxy.__exit__  s    (t($9&999r   c                 *    t          | j                  S r   )iterr   r   s    r   __iter__zProxy.__iter__  r   r   c                 *    t          | j                  S r   )nextr   r   s    r   __next__zProxy.__next__  r   r   c                      | j         |i |S r   rl   r'  s      r   __call__zProxy.__call__  s    t0000r   c                      t           | j        ffS r   r	   r   r   s    r   
__reduce__zProxy.__reduce__      $*,,,r   c                      t           | j        ffS r   r2  )r   protocols     r   __reduce_ex__zProxy.__reduce_ex__  r4  r   r   )
__aenter__)	__aexit__)	__aiter__)	__anext__)	__await__N)mr!   r   r"   r   	__slots__r9   r#   r6   __getattribute__r=   r7   r@   r   deleterr$   rJ   rN   rR   rV   r   rY   r^   r`   rg   rj   ro   rr   ru   rw   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  r  r  r  r  r   r"  r$  r&  r+  r.  r0  r3  r7  r   utilsr8  r9  r:  r;  r<  r%   r   r   r2   r2   B   sF         ,I9 9 9 '-'>    X &,&=6K] & 2   X &,&8 ( ( ( ( .4.@ 0 0 0 0 ) ) X) _* * _* * * X* + + + / / X/ 1 1 1% % %% % %  +	+ 	+ 	+ $*#:    	  	  	 * * *  +	+ 	+ 	+( ( () ) )) ) )) ) )( ( () ) )& & && & && & & 4:3E 3 3 3 33 3 3 -3,> , , , ,( ( (( ( (( ( (5 5 59 9 9) ) )( ( (/ / /3 3 3) ) )) ) )( ( (( ( (( ( (( ( (( ( (( ( (5 5 59 9 9) ) )( ( (/ / /3 3 3) ) )) ) )( ( (( ( (( ( (                          ! ! !! ! !% % %! ! !% % %  *	* 	* 	*' ' '% % %% % %0 0 0% % %) ) )% % %& & &" " "% % %& & &" " ", , ,: : :& & && & &1 1 1- - -- - -  ?%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$9iY>>>>? ?r   r2   )r   compatr   r   r   r   r@  r   r	   r6   r   r+   r'   r2   r%   r   r   <module>rB     s                            " " " " " "            (, (, (, (, (,F (, (, (,V	: 	: 	: 	: 	:T 	: 	: 	:? ? ? ? ?NN>** ? ? ? ? ?r   