o
    yqi                     @   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)debuginfowarningerrorcriticalsetup_loggingZ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framecaller_frameZcaller_func_nameZcaller_class_nameZcaller_info r#   \/home/app/PaddleOCR-VL/.venv_paddleocr/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   =      r   c                 O   r%   )r   N)r   r   r&   r#   r#   r$   r   B   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_onceG   s   r(   c                 O   r%   )r   N)r   r   r&   r#   r#   r$   r   O   r'   r   c                 O   r%   )r   N)r   r   r&   r#   r#   r$   r   T   r'   r   c                 O   r%   )	exceptionN)r   r)   r&   r#   r#   r$   r)   Y   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	   ^   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+   n   s   r+   c                 C   s@   t jddd t D d}ttj}|| | 	| dS )r1   z%(log_color)s%(message)sc                 S   s   i | ]	\}}||d  qS )r
   r#   ).0keyconfr#   r#   r$   
<dictcomp>   s    z _add_handler.<locals>.<dictcomp>)Z
log_colorsN)
colorlogZColoredFormatter_LOG_CONFIGitemsr.   StreamHandlersysstderrsetFormatter
addHandler)r2   formathandlerr#   r#   r$   r1   {   s   
r1   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   )r4   z!
{0}
{1}
{2}
{3}
{4}
{5}
{6}
{7}
=   z=={}== N)lenmaxr   r?   center)	copyrightadZwebsiteZAD_LENr#   r#   r$   	advertise   s    


rJ   )N)	functoolsr   r.   r;   r7   flagsr   __all__ZLOGGER_NAMEr8   	getLoggerr   r   r   r   	lru_cacher(   r   r   r)   strr	   r+   r1   rJ   r#   r#   r#   r$   <module>   s6   

