Ë
    �š¾j×4  ã                   óÒ   — d 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	d	„ Z
d
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Z G d„ de«      Z G d„ de«      Zdddœd„Zy)z0Variants of ObjectProxy for different use cases.é    )ÚCallable)Ú
ModuleTypeé   )ÚBaseObjectProxy)Úsynchronizedc                   ó&   — e Zd ZdZed„ «       Zd„ Zy)ÚObjectProxya�  A generic object proxy which forwards special methods as needed.
    For backwards compatibility this class adds support for `__iter__()`. If
    you don't need backward compatibility for `__iter__()` support then it is
    preferable to use `BaseObjectProxy` directly. If you want automatic
    support for special dunder methods for callables, iterators, and async,
    then use `AutoObjectProxy`.c                 ó   — t         S ©N)r	   ©Úselfs    úW/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/wrapt/proxies.pyÚ__object_proxy__zObjectProxy.__object_proxy__   s   € äÐó    c                 ó,   — t        | j                  «      S r   ©ÚiterÚ__wrapped__r   s    r   Ú__iter__zObjectProxy.__iter__   s   € Ü�D×$Ñ$Ó%Ð%r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r   © r   r   r	   r	      s    „ ñ#ð ñó ðó&r   r	   c                  ó<   — d„ } || Ž \  }}  |j                   | i |¤ŽS )Nc                 ó
   — | |fS r   r   )r   Úargss     r   Ú_unpack_selfz&__wrapper_call__.<locals>._unpack_self"   s   € Ø�TˆzÐr   )r   )r   Úkwargsr   r   s       r   Ú__wrapper_call__r!   !   s/   € òñ ˜tÐ$�J€Dˆ$àˆ4×Ñ˜TÐ, VÑ,Ð,r   c                 ó,   — t        | j                  «      S r   r   r   s    r   Ú__wrapper_iter__r#   *   s   € Ü�× Ñ Ó!Ð!r   c                 ó6   — | j                   j                  «       S r   )r   Ú__next__r   s    r   Ú__wrapper_next__r&   .   s   € Ø×Ñ×$Ñ$Ó&Ð&r   c                 ó6   — | j                   j                  «       S r   )r   Ú	__aiter__r   s    r   Ú__wrapper_aiter__r)   2   s   € Ø×Ñ×%Ñ%Ó'Ð'r   c              ƒ   óR   K  — | j                   j                  «       ƒ d {  –—† S 7 Œ­wr   )r   Ú	__anext__r   s    r   Ú__wrapper_anext__r,   6   s!   è ø€ Ø×!Ñ!×+Ñ+Ó-×-Ð-Ð-úó   ‚' %¡'c                 ó6   — | j                   j                  «       S r   )r   Ú__length_hint__r   s    r   Ú__wrapper_length_hint__r0   :   s   € Ø×Ñ×+Ñ+Ó-Ð-r   c                 ó6   — | j                   j                  «       S r   )r   Ú
__fspath__r   s    r   Ú__wrapper_fspath__r3   >   s   € Ø×Ñ×&Ñ&Ó(Ð(r   c              #   óR   K  — | j                   j                  «       E d {  –—† S 7 Œ­wr   )r   Ú	__await__r   s    r   Ú__wrapper_await__r6   B   s!   è ø€ Ø×'Ñ'×1Ñ1Ó3×3Ð4Ð3úr-   Nc                 ó:   — | j                   j                  ||«      S r   )r   Ú__get__)r   ÚinstanceÚowners      r   Ú__wrapper_get__r;   F   ó   € Ø×Ñ×#Ñ# H¨eÓ4Ð4r   c                 ó:   — | j                   j                  ||«      S r   )r   Ú__set__)r   r9   Úvalues      r   Ú__wrapper_set__r@   J   r<   r   c                 ó8   — | j                   j                  |«      S r   )r   Ú
__delete__)r   r9   s     r   Ú__wrapper_delete__rC   N   s   € Ø×Ñ×&Ñ& xÓ0Ð0r   c                 ó:   — | j                   j                  ||«      S r   )r   Ú__set_name__)r   r:   Únames      r   Ú__wrapper_set_name__rG   R   s   € Ø×Ñ×(Ñ(¨°Ó5Ð5r   c                   ó(   ‡ — e Zd ZdZˆ fd„Zd„ Zˆ xZS )ÚAutoObjectProxyaÿ  An object proxy which can automatically adjust to the wrapped object
    and add special dunder methods as needed. Note that this creates a new
    class for each instance, so it has much higher memory overhead than using
    `BaseObjectProxy` directly. If you know what special dunder methods you need
    then it is preferable to use `BaseObjectProxy` directly and add them to a
    subclass as needed. If you only need `__iter__()` support for backwards
    compatibility then use `ObjectProxy` instead.
    c                 ór  •— i }t        |«      }t        t        | «      «      }t        |«      rd|vr	t        |d<   d|v rd|vr	t        |d<   d|v rd|vr	t
        |d<   d|v rd|vr	t        |d<   d|v rd|vr	t        |d<   d|v rd|vr	t        |d<   d|v rd|vr	t        |d<   d|v rd|vr	t        |d<   d	|v rd	|vr	t        |d	<   d
|v rd
|vr	t        |d
<   d|v rd|vr	t        |d<   d|v rd|vr	t        |d<   | j                  }| t         u rt"        j                  }t$        t         | �O  t)        || f|«      «      S )zÝInjects special dunder methods into a dynamically created subclass
        as needed based on the wrapped object. Any further arguments are
        those a derived class has added to `__init__()` and are ignored.
        Ú__call__r   r%   r(   r+   r/   r2   r5   r8   r>   rB   rE   )ÚdirÚsetÚcallabler!   r#   r&   r)   r,   r0   r3   r6   r;   r@   rC   rG   r   rI   r   ÚsuperÚ__new__Útype)	ÚclsÚwrappedr   r    Ú	namespaceÚwrapped_attrsÚclass_attrsrF   Ú	__class__s	           €r   rP   zAutoObjectProxy.__new__`   s‹  ø€ ð ˆ	ä˜G›ˆÜœ#˜c›(“mˆä�GÔ °;Ñ!>Ü$4ˆI�jÑ!à˜Ñ&¨:¸[Ñ+HÜ$4ˆI�jÑ!à˜Ñ&¨:¸[Ñ+HÜ$4ˆI�jÑ!à˜-Ñ'¨K¸{Ñ,JÜ%6ˆI�kÑ"à˜-Ñ'¨K¸{Ñ,JÜ%6ˆI�kÑ"à Ñ-Ð2CÈ;Ñ2VÜ+BˆIÐ'Ñ(à˜=Ñ(¨\ÀÑ-LÜ&8ˆI�lÑ#ð ˜-Ñ'¨K¸{Ñ,JÜ%6ˆI�kÑ"à˜Ñ%¨)¸;Ñ*FÜ#2ˆI�iÑ à˜Ñ%¨)¸;Ñ*FÜ#2ˆI�iÑ à˜=Ñ(¨\ÀÑ-LÜ&8ˆI�lÑ#à˜]Ñ*¨~À[Ñ/PÜ(<ˆI�nÑ%à�|‰|ˆà”/Ñ!Ü"×+Ñ+ˆDô
 ”_ cÑ2´4¸¸s¸fÀiÓ3PÓQÐQr   c                 ó¼  — t        | «      }t        t        |«      «      }t        | j                  «      rd|vr+t
        |_        nt        |dd«      t
        u rt        |d«       t        | j                  d«      rd|vr+t        |_        nt        |dd«      t        u rt        |d«       t        | j                  d«      rd|vr+t        |_        nt        |dd«      t        u rt        |d«       t        | j                  d«      rd|vr+t        |_        nt        |dd«      t        u rt        |d«       t        | j                  d«      rd|vr+t         |_        nt        |dd«      t         u rt        |d«       t        | j                  d«      rd|vr+t$        |_        nt        |dd«      t$        u rt        |d«       t        | j                  d«      rd|vr+t(        |_        nt        |dd«      t(        u rt        |d«       t        | j                  d	«      rd	|vr+t,        |_        nt        |d	d«      t,        u rt        |d	«       t        | j                  d
«      rd
|vr+t0        |_        nt        |d
d«      t0        u rt        |d
«       t        | j                  d«      rd|vr+t4        |_        nt        |dd«      t4        u rt        |d«       t        | j                  d«      rd|vr+t8        |_        nt        |dd«      t8        u rt        |d«       t        | j                  d«      rd|vrt<        |_        yyt        |dd«      t<        u rt        |d«       yy)z‚Adjusts special dunder methods on the class as needed based on the
        wrapped object, when `__wrapped__` is changed.
        rK   Nr   r%   r(   r+   r/   r2   r5   r8   r>   rB   rE   ) rQ   rM   rL   rN   r   r!   rK   ÚgetattrÚdelattrÚhasattrr#   r   r&   r%   r)   r(   r,   r+   r0   r/   r3   r2   r6   r5   r;   r8   r@   r>   rC   rB   rG   rE   )r   rR   rV   s      r   Ú__wrapped_setattr_fixups__z*AutoObjectProxy.__wrapped_setattr_fixups__�   sê  € ô
 �4‹jˆÜœ#˜c›(“mˆä�D×$Ñ$Ô%Ø Ñ,Ü/�•Ü�S˜* dÓ+Ô/?Ñ?Ü�C˜Ô$ä�4×#Ñ# ZÔ0Ø Ñ,Ü/�•Ü�S˜* dÓ+Ô/?Ñ?Ü�C˜Ô$ä�4×#Ñ# ZÔ0Ø Ñ,Ü/�•Ü�S˜* dÓ+Ô/?Ñ?Ü�C˜Ô$ä�4×#Ñ# [Ô1Ø +Ñ-Ü 1�•Ü�S˜+ tÓ,Ô0AÑAÜ�C˜Ô%ä�4×#Ñ# [Ô1Ø +Ñ-Ü 1�•Ü�S˜+ tÓ,Ô0AÑAÜ�C˜Ô%ä�4×#Ñ#Ð%6Ô7Ø ¨Ñ3Ü&=�Õ#Ü�SÐ+¨TÓ2Ô6MÑMÜ�CÐ*Ô+ä�4×#Ñ# \Ô2Ø ;Ñ.Ü!3�•Ü�S˜,¨Ó-Ô1CÑCÜ�C˜Ô&ä�4×#Ñ# [Ô1Ø +Ñ-Ü 1�•Ü�S˜+ tÓ,Ô0AÑAÜ�C˜Ô%ä�4×#Ñ# YÔ/Ø Ñ+Ü-�•Ü�S˜) TÓ*¬oÑ=Ü�C˜Ô#ä�4×#Ñ# YÔ/Ø Ñ+Ü-�•Ü�S˜) TÓ*¬oÑ=Ü�C˜Ô#ä�4×#Ñ# \Ô2Ø ;Ñ.Ü!3�•Ü�S˜,¨Ó-Ô1CÑCÜ�C˜Ô&ä�4×#Ñ# ^Ô4Ø [Ñ0Ü#7�Õ ð 1ä�S˜.¨$Ó/Ô3GÑGÜ�C˜Õ(ð Hr   )r   r   r   r   rP   r\   Ú__classcell__©rW   s   @r   rI   rI   V   s   ø„ ñô;RözN)r   rI   c                   óL   ‡ — e Zd ZdZd	ddœˆ fd„Zd	ddœˆ fd„ZdZd„ Zd„ Zˆ xZ	S )
ÚLazyObjectProxyzhAn object proxy which can generate/create the wrapped object on demand
    when it is first needed.
    .©Ú	interfacec                ó0  •— |du rt        d«      }i }t        |«      }t        t        | «      «      }d|v rd|vr	t        |d<   d|v rd|vr	t        |d<   d|v rd|vr	t
        |d<   d|v rd|vr	t        |d<   d|v rd|vr	t        |d<   d|v rd|vr	t        |d<   d	|v rd	|vr	t        |d	<   d
|v rd
|vr	t        |d
<   d|v rd|vr	t        |d<   d|v rd|vr	t        |d<   d|v rd|vr	t        |d<   | j                  }t        t         | �G  t        || f|«      «      S )zÿInjects special dunder methods into a dynamically created subclass
        as needed based on the declared interface of the wrapped object. Any
        further arguments are those a derived class has added to `__init__()`
        and are ignored.
        .NrK   r   r%   r(   r+   r/   r5   r8   r>   rB   rE   )rQ   rL   rM   r!   r#   r&   r)   r,   r0   r6   r;   r@   rC   rG   r   rO   rI   rP   )
rR   Úcallbackrb   r   r    rT   Úinterface_attrsrV   rF   rW   s
            €r   rP   zLazyObjectProxy.__new__ó   sr  ø€ ð ˜ÑÜ˜T›
ˆIàˆ	ä˜i›.ˆÜœ#˜c›(“mˆà˜Ñ(¨Z¸{Ñ-JÜ$4ˆI�jÑ!à˜Ñ(¨Z¸{Ñ-JÜ$4ˆI�jÑ!à˜Ñ(¨Z¸{Ñ-JÜ$4ˆI�jÑ!à˜/Ñ)¨kÀÑ.LÜ%6ˆI�kÑ"à˜/Ñ)¨kÀÑ.LÜ%6ˆI�kÑ"ð  Ñ0Ø!¨Ñ4ä+BˆIÐ'Ñ(ð ˜/Ñ)¨kÀÑ.LÜ%6ˆI�kÑ"à˜Ñ'¨I¸[Ñ,HÜ#2ˆI�iÑ à˜Ñ'¨I¸[Ñ,HÜ#2ˆI�iÑ à˜?Ñ*¨|À;Ñ/NÜ&8ˆI�lÑ#à˜_Ñ,°À{Ñ1RÜ(<ˆI�nÑ%à�|‰|ˆô
 ”_ cÑ2´4¸¸s¸fÀiÓ3PÓQÐQr   c                ó6   •— |�|| _         t        ‰| �	  d«       y)a  Initialize the object proxy with wrapped object as `None` but due
        to presence of special `__wrapped_factory__` attribute addded first,
        this will actually trigger the deferred creation of the wrapped object
        when first needed.
        N)Ú__wrapped_factory__rO   Ú__init__)r   rd   rb   rW   s      €r   rh   zLazyObjectProxy.__init__1  s    ø€ ð ÐØ'/ˆDÔ$ä‰Ñ˜Õr   Fc                  ó   — y r   r   r   s    r   rg   z#LazyObjectProxy.__wrapped_factory__?  s   € Ør   c                 óè   — t        t        | «      «      5  | j                  r| j                  cddd«       S | j	                  «       | _        d| _        | j                  cddd«       S # 1 sw Y   yxY w)z2Gets the wrapped object, creating it if necessary.NT)r   rQ   Ú__wrapped_get_called__r   rg   r   s    r   Ú__wrapped_get__zLazyObjectProxy.__wrapped_get__B  sg   € ô œ$˜t›*Ó%ñ 	$ð ×*Ò*Ø×'Ñ'÷	$ñ 	$ð  $×7Ñ7Ó9ˆDÔà*.ˆDÔ'à×#Ñ#÷	$÷ 	$ò 	$ús   •A(·'A(Á(A1r   )
r   r   r   r   rP   rh   rk   rg   rl   r]   r^   s   @r   r`   r`   î   s5   ø„ ñð<R°Sö <Rð|
°3ö 
ð #Ðòö$r   r`   .ra   c                óZ   ‡ ‡— ‰�|du rt         }n
|du rt        }ˆˆ fd„}t        ||¬«      S )aN  Lazily imports the module `name`, returning a `LazyObjectProxy` which
    will import the module when it is first needed. When `name is a dotted name,
    then the full dotted name is imported and the last module is taken as the
    target. If `attribute` is provided then it is used to retrieve an attribute
    from the module.
    .c                  ó@   •— t        ‰dg¬«      } ‰�t        | ‰«      S | S )NÚ )Úfromlist)Ú
__import__rY   )ÚmoduleÚ	attributerF   s    €€r   Ú_importzlazy_import.<locals>._importj  s)   ø€ Ü˜D¨B¨4Ô0ˆàÐ Ü˜6 9Ó-Ð-àˆr   ra   )r   r   r`   )rF   rs   rb   rt   s   ``  r   Úlazy_importru   [  s9   ù€ ð ÐØ˜ÑÜ ‰Ià˜ÑÜ"ˆIõô ˜7¨iÔ8Ð8r   r   )r   Úcollections.abcr   Útypesr   Ú	__wrapt__r   Úsynchronizationr   r	   r!   r#   r&   r)   r,   r0   r3   r6   r;   r@   rC   rG   rI   r`   ru   r   r   r   ú<module>rz      s†   ðÙ 6å $Ý å &Ý )ô&�/ô &ò(-ò"ò'ò(ò.ò.ò)ò5ó5ò5ò1ò6ôU)�oô U)ôpj$�oô j$ðZ9°3õ 9r   