o
    Ti                     @   s   d dl mZ d dlmZ d dlmZ dd ZG dd deZG dd	 d	eZG d
d deZ	G dd deZ
G dd deZdS )    )Optional)model_validator)DeepSpeedConfigModelc                    s     fdddD }t di |S )Nc                    s   i | ]	}|  |i qS  )get).0key
param_dictr   L/home/ubuntu/.local/lib/python3.10/site-packages/deepspeed/monitor/config.py
<dictcomp>   s    z&get_monitor_config.<locals>.<dictcomp>)tensorboardwandbcsv_monitorcometr   )DeepSpeedMonitorConfig)r
   monitor_dictr   r	   r   get_monitor_config   s   r   c                   @   :   e Zd ZU dZdZeed< 	 dZeed< 	 dZ	eed< dS )	TensorBoardConfigz(Sets parameters for TensorBoard monitor.Fenabled output_pathDeepSpeedJobNamejob_nameN
__name__
__module____qualname____doc__r   bool__annotations__r   strr   r   r   r   r   r         
 r   c                   @   sP   e Zd ZU dZdZeed< 	 dZee	 ed< 	 dZ
ee	 ed< 	 dZe	ed< dS )	WandbConfigz"Sets parameters for WandB monitor.Fr   Ngroupteam	deepspeedproject)r   r   r   r   r   r    r!   r%   r   r"   r&   r(   r   r   r   r   r$   !   s   
 r$   c                   @   r   )		CSVConfigz Sets parameters for CSV monitor.Fr   r   r   r   r   Nr   r   r   r   r   r)   1   r#   r)   c                   @   s   e Zd ZU dZdZeed< 	 dZeed< 	 dZ	e
e ed< 	 dZe
e ed< 	 dZe
e ed	< 	 dZe
e ed
< 	 dZe
e ed< 	 dZe
e ed< 	 dZe
e ed< dS )CometConfigz
    Sets parameters for Comet monitor. For logging data Comet uses
    experiment object.
    https://www.comet.com/docs/v2/api-and-sdk/python-sdk/reference/Experiment/
    Fr   d   samples_log_intervalNr(   	workspaceapi_keyexperiment_nameexperiment_keyonlinemode)r   r   r   r   r   r    r!   r,   intr(   r   r"   r-   r.   r/   r0   r1   r2   r   r   r   r   r*   A   s(   
 r*   c                   @   s\   e Zd ZU dZi Zeed< 	 i Zeed< 	 i Z	e
ed< 	 i Zeed< 	 edddd	 Zd
S )r   z/Sets parameters for various monitoring methods.r   r   r   r   after)r2   c                 C   s.   | j jp| jjp| jjp| jj}|| jd< | S )Nr   )r   r   r   r   r   __dict__)selfr   r   r   r   check_enabled   s    
z$DeepSpeedMonitorConfig.check_enabledN)r   r   r   r   r   r   r!   r   r*   r   r$   r   r)   r   r7   r   r   r   r   r   }   s   
 r   N)typingr   pydanticr   deepspeed.runtime.config_utilsr   r   r   r$   r)   r*   r   r   r   r   r   <module>   s   <