ó
    +K£j‰5  ã                   óÔ   • S r SSKJr  SSKJr  SSKJr  SSKJr   " S S\5      r	S	 r
S
 rS rS rS rS rS rS rS rS rS rS r " S S\5      r " S S\5      rSSS.S jjrg)z0Variants of ObjectProxy for different use cases.é    )ÚCallable)Ú
ModuleTypeé   )ÚBaseObjectProxy)Úsynchronizedc                   óB   ^ • \ rS rSrSr\S 5       rU 4S jrS rSr	U =r
$ )ÚObjectProxyé   a{  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                 ó   • [         $ ©N)r	   ©Úselfs    Ú›C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\wrapt/proxies.pyÚ__object_proxy__ÚObjectProxy.__object_proxy__   s   € äÐó    c                 ó"   >• [         TU ]  U 5      $ r   )ÚsuperÚ__new__)ÚclsÚargsÚkwargsÚ	__class__s      €r   r   ÚObjectProxy.__new__   s   ø€ Ü‰w‰˜sÓ#Ð#r   c                 ó,   • [        U R                  5      $ r   ©ÚiterÚ__wrapped__r   s    r   Ú__iter__ÚObjectProxy.__iter__   s   € Ü�D×$Ñ$Ó%Ð%r   © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úpropertyr   r   r   Ú__static_attributes__Ú__classcell__©r   s   @r   r	   r	      s+   ø† ñ#ð ñó ðõ$÷&ð &r   r	   c                  ó:   • S nU" U 6 u  p0UR                   " U 0 UD6$ )Nc                 ó   • X4$ r   r!   )r   r   s     r   Ú_unpack_selfÚ&__wrapper_call__.<locals>._unpack_self%   s
   € ØˆzÐr   )r   )r   r   r-   r   s       r   Ú__wrapper_call__r/   $   s+   € òñ ˜tÐ$�J€Dà×Ò˜TÐ, VÑ,Ð,r   c                 ó,   • [        U R                  5      $ r   r   r   s    r   Ú__wrapper_iter__r1   -   s   € Ü�× Ñ Ó!Ð!r   c                 ó6   • U R                   R                  5       $ r   )r   Ú__next__r   s    r   Ú__wrapper_next__r4   1   s   € Ø×Ñ×$Ñ$Ó&Ð&r   c                 ó6   • U R                   R                  5       $ r   )r   Ú	__aiter__r   s    r   Ú__wrapper_aiter__r7   5   s   € Ø×Ñ×%Ñ%Ó'Ð'r   c              ƒ   óR   #   • U R                   R                  5       I S h  v•N $  N7fr   )r   Ú	__anext__r   s    r   Ú__wrapper_anext__r:   9   s    é € Ø×!Ñ!×+Ñ+Ó-×-Ð-Ñ-ùó   ‚' %¡'c                 ó6   • U R                   R                  5       $ r   )r   Ú__length_hint__r   s    r   Ú__wrapper_length_hint__r>   =   s   € Ø×Ñ×+Ñ+Ó-Ð-r   c                 ó6   • U R                   R                  5       $ r   )r   Ú
__fspath__r   s    r   Ú__wrapper_fspath__rA   A   s   € Ø×Ñ×&Ñ&Ó(Ð(r   c              #   óR   #   • U R                   R                  5        S h  v•N $  N7fr   )r   Ú	__await__r   s    r   Ú__wrapper_await__rD   E   s    é € Ø×'Ñ'×1Ñ1Ó3×3Ð4Ñ3ùr;   c                 ó8   • U R                   R                  X5      $ r   )r   Ú__get__)r   ÚinstanceÚowners      r   Ú__wrapper_get__rI   I   ó   € Ø×Ñ×#Ñ# HÓ4Ð4r   c                 ó8   • U R                   R                  X5      $ r   )r   Ú__set__)r   rG   Úvalues      r   Ú__wrapper_set__rN   M   rJ   r   c                 ó8   • U R                   R                  U5      $ r   )r   Ú
__delete__)r   rG   s     r   Ú__wrapper_delete__rQ   Q   s   € Ø×Ñ×&Ñ& xÓ0Ð0r   c                 ó8   • U R                   R                  X5      $ r   )r   Ú__set_name__)r   rH   Únames      r   Ú__wrapper_set_name__rU   U   s   € Ø×Ñ×(Ñ(¨Ó5Ð5r   c                   ó2   ^ • \ rS rSrSrU 4S jrS rSrU =r$ )ÚAutoObjectProxyéY   aã  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                 óØ  >• 0 n[        U5      n[        [        U 5      5      n[        U5      (       a  SU;  a	  [        US'   SU;   a  SU;  a	  [        US'   SU;   a  SU;  a	  [
        US'   SU;   a  SU;  a	  [        US'   SU;   a  SU;  a	  [        US'   SU;   a  SU;  a	  [        US'   SU;   a  SU;  a	  [        US'   SU;   a  SU;  a	  [        US'   S	U;   a  S	U;  a	  [        US	'   S
U;   a  S
U;  a	  [        US
'   SU;   a  SU;  a	  [        US'   SU;   a  SU;  a	  [        US'   U R                  nU [         L a  ["        R                  n[$        [         U ]O  [)        XP4U5      5      $ )újInjects special dunder methods into a dynamically created subclass
as needed based on the wrapped object.
Ú__call__r   r3   r6   r9   r=   r@   rC   rF   rL   rP   rS   )ÚdirÚsetÚcallabler/   r1   r4   r7   r:   r>   rA   rD   rI   rN   rQ   rU   r"   rW   r   r   r   Útype)r   ÚwrappedÚ	namespaceÚwrapped_attrsÚclass_attrsrT   r   s         €r   r   Ú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¸¸fÀiÓ3PÓQÐQr   c                 ó|  • [        U 5      n[        [        U5      5      n[        U R                  5      (       a  SU;  a  [
        Ul        O [        USS5      [
        L a  [        US5        [        U R                  S5      (       a  SU;  a  [        Ul        O [        USS5      [        L a  [        US5        [        U R                  S5      (       a  SU;  a  [        Ul        O [        USS5      [        L a  [        US5        [        U R                  S5      (       a  SU;  a  [        Ul        O [        USS5      [        L a  [        US5        [        U R                  S5      (       a  SU;  a  [         Ul        O [        USS5      [         L a  [        US5        [        U R                  S5      (       a  SU;  a  [$        Ul        O [        USS5      [$        L a  [        US5        [        U R                  S5      (       a  SU;  a  [(        Ul        O [        USS5      [(        L a  [        US5        [        U R                  S	5      (       a  S	U;  a  [,        Ul        O [        US	S5      [,        L a  [        US	5        [        U R                  S
5      (       a  S
U;  a  [0        Ul        O [        US
S5      [0        L a  [        US
5        [        U R                  S5      (       a  SU;  a  [4        Ul        O [        USS5      [4        L a  [        US5        [        U R                  S5      (       a  SU;  a  [8        Ul        O [        USS5      [8        L a  [        US5        [        U R                  S5      (       a  SU;  a  [<        Ul        gg[        USS5      [<        L a  [        US5        gg)zrAdjusts special dunder methods on the class as needed based on the
wrapped object, when `__wrapped__` is changed.
r[   Nr   r3   r6   r9   r=   r@   rC   rF   rL   rP   rS   ) r_   r]   r\   r^   r   r/   r[   ÚgetattrÚdelattrÚhasattrr1   r   r4   r3   r7   r6   r:   r9   r>   r=   rA   r@   rD   rC   rI   rF   rN   rL   rQ   rP   rU   rS   )r   r   rc   s      r   Ú__wrapped_setattr_fixups__Ú*AutoObjectProxy.__wrapped_setattr_fixups__Ÿ   s  € ô
 �4‹jˆÜœ#˜c›(“mˆä�D×$Ñ$×%Ñ%Ø Ó,Ü/�”øÜ�S˜* dÓ+Ô/?Ò?Ü�C˜Ô$ä�4×#Ñ# Z×0Ñ0Ø Ó,Ü/�”øÜ�S˜* dÓ+Ô/?Ò?Ü�C˜Ô$ä�4×#Ñ# Z×0Ñ0Ø Ó,Ü/�”øÜ�S˜* dÓ+Ô/?Ò?Ü�C˜Ô$ä�4×#Ñ# [×1Ñ1Ø +Ó-Ü 1�”øÜ�S˜+ tÓ,Ô0AÒAÜ�C˜Ô%ä�4×#Ñ# [×1Ñ1Ø +Ó-Ü 1�”øÜ�S˜+ tÓ,Ô0AÒAÜ�C˜Ô%ä�4×#Ñ#Ð%6×7Ñ7Ø ¨Ó3Ü&=�Ô#øÜ�SÐ+¨TÓ2Ô6MÒMÜ�CÐ*Ô+ä�4×#Ñ# \×2Ñ2Ø ;Ó.Ü!3�”øÜ�S˜,¨Ó-Ô1CÒCÜ�C˜Ô&ä�4×#Ñ# [×1Ñ1Ø +Ó-Ü 1�”øÜ�S˜+ tÓ,Ô0AÒAÜ�C˜Ô%ä�4×#Ñ# Y×/Ñ/Ø Ó+Ü-�”øÜ�S˜) TÓ*¬oÒ=Ü�C˜Ô#ä�4×#Ñ# Y×/Ñ/Ø Ó+Ü-�”øÜ�S˜) TÓ*¬oÒ=Ü�C˜Ô#ä�4×#Ñ# \×2Ñ2Ø ;Ó.Ü!3�”øÜ�S˜,¨Ó-Ô1CÒCÜ�C˜Ô&ä�4×#Ñ# ^×4Ñ4Ø [Ó0Ü#7�Õ ð 1ä�S˜.¨$Ó/Ô3GÒGÜ�C˜Õ(ð Hr   r!   )	r"   r#   r$   r%   r&   r   ri   r(   r)   r*   s   @r   rW   rW   Y   s   ø† ñõ:R÷xN)ð N)r   rW   c                   ó`   ^ • \ rS rSrSrSSS.U 4S jjjrSSS.U 4S jjjrSrS rS	 r	S
r
U =r$ )ÚLazyObjectProxyéð   z`An object proxy which can generate/create the wrapped object on demand
when it is first needed.
.©Ú	interfacec                óˆ  >• USL a  [        S5      n0 n[        U5      n[        [        U 5      5      nSU;   a  SU;  a	  [        US'   SU;   a  SU;  a	  [        US'   SU;   a  SU;  a	  [
        US'   SU;   a  SU;  a	  [        US'   SU;   a  SU;  a	  [        US'   SU;   a  SU;  a	  [        US'   S	U;   a  S	U;  a	  [        US	'   S
U;   a  S
U;  a	  [        US
'   SU;   a  SU;  a	  [        US'   SU;   a  SU;  a	  [        US'   SU;   a  SU;  a	  [        US'   U R                  n[        [         U ]G  [        X`4U5      5      $ )rZ   .Nr[   r   r3   r6   r9   r=   rC   rF   rL   rP   rS   )r_   r\   r]   r/   r1   r4   r7   r:   r>   rD   rI   rN   rQ   rU   r"   r   rW   r   )r   Úcallbackro   ra   Úinterface_attrsrc   rT   r   s          €r   r   ÚLazyObjectProxy.__new__õ   sp  ø€ ð
 ˜ÒÜ˜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¸¸fÀiÓ3PÓQÐQr   c                ó6   >• Ub  Xl         [        TU ]	  S5        g)zá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   rq   ro   r   s      €r   rv   ÚLazyObjectProxy.__init__1  s   ø€ ð ÑØ'/Ô$ä‰Ñ˜Õr   Fc                 ó   • g r   r!   r   s    r   ru   Ú#LazyObjectProxy.__wrapped_factory__?  s   € Ør   c                 óü   • [        [        U 5      5         U R                  (       a  U R                  sSSS5        $ U R	                  5       U l        SU l        U R                  sSSS5        $ ! , (       d  f       g= f)z2Gets the wrapped object, creating it if necessary.NT)r   r_   Ú__wrapped_get_called__r   ru   r   s    r   Ú__wrapped_get__ÚLazyObjectProxy.__wrapped_get__B  s\   € ô œ$˜t›*Õ%ð ×*×*Ø×'Ñ'÷ &Ñ%ð  $×7Ñ7Ó9ˆDÔà*.ˆDÔ'à×#Ñ#÷ &×%×%ús   •A-¼'A-Á-
A;)r   ru   r{   r   )r"   r#   r$   r%   r&   r   rv   r{   ru   r|   r(   r)   r*   s   @r   rl   rl   ð   sE   ø† ñð:R°÷ :Rñ :Rðx
°3÷ 
ñ 
ð #Ðò÷$ð $r   rl   N.rn   c                óZ   ^ ^• Tb  USL a  [         nOUSL a  [        nUU 4S jn[        X2S9$ )a:  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S/S9n Tb  [        U T5      $ U $ )NÚ )Úfromlist)Ú
__import__rf   )ÚmoduleÚ	attributerT   s    €€r   Ú_importÚlazy_import.<locals>._importj  s)   ø€ Ü˜D¨B¨4Ñ0ˆàÑ Ü˜6 9Ó-Ð-àˆr   rn   )r   r   rl   )rT   r„   ro   r…   s   ``  r   Úlazy_importr‡   [  s8   ù€ ð ÑØ˜ÒÜ ˆIøà˜ÒÜ"ˆIöô ˜7Ñ8Ð8r   r   )r&   Úcollections.abcr   Útypesr   Ú	__wrapt__r   Úsynchronizationr   r	   r/   r1   r4   r7   r:   r>   rA   rD   rI   rN   rQ   rU   rW   rl   r‡   r!   r   r   Ú<module>rŒ      s†   ðÙ 6å $Ý å &Ý )ô&�/ô &ò.-ò"ò'ò(ò.ò.ò)ò5ò5ò5ò1ò6ôT)�oô T)ônh$�oô h$ðV9°3÷ 9r   