Ë
    ëÓ^j;  ã                   óf   — d Z ddlZddlZddlZ G d„ dej                  «      Zd	dededz  defd„Zy)
z*Shared logger factory for RF-DETR modules.é    Nc                   ó`   ‡ — e Zd ZdZej
                  fdededdfˆ fd„Zdede	d	e	ddfd
„Z
ˆ xZS )Ú_RFDETRLoggerz8Logger subclass that adds a :meth:`warning_once` helper.ÚnameÚlevelÚreturnNc                 óD   •— t         ‰| �  ||«       t        «       | _        y ©N)ÚsuperÚ__init__ÚsetÚ_warned_once)Úselfr   r   Ú	__class__s      €úb/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/rfdetr/utilities/logger.pyr   z_RFDETRLogger.__init__   s   ø€ Ü‰Ñ˜˜uÔ%Ü&)£eˆÕó    ÚmsgÚargsÚkwargsc                 ó„   — || j                   vr2| j                   j                  |«        | j                  |g|¢­i |¤Ž yy)z?Emit *msg* as a WARNING exactly once per unique message string.N)r   ÚaddÚwarning)r   r   r   r   s       r   Úwarning_oncez_RFDETRLogger.warning_once   sA   € à�d×'Ñ'Ñ'Ø×Ñ×!Ñ! #Ô&ØˆD�L‰L˜Ð.˜tÒ. vÓ.ð (r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚloggingÚNOTSETÚstrÚintr   Úobjectr   Ú__classcell__)r   s   @r   r   r      sH   ø„ ÙBà/6¯~©~ñ ,˜Sð ,¨ð ,À$õ ,ð/ ð /¨Fð /¸fð /È÷ /r   r   r   r   r   c                 ó4  — |€At        t        t        j                  dd«      j	                  «       t        j
                  «      }t        j                  | «      }t        |t        «      st        |_	        t        «       |_        |j                  |«       |j                  søt        j                  dd¬«      }t        j                  t         j"                  «      }|j                  t        j$                  «       |j'                  d„ «       |j)                  |«       t        j                  t         j*                  «      }|j                  t        j,                  «       |j)                  |«       |j/                  |«       |j/                  |«       d|_        |S )a�  Creates and configures a logger with stdout and stderr handlers.

    This function creates a logger that sends INFO and DEBUG level logs to stdout, and WARNING, ERROR, and CRITICAL
    level logs to stderr. If the logger already has handlers, it returns the existing logger without adding new
    handlers.

    The log level can be specified directly or through the LOG_LEVEL environment variable.

    Args:
        name: The name of the logger. Defaults to "rf-detr".
        level: The logging level to set. If None, uses the LOG_LEVEL environment
            variable, defaulting to INFO if not set.

    Returns:
        A configured _RFDETRLogger instance.
    Ú	LOG_LEVELÚINFOz4[%(asctime)s] [%(levelname)s] %(name)s - %(message)sz%Y-%m-%d %H:%M:%S)Údatefmtc                 ó<   — | j                   t        j                  k  S r	   )Úlevelnor   r%   )Úrs    r   ú<lambda>zget_logger.<locals>.<lambda>@   s   € ¨1¯9©9¼¿¹Ñ+D€ r   F)Úgetattrr   ÚosÚgetenvÚupperr%   Ú	getLoggerÚ
isinstancer   r   r   r   ÚsetLevelÚhandlersÚ	FormatterÚStreamHandlerÚsysÚstdoutÚDEBUGÚ	addFilterÚsetFormatterÚstderrÚWARNINGÚ
addHandlerÚ	propagate)r   r   ÚloggerÚ	formatterÚstdout_handlerÚstderr_handlers         r   Ú
get_loggerrB      s(  € ð" €}Üœ¤§¡¨;¸Ó!?×!EÑ!EÓ!GÌÏÉÓVˆä×Ñ˜tÓ$€Fô �fœmÔ,Ü(ˆÔÜ!›eˆÔà
‡O�O�EÔà�?Š?Ü×%Ñ%ØBÐL_ô
ˆ	ô !×.Ñ.¬s¯z©zÓ:ˆØ×Ñ¤§¡Ô.Ø× Ñ Ñ!DÔEØ×#Ñ# IÔ.ä ×.Ñ.¬s¯z©zÓ:ˆØ×Ñ¤§¡Ô0Ø×#Ñ# IÔ.à×Ñ˜.Ô)Ø×Ñ˜.Ô)Ø ˆÔà€Mr   )zrf-detrN)	r   r   r,   r5   ÚLoggerr   r   r    rB   © r   r   ú<module>rE      sA   ðñ 1ã Û 	Û 
ô/�G—N‘Nô /ñ0�Sð 0¨S°4©Zð 0À=ô 0r   