U
    í$gf)  ã                   @   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 k	r ||ƒ d S )NT)Ú_self_expired)ÚrefÚproxyÚcallback© r	   úQ/home/ankuromar296_gmail_com/.local/lib/python3.8/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ƒrvt |j|¡| _|j	d k	rZt
t| ƒ t |j	|¡¡ nt
t| ƒ t ||¡¡ d S z.t |j|¡| _t
t| ƒ t |j|¡¡ W n2 tk
rÖ   d | _t
t| ƒ t ||¡¡ Y nX d S )N)r   r   F)Ú	functoolsÚpartialr   r   Ú
isinstancer   Úweakrefr   r   Z_self_parentÚsuperr   Ú__init__r   Ú__self__Ú__func__ÚAttributeError)ÚselfÚwrappedr   Ú	_callback©Ú	__class__r	   r
   r       s8     þ
ÿ

ÿ

ÿ
ÿ

ÿzWeakFunctionProxy.__init__c                  O   sX   dd„ }|| Ž \}} |j o |  ¡ }|jo,|j}|d krB|j| |ŽS | |t|ƒ¡| |Ž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__)N)Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r   r$   Ú__classcell__r	   r	   r   r
   r      s   -r   )r   r   Z	__wrapt__r   r   r   r   r	   r	   r	   r
   Ú<module>   s   