o
    iq                     @   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   O/home/ubuntu/veenaModal/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    