a
    ù!f)  ã                   @   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 )NT)Ú_self_expired)ÚrefÚproxyÚcallback© r	   úO/var/www/html/python-backend/venv/lib/python3.9/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 urZt
t| ƒ t |j	|¡¡ nt
t| ƒ t ||¡¡ d S z.t |j|¡| _t
t| ƒ t |j|¡¡ W n0 tyÔ   d | _t
t| ƒ t ||¡¡ Y n0 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       s6    þ
ÿ

ÿ

ÿ
ÿ

ÿzWeakFunctionProxy.__init__c                  O   s`   dd„ }|| Ž \}} |j o |  ¡ }|jo,|j}|d u rF|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__)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   