o
    ¬Th)  ã                   @   s<   d dl Z d dlZddlmZmZ dd„ ZG dd„ deƒZdS )é    Né   )ÚObjectProxyÚ_FunctionWrapperBasec                 C   s(   |j rd S d|_ |d ur||ƒ d S d S )NT)Ú_self_expired)ÚrefÚproxyÚcallback© r	   úN/home/air/segue/gpt/backup/venv/lib/python3.10/site-packages/wrapt/weakrefs.pyÚ_weak_function_proxy_callback   s   ÿr   c                       s*   e Zd ZdZd‡ fdd„	Zdd„ Z‡  ZS )ÚWeakFunctionProxy)r   Ú_self_instanceNc              	      sÜ   |o	t jt| |d}d| _t|tƒr<t |j|¡| _|j	d ur.t
t| ƒ t |j	|¡¡ d S t
t| ƒ t ||¡¡ d S zt |j|¡| _t
t| ƒ t |j|¡¡ W d S  tym   d | _t
t| ƒ t ||¡¡ Y d S w )N)r   r   F)Ú	functoolsÚpartialr   r   Ú
isinstancer   Úweakrefr   r   Ú_self_parentÚsuperr   Ú__init__r   Ú__self__Ú__func__ÚAttributeError)ÚselfÚwrappedr   Ú	_callback©Ú	__class__r	   r
   r       s:   þ
ÿ

ÿ
ý
ÿ

ÿ


ÿýzWeakFunctionProxy.__init__c                  O   s`   dd„ }|| Ž \}} |j o|  ¡ }|jo|j}|d u r#|j| i |¤ŽS | |t|ƒ¡| i |¤ŽS )Nc                 W   s   | |fS ©Nr	   )r   Úargsr	   r	   r
   Ú_unpack_selfN   s   z0WeakFunctionProxy.__call__.<locals>._unpack_self)r   Ú__wrapped__Ú__get__Útype)r   Úkwargsr   r   ÚinstanceÚfunctionr	   r	   r
   Ú__call__M   s   zWeakFunctionProxy.__call__r   )Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r   r&   Ú__classcell__r	   r	   r   r
   r      s    -r   )r   r   Ú	__wrapt__r   r   r   r   r	   r	   r	   r
   Ú<module>   s
    