o
    Æ µiG  ã                   @   s¾   d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
 G dd„ deƒZdefdd„Zdedd	fd
d„Zdefdd„Zdedd	fdd„Zdefdd„Zdedd	fdd„Zdededd	fdd„Zd	S )é    )ÚEnum)ÚLogLevelÚ_get_is_colored_output_onÚ_get_logging_prefixÚ_get_reportable_log_levelÚ_logÚ_set_is_colored_output_onÚ_set_logging_prefixÚ_set_reportable_log_levelc                   @   sJ   e Zd ZdZejZejZej	Z
ejZejZejZedd defdd„ƒZdS )ÚLevelzKEnum to set the minimum required logging level to print a message to stdoutÚexternalÚreturnc                 C   sp   | t jkrtjS | t jkrtjS | t jkrtjS | t jkr tj	S | t j
kr(tjS | t jkr0tjS t| ƒ tdƒ‚)NzUnknown log severity)r   ÚInternalErrorr   ÚINTERNAL_ERRORÚErrorÚERRORÚWarningÚWARNINGÚInfoÚINFOÚDebugÚDEBUGÚGraphÚGRAPHÚprintÚ
ValueError)r   © r   úM/home/ubuntu/.local/lib/python3.10/site-packages/torch_tensorrt/ts/logging.pyÚ_to_internal_level   s   





zLevel._to_internal_levelN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   r   r   r   r   r   r   Ústaticmethodr   r   r   r   r   r      s    r   r   c                   C   ó
   t tƒ ƒS )z^Get the prefix set for logging messages

    Returns:
        str: Prefix used for logger
    )Ústrr   r   r   r   r   Úget_logging_prefix,   ó   
r&   ÚprefixNc                 C   ó   t | ƒ dS )zrSet the prefix used when logging messages

    Args:
        prefix (str): Prefix to use for logging messages
    N)r	   )r(   r   r   r   Úset_logging_prefix5   ó   r*   c                   C   r$   )z¨Get the level required for a message to be printed in the log

    Returns:
        torch_tensorrt.logging.Level: The enum representing the level required to print
    )r   r   r   r   r   r   Úget_reportable_log_level>   r'   r,   Úlevelc                 C   s   t t | ¡ƒ dS )z­Set the level required for a message to be printed to the log

    Args:
        level (torch_tensorrt.logging.Level): The enum representing the level required to print
    N)r
   r   r   )r-   r   r   r   Úset_reportable_log_levelG   s   r.   c                   C   r$   )zfGet if colored output is enabled for logging

    Returns:
        bool: If colored output is one
    )Úboolr   r   r   r   r   Úget_is_colored_output_onP   r'   r0   Úcolored_output_onc                 C   r)   )z†Enable or disable color in the log output

    Args:
        colored_output_on (bool): If colored output should be enabled or not
    N)r   )r1   r   r   r   Úset_is_colored_output_onY   r+   r2   Úmsgc                 C   s8   t t | ¡|ƒ tj}tj}tj}tj}tj}tj	}dS )a  Add a new message to the log

    Adds a new message to the log at a specified level. The message
    will only get printed out if Level > reportable_log_level

    Args:
        level (torch_tensorrt.logging.Level): Severity of the message
        msg (str): Actual message text
    N)
r   r   r   r   r   r   r   r   r   r   )r-   r3   r   r   r   r   r   r   r   r   r   Úlogb   s   

r4   )Úenumr   Útorch_tensorrt._Cr   r   r   r   r   r   r	   r
   r   r%   r&   r*   r,   r.   r/   r0   r2   r4   r   r   r   r   Ú<module>   s    (						