Ë
    §Œ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„ 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                   ó8   ‡ — e Zd ZdZed„ «       Zˆ fd„Zd„ Zˆ xZS )Ú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/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/wrapt/proxies.pyÚ__object_proxy__zObjectProxy.__object_proxy__   s   € äÐó    c                 ó"   •— t         ‰| �  | «      S r   )ÚsuperÚ__new__)ÚclsÚargsÚkwargsÚ	__class__s      €r   r   zObjectProxy.__new__   s   ø€ Ü‰w‰˜sÓ#Ð#r   c                 ó,   — t        | j                  «      S r   ©ÚiterÚ__wrapped__r   s    r   Ú__iter__zObjectProxy.__iter__   s   € Ü�D×$Ñ$Ó%Ð%r   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r   r   Ú__classcell__©r   s   @r   r	   r	      s&   ø„ ñ#ð ñó ðô$ö&r   r	   c                  ó<   — d„ } || Ž \  }}  |j                   | i |¤ŽS )Nc                 ó
   — | |fS r   © )r   r   s     r   Ú_unpack_selfz&__wrapper_call__.<locals>._unpack_self%   s   € Ø�TˆzÐr   )r   )r   r   r'   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-   1   s   € Ø×Ñ×$Ñ$Ó&Ð&r   c                 ó6   — | j                   j                  «       S r   )r   Ú	__aiter__r   s    r   Ú__wrapper_aiter__r0   5   s   € Ø×Ñ×%Ñ%Ó'Ð'r   c              ƒ   óR   K  — | j                   j                  «       ƒ d {  –—† S 7 Œ­wr   )r   Ú	__anext__r   s    r   Ú__wrapper_anext__r3   9   s!   è ø€ Ø×!Ñ!×+Ñ+Ó-×-Ð-Ð-úó   ‚' %¡'c                 ó6   — | j                   j                  «       S r   )r   Ú__length_hint__r   s    r   Ú__wrapper_length_hint__r7   =   s   € Ø×Ñ×+Ñ+Ó-Ð-r   c                 ó6   — | j                   j                  «       S r   )r   Ú
__fspath__r   s    r   Ú__wrapper_fspath__r:   A   s   € Ø×Ñ×&Ñ&Ó(Ð(r   c              #   óR   K  — | j                   j                  «       E d {  –—† S 7 Œ­wr   )r   Ú	__await__r   s    r   Ú__wrapper_await__r=   E   s!   è ø€ Ø×'Ñ'×1Ñ1Ó3×3Ð4Ð3úr4   c                 ó:   — | j                   j                  ||«      S r   )r   Ú__get__)r   ÚinstanceÚowners      r   Ú__wrapper_get__rB   I   ó   € Ø×Ñ×#Ñ# H¨eÓ4Ð4r   c                 ó:   — | j                   j                  ||«      S r   )r   Ú__set__)r   r@   Úvalues      r   Ú__wrapper_set__rG   M   rC   r   c                 ó8   — | j                   j                  |«      S r   )r   Ú
__delete__)r   r@   s     r   Ú__wrapper_delete__rJ   Q   s   € Ø×Ñ×&Ñ& xÓ0Ð0r   c                 ó:   — | j                   j                  ||«      S r   )r   Ú__set_name__)r   rA   Únames      r   Ú__wrapper_set_name__rN   U   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 )úzInjects special dunder methods into a dynamically created subclass
        as needed based on the wrapped object.
        Ú__call__r   r,   r/   r2   r6   r9   r<   r?   rE   rI   rL   )ÚdirÚsetÚcallabler(   r*   r-   r0   r3   r7   r:   r=   rB   rG   rJ   rN   r   rP   r   r   r   Útype)r   ÚwrappedÚ	namespaceÚwrapped_attrsÚclass_attrsrM   r   s         €r   r   zAutoObjectProxy.__new__c   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.
        rS   Nr   r,   r/   r2   r6   r9   r<   r?   rE   rI   rL   ) rW   rU   rT   rV   r   r(   rS   ÚgetattrÚdelattrÚhasattrr*   r   r-   r,   r0   r/   r3   r2   r7   r6   r:   r9   r=   r<   rB   r?   rG   rE   rJ   rI   rN   rL   )r   r   r[   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    r   r`   r"   r#   s   @r   rP   rP   Y   s   ø„ ñô:RöxN)r   rP   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 )rR   .NrS   r   r,   r/   r2   r6   r<   r?   rE   rI   rL   )rW   rT   rU   r(   r*   r-   r0   r3   r7   r=   rB   rG   rJ   rN   r   r   rP   r   )r   Úcallbackrd   rY   Úinterface_attrsr[   rM   r   s          €r   r   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__r   Ú__init__)r   rf   rd   r   s      €r   rj   zLazyObjectProxy.__init__1  s    ø€ ð ÐØ'/ˆDÔ$ä‰Ñ˜Õr   Fc                  ó   — y r   r&   r   s    r   ri   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   rW   Ú__wrapped_get_called__r   ri   r   s    r   Ú__wrapped_get__zLazyObjectProxy.__wrapped_get__B  s\   € ô œ$˜t›*Õ%ð ×*Ò*Ø×'Ñ'÷ &Ñ%ð  $×7Ñ7Ó9ˆDÔà*.ˆDÔ'à×#Ñ#÷ &×%Ò%ús   •A(·'A(Á(A1r   )
r   r   r   r    r   rj   rm   ri   rn   r"   r#   s   @r   rb   rb   ð   s5   ø„ ñð:R°ö :Rðx
°3ö 
ð #Ðòö$r   rb   N.rc   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__r]   )ÚmoduleÚ	attributerM   s    €€r   Ú_importzlazy_import.<locals>._importj  s)   ø€ Ü˜D¨B¨4Ô0ˆàÐ Ü˜6 9Ó-Ð-àˆr   rc   )r   r   rb   )rM   ru   rd   rv   s   ``  r   Úlazy_importrw   [  s9   ù€ ð ÐØ˜ÑÜ ‰Ià˜ÑÜ"ˆIõô ˜7¨iÔ8Ð8r   r   )r    Úcollections.abcr   Útypesr   Ú	__wrapt__r   Úsynchronizationr   r	   r(   r*   r-   r0   r3   r7   r:   r=   rB   rG   rJ   rN   rP   rb   rw   r&   r   r   Ú<module>r|      s†   ðÙ 6å $Ý å &Ý )ô&�/ô &ò.-ò"ò'ò(ò.ò.ò)ò5ò5ò5ò1ò6ôT)�oô T)ônh$�oô h$ðV9°3õ 9r   