o
    i	                     @   s~   d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	 G dd de	Z
deeef fd	d
Ze eZdefddZdS )    N)Any)RichToolkitRichToolkitTheme)TaggedStyle)DefaultFormatterc                       s>   e Zd Zdededdf fddZdejdefdd	Z  Z	S )
CustomFormatterargskwargsreturnNc                    s   t  j|i | t | _d S )N)super__init__get_rich_toolkittoolkit)selfr   r	   	__class__ I/home/ubuntu/.local/lib/python3.10/site-packages/fastapi_cli/utils/cli.pyr   
   s   zCustomFormatter.__init__recordc                 C   s.   |  }| jj||jd}|dkrd| }|S )N)tagzShutting down
)
getMessager   print_as_string	levelname)r   r   messageresultr   r   r   formatMessage   s
   zCustomFormatter.formatMessage)
__name__
__module____qualname__r   r   logging	LogRecordstrr   __classcell__r   r   r   r   r   	   s    r   r
   c                
   C   sX   ddt dd dt ddddd	d
ddd	ddddgddddidgdddddS )N   Fz%(levelprefix)s %(message)s)()fmt
use_colorszD%(levelprefix)s %(client_addr)s - '%(request_line)s' %(status_code)s)r%   r&   )defaultaccessr(   zlogging.StreamHandlerzext://sys.stderr)	formatterclassstreamr)   zext://sys.stdoutINFO)handlerslevelr/   )r.   r/   	propagate)uvicornzuvicorn.errorzuvicorn.access)versiondisable_existing_loggers
formattersr.   loggers)r   r   r   r   r   get_uvicorn_log_config   s6   
r6   c                  C   s0   t tdddddddddd	d
d	d} t| dS )N   )	tag_widthzwhite on #009485zwhite on #007166grey85whitez#007166z
on #007166redzblack on blue)	z	tag.titler   placeholdertextselectedr   progresserrorzlog.info)stylethemerB   )r   r   r   rC   r   r   r   r   A   s   
r   )r    typingr   rich_toolkitr   r   rich_toolkit.stylesr   uvicorn.loggingr   r   dictr"   r6   	getLoggerr   loggerr   r   r   r   r   <module>   s    
'