o
    xi                     @  s   d dl m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
 ddlmZ dd	lmZ d
dlmZ eeZeG dd dZdS )    )annotationsN)	dataclass)Api)	CommError)LaunchProject   )AbstractRun)event_loop_thread_exec   )RunQueueItemFileSaverc                   @  s   e Zd ZU ded< ded< ded< dZded< dZded	< dZded
< dZded< dZded< dZ	ded< dZ
ded< dZded< ed#ddZd$ddZd%ddZd&d!d"ZdS )'JobAndRunStatusTrackerstrrun_queue_item_idqueuer   saverNz
str | Nonerun_idprojectentityzAbstractRun | NonerunFboolfailed_to_startcompleted_statusis_scheduleragent	err_stagereturnc                 C  s   | j p| jd uS N)r   r   )self r   ]/home/ubuntu/.local/lib/python3.10/site-packages/wandb/sdk/launch/agent/job_status_tracker.pyjob_completed   s   z$JobAndRunStatusTracker.job_completedlaunch_projectr   Nonec                 C  s   |j | _ |j| _|j| _d S r   )r   target_projectr   target_entityr   )r   r!   r   r   r   update_run_info#   s   z&JobAndRunStatusTracker.update_run_infostagec                 C  s
   || _ d S r   )r   )r   r&   r   r   r   set_err_stage(   s   
z$JobAndRunStatusTracker.set_err_stageapir   c                   sr   | j d ur| jd ur| jd usJ dt|jj}zt|| j| j| j I d H W S  ty8   t	d Y dS w )NzZJob tracker does not contain run info. Update with run info before checking if run stoppedz,CommError when checking if wandb run stoppedF)
r   r   r   r	   r(   check_stop_requestedr   r   _logger	exception)r   r(   
check_stopr   r   r   check_wandb_run_stopped+   s   

z.JobAndRunStatusTracker.check_wandb_run_stopped)r   r   )r!   r   r   r"   )r&   r   r   r"   )r(   r   r   r   )__name__
__module____qualname____annotations__r   r   r   r   r   r   r   r   propertyr    r%   r'   r-   r   r   r   r   r      s"   
 

r   )
__future__r   loggingdataclassesr   wandb.apis.internalr   wandb.errorsr   wandb.sdk.launch._project_specr   runner.abstractr   utilsr	   run_queue_item_file_saverr   	getLoggerr.   r*   r   r   r   r   r   <module>   s    
