
    [i                     `    d dl mZ d dlmZmZ  ed          Z G d dee                   ZdS )    )Callable)GenericTypeVarRc                   x    e Zd ZU dZeg ef         dz  ed<   edz  ed<   ddgZdeg ef         ddfdZdef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.
    Nfrreturnc                 "    || _         d | _        d S Nr	   r
   )selfr	   s     E/var/www/icac/venv/lib/python3.11/site-packages/torch/utils/_thunk.py__init__zThunk.__init__   s        c                 l    | j         | j        S |                                  | _        d | _         | j        S r   r   )r   s    r   forcezThunk.force   s-    6>6Mvr   )
__name__
__module____qualname____doc__r   r   __annotations__	__slots__r   r    r   r   r   r      s           A4xKKKc
I(2q5/ d    q      r   r   N)collections.abcr   typingr   r   r   r   r   r   r   <module>r      sv    $ $ $ $ $ $ # # # # # # # # GCLL    GAJ     r   