o
    1j                     @   s   d dl Z d dlZd dlZd dlZd dlZddlmZ g dZdZddiddidd	idd
iddidZ	e
eZdd Zdd Zdd Ze ddd Zdd Zdd Zdd Zd$defddZdd Zd d! Zd"d# ZdS )%    N   )DEBUG)criticaldebugerror	exceptioninfosetup_loggingwarningZpaddlexcolorpurplegreenyellowredZbold_red)r   INFOWARNINGERRORCRITICALc                 O   s   t rKt }|j}|jj}d|jv r|jd jj}nd|jv r&|jd j}nd}|r2| d| }n| }d| d|  } t	j
| g|R i | dS dS )r   selfclsNz::u   【u   】)r   inspectcurrentframef_backf_codeco_namef_locals	__class____name___loggerr   )msgargskwargsframeZcaller_frameZcaller_func_nameZcaller_class_nameZcaller_info r#   V/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/paddlex/utils/logging.pyr   /   s   

r   c                 O      t j| g|R i | dS )r   N)r   r   r   r    r!   r#   r#   r$   r   E      r   c                 O   r%   )r
   N)r   r
   r&   r#   r#   r$   r
   J   r'   r
   c                 O   s   t | g|R i | dS )zs
    This method is identical to `logger.warning()`, but will emit the warning with the same message only once
    N)r
   r&   r#   r#   r$   warning_onceO   s   r(   c                 O   r%   )r   N)r   r   r&   r#   r#   r$   r   W   r'   r   c                 O   r%   )r   N)r   r   r&   r#   r#   r$   r   \   r'   r   c                 O   r%   )r   N)r   r   r&   r#   r#   r$   r   a   r'   r   	verbosityc                 C   s4   | du rt r	d} nd} | durtt|   dS dS )zsetup logging level

    Args:
        verbosity (str, optional): the logging level, `DEBUG`, `INFO`, `WARNING`. Defaults to None.
    Nr   r   )r   _configure_loggerr   upper)r)   r#   r#   r$   r	   f   s   r	   c                 C   s^   |dkrt tj n|dkrt tj n
|dkr t tj d| _|  s-t|  dS dS )r*   r   r   r   FN)	r   setLevelloggingr   r   r   	propagatehasHandlers_add_handler)loggerr)   r#   r#   r$   r*   v   s   r*   c                 C   s@   t jddd t D d}ttj}|| | 	| dS )r0   z%(log_color)s%(message)sc                 S   s   i | ]	\}}||d  qS )r   r#   ).0keyZconfr#   r#   r$   
<dictcomp>   s    z _add_handler.<locals>.<dictcomp>)Z
log_colorsN)
colorlogZColoredFormatter_LOG_CONFIGitemsr-   StreamHandlersysstderrsetFormatter
addHandler)r1   formathandlerr#   r#   r$   r0      s   
r0   c                  C   s   d} d}d}dt t| ||gt d }tdd|d  d	| |d|d  d	d
| d	||d	d
| d	||d|d   dS )a<  
    Show the advertising message like the following:

    ===========================================================
    ==         PaddleX is powered by PaddlePaddle !          ==
    ===========================================================
    ==                                                       ==
    ==   For more info please go to the following website.   ==
    ==                                                       ==
    ==        https://github.com/PaddlePaddle/PaddleX        ==
    ===========================================================

    z$PaddleX is powered by PaddlePaddle !z1For more info please go to the following website.z'https://github.com/PaddlePaddle/PaddleX   )r3   z!
{0}
{1}
{2}
{3}
{4}
{5}
{6}
{7}
=   z=={}== N)lenmaxr   r=   center)	copyrightadZwebsiteZAD_LENr#   r#   r$   	advertise   s    


rH   )N)	functoolsr   r-   r9   r5   flagsr   __all__ZLOGGER_NAMEr6   	getLoggerr   r   r   r
   	lru_cacher(   r   r   r   strr	   r*   r0   rH   r#   r#   r#   r$   <module>   s6   


