o
    ðÇhq  ã                   @   s8   d dl mZmZmZmZ edƒZG dd„ dee ƒZdS )é    )ÚCallableÚGenericÚOptionalÚTypeVarÚRc                   @   s^   e Zd ZU dZeeg ef  ed< ee ed< ddgZdeg ef fdd„Z	defdd„Z
d	S )
ÚThunkz¥
    A simple lazy evaluation implementation that lets you delay
    execution of a function.  It properly handles releasing the
    function once it is forced.
    ÚfÚrc                 C   s   || _ d | _d S ©N©r   r	   )Úselfr   © r   úf/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/torch/utils/_thunk.pyÚ__init__   s   
zThunk.__init__Úreturnc                 C   s&   | j d u r| jS |   ¡ | _d | _ | jS r
   r   )r   r   r   r   Úforce   s
   

zThunk.forceN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   Ú__annotations__Ú	__slots__r   r   r   r   r   r   r      s   
 r   N)Útypingr   r   r   r   r   r   r   r   r   r   Ú<module>   s    