
    &`i                     r    d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 e	 G d de                      Z
dS )    N)Union)logger)Stopper)	PublicAPIc                   R    e Zd ZdZdeeeej        f         fdZ	d Z
d ZdefdZdS )	TimeoutStoppera  Stops all trials after a certain timeout.

    This stopper is automatically created when the `time_budget_s`
    argument is passed to `tune.RunConfig()`.

    Args:
        timeout: Either a number specifying the timeout in seconds, or
            a `datetime.timedelta` object.
    timeoutc                 2   ddl m} t          ||          r|                                | _        nSt          |t
          t          f          r|| _        n/t          d                    t          |                              | j        | _
        d | _        d S )Nr   )	timedeltazY`timeout` parameter has to be either a number or a `datetime.timedelta` object. Found: {})datetimer   
isinstancetotal_seconds_timeout_secondsintfloat
ValueErrorformattype_budget_last_check)selfr	   r   s      l/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/tune/stopper/timeout.py__init__zTimeoutStopper.__init__   s    &&&&&&gy)) 	$+$9$9$;$;D!!#u.. 	$+D!!99?W9N9N  
 ,      c                     dS )NF )r   trial_idresults      r   __call__zTimeoutStopper.__call__)   s    ur   c                     t          j                     }| j        r|| j        z
  }| xj        |z  c_        || _        | j        dk    rt          j        d| j         d           dS dS )Nr   zReached timeout of z seconds. Stopping all trials.TF)timer   r   r   infor   )r   nowtakens      r   stop_allzTimeoutStopper.stop_all,   s    ikk 	"$**ELLE!LL<1K(d&; ( ( (   4ur   statec                 D    d |d<   | j                             |           d S )Nr   )__dict__update)r   r&   s     r   __setstate__zTimeoutStopper.__setstate__>   s(    #mU#####r   N)__name__
__module____qualname____doc__r   r   r   r   r   r   r   r%   dictr*   r   r   r   r   r   
   s          c5(2D&D E        &    $$$ $ $ $ $ $ $r   r   )r   r!   typingr   rayr   ray.tune.stopper.stopperr   ray.util.annotationsr   r   r   r   r   <module>r4      s                  , , , , , , * * * * * * 5$ 5$ 5$ 5$ 5$W 5$ 5$ 5$ 5$ 5$r   