ó
    +K£jò  ã                   óD   • S r SSKrSSKrSSKJrJr  S r " S S\5      rg)z5Weak reference proxy for functions and bound methods.é    Né   )ÚBaseObjectProxyÚ_FunctionWrapperBasec                 óN   • UR                   (       a  g SUl         Ub	  U" U5        g g )NT)Ú_self_expired)ÚrefÚproxyÚcallbacks      ÚœC:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\wrapt/weakrefs.pyÚ_weak_function_proxy_callbackr      s*   € Ø××Øà€EÔð ÑÙ��ð ó    c                   ó6   ^ • \ rS rSrSrSU 4S jjrS rSrU =r$ )ÚWeakFunctionProxyé    zA weak function proxy.c                 óÌ  >• U=(       a    [         R                  " [        XS9nSU l        [	        U[
        5      (       aŽ  [        R                  " UR                  U5      U l        UR                  b3  [        [        U ]3  [        R                  " UR                  U5      5        g[        [        U ]3  [        R                  " X5      5        g [        R                  " UR                  U5      U l        [        [        U ]3  [        R                  " UR                  U5      5        g! [          a1    SU l        [        [        U ]3  [        R                  " X5      5         gf = f)as  Create a proxy to object which uses a weak reference. This is
similar to the `weakref.proxy` but is designed to work with functions
and methods. It will automatically rebind the function to the instance
when called if the function was originally a bound method. This is
necessary because bound methods are transient objects and applying a
weak reference to one will immediately result in it being destroyed
and the weakref callback called. The weak reference is therefore
applied to the instance the method is bound to and the original
function. The function is then rebound at the point of a call via the
weak function proxy.
)r	   r
   FN)Ú	functoolsÚpartialr   r   Ú
isinstancer   Úweakrefr   Ú_self_instanceÚ_self_parentÚsuperr   Ú__init__r	   Ú__self__Ú__func__ÚAttributeError)ÚselfÚwrappedr
   Ú	_callbackÚ	__class__s       €r   r   ÚWeakFunctionProxy.__init__#   s#  ø€ ð2 ÷ 
¤×!2Ò!2Ü)°ñ"
ˆ	ð #ˆÔä�gÔ3×4Ñ4Ü")§+¢+¨g×.DÑ.DÀiÓ"PˆDÔà×#Ñ#Ñ/ô
 Ô'¨Ñ7Ü—M’M '×"6Ñ"6¸	ÓBôð ô	 Ô'¨Ñ7Ü—M’M 'Ó5ôð ð
	WÜ")§+¢+¨g×.>Ñ.>À	Ó"JˆDÔäÔ# TÑ3Ü—’˜g×.Ñ.°	Ó:õøô ó 	WØ"&ˆDÔäÔ# TÑ3´G·M²MÀ'Ó4UÖVð	Wús   ÃAD( Ä(8E#Å"E#c                  ó<  • S nU" U 6 u  p0UR                   =(       a    UR                  5       nUR                  =(       a    UR                  nUR                   b  Uc  [        S5      eUc  UR                  " U 0 UD6$ UR                  U[	        U5      5      " U 0 UD6$ )Nc                 ó   • X4$ ©N© )r   Úargss     r   Ú_unpack_selfÚ0WeakFunctionProxy.__call__.<locals>._unpack_selfb   s
   € Ø�:Ðr   z)weakly-referenced object no longer exists)r   Ú__wrapped__ÚReferenceErrorÚ__get__Útype)r&   Úkwargsr'   r   ÚinstanceÚfunctions         r   Ú__call__ÚWeakFunctionProxy.__call__a   s¤   € ò	ñ " 4Ð(‰
ˆð ×&Ñ&×@¨4×+>Ñ+>Ó+@ˆØ×#Ñ#×8¨×(8Ñ(8ˆð ×ÑÑ*¨xÑ/?Ü Ð!LÓMÐMð ÑØ×#Ò# TÐ4¨VÑ4Ð4à×Ñ ¬$¨x«.Ô9¸4ÐJÀ6ÑJÐJr   )r   r   r$   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r0   Ú__static_attributes__Ú__classcell__)r    s   @r   r   r       s   ø† Ù ÷<W÷|Kð Kr   r   )r6   r   r   Ú	__wrapt__r   r   r   r   r%   r   r   Ú<module>r:      s&   ðÙ ;ã Û ç <òô]K˜õ ]Kr   