o
    Ci)                     @   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/goalskill_t/back/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
    