
    Ji                        U d dl mZ d dlZd dlmZ d dlmZmZmZm	Z	 erd dl
mZ  G d d      Zej                         Zded<   	 ddd	Zdd
Zy)    )annotationsN)contextmanager)TYPE_CHECKINGAnyCallableClassVar)Iteratorc                      e Zd ZU ej                  Zded<   i Zded<   ddZddZ	e
dd       Zeddd       Zedd	       Zy
)Loggerr   _default_loggerzClassVar[dict[str, Logger]]
_instancesc                D    | j                   j                  |      | _        y N)	__class__r   _loggerselfnames     i/var/www/html/BankruptcyAI-uat/bankruptcy-ai/venv/lib/python3.12/site-packages/griffe/_internal/logger.py__init__zLogger.__init__   s    ~~55d;    c                .    t        | j                  |      S r   )getattrr   r   s     r   __getattr__zLogger.__getattr__   s    t||T**r   c              #     K   | j                   j                  }| j                   j                  d       	 d | j                   j                  |       y# | j                   j                  |       w xY ww)zTemporarily disable logging.d   N)r   levelsetLevel)r   	old_levels     r   disablezLogger.disable    sU      LL&&	c"	-LL!!),DLL!!),s   2A5A A5A22A5c                f    || j                   vr | |      | j                   |<   | j                   |   S r   )r   )clsr   s     r   _getzLogger._get*   s/    s~~%#&t9CNN4 ~~d##r   c                p    | j                   j                         D ]  \  }} ||      |_         || _        y r   )r   itemsr   r   )r"   get_logger_funcr   instances       r   _patch_loggerszLogger._patch_loggers0   s;     "nn224 	5ND(.t4H	5 .r   N)r   strreturnNone)r   r)   r*   r   )r*   zIterator[None]griffer   r)   r*   r   )r&   r   r*   r+   )__name__
__module____qualname__logging	getLoggerr   __annotations__r   r   r   r   r    classmethodr#   r(    r   r   r   r      sc    ",,OS,.0J+0<+ - - $ $
 . .r   r   loggerc                ,    t         j                  |       S )zCreate and return a new logger instance.

    Parameters:
        name: The logger name.

    Returns:
        The logger.
    )r   r#   )r   s    r   
get_loggerr9   ]   s     ;;tr   c                .    t         j                  |        y)zPatch Griffe logger and Griffe extensions' loggers.

    Parameters:
        get_logger_func: A function accepting a name as parameter and returning a logger.
    N)r   r(   )r&   s    r   patch_loggersr;   i   s     /*r   r,   r.   )r&   zCallable[[str], Any]r*   r+   )
__future__r   r2   
contextlibr   typingr   r   r   r   collections.abcr	   r   r#   r7   r4   r9   r;   r6   r   r   <module>r@      sI    #  % 9 9(#. #.L  D	+r   