o
    }oi                  	   @   s  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 d dlmZ d d	lmZmZmZ d d
lmZ zd dlZd dlmZ dZW n eefy[   dZY nw zd dlmZmZmZ dZW n eefyw   dZY nw eG dd dZ G dd de	Z!dS )    )	Namespace)	dataclass)Path)Optional)Logger)rank_zero_only)AttributeDict)apply_to_collection)
DictConfig
ListConfig	OmegaConf)loggingN)	VerbosityTF)_convert_params_flatten_dict_sanitize_callable_paramsc                   @   s>   e Zd ZU dZee ed< dZee ed< dZee	 ed< dS )DLLoggerParamsFverbosestdoutz./dllogger.json	json_fileN)
__name__
__module____qualname__r   r   bool__annotations__r   r   str r   r   O/home/ubuntu/.local/lib/python3.10/site-packages/nemo/utils/loggers/dllogger.pyr   ,   s   
 r   c                   @   s\   e Zd Zedd Zedd Zdededefdd	Ze	d
d Z
e	dddZdd ZdS )DLLoggerc                 C   s   | j jS N)	__class__r   selfr   r   r   name4   s   zDLLogger.namec                 C   s   d S r   r   r!   r   r   r   version8   s   zDLLogger.versionr   r   r   c                 C   s   t stdtstd|rtjntj}g }|r+t|jjddd |	t
|| |r5|	t
| |s<td t
j|d d S )NzoDLLogger was not found. Please see the README for installation instructions: https://github.com/NVIDIA/dlloggerzyDLLogger utilities were not found. You probably need to update PyTorch Lightning>=1.9.0. pip install pytorch-lightning -UT)parentsexist_okz_Neither stdout nor json_file DLLogger parameters were specified.DLLogger will not log anything.)backends)HAVE_DLLOGGERImportErrorPL_LOGGER_UTILITIESr   VERBOSEDEFAULTr   parentmkdirappenddlloggerJSONStreamBackendStdOutBackendr   warninginit)r"   r   r   r   	verbosityr'   r   r   r   __init__<   s(   zDLLogger.__init__c                 O   sj   t |tr
t|}n	t |trt|}t|ttftj	dd}t|t
t}ttt|}tjd|d d S )NT)resolve	PARAMETERstepdata)
isinstancer   varsr   dictr	   r
   r   r   to_containerr   r   r   r   r   r0   log)r"   paramsargskwargsr   r   r   log_hyperparamsU   s   


zDLLogger.log_hyperparamsNc                 C   s    |d u rt  }tj||d d S )Nr9   )tupler0   r@   )r"   metricsr:   r   r   r   log_metrics`   s   zDLLogger.log_metricsc                 C   s   t   d S r   )r0   flushr!   r   r   r   saveg   s   zDLLogger.saver   )r   r   r   propertyr#   r$   r   r   r6   r   rD   rG   rI   r   r   r   r   r   3   s    



r   )"argparser   dataclassesr   pathlibr   typingr   lightning.pytorch.loggersr   lightning.pytorch.utilitiesr   #lightning.pytorch.utilities.parsingr   #lightning_utilities.core.apply_funcr	   	omegaconfr
   r   r   
nemo.utilsr   r0   r   r(   r)   ModuleNotFoundError!lightning.fabric.utilities.loggerr   r   r   r*   r   r   r   r   r   r   <module>   s4   