o
    ir                     @  s   U d dl mZ 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 d dl	m
Z
m	Z	mZmZ d dlmZ d dlmZ ddlmZ g d	Zd'ddZdZded< d(ddZd)ddZG dd dejZG dd dejZd*d%d&ZdS )+    )annotationsN)OrderedDict)datedatetimetimetimezone)istraceback)Any   )Plugin)httpxhttpcoreopenai
watchfiles	anthropiczwebsockets.clientzaiohttp.accesslivekitbotocoreaiobotocorezurllib3.connectionpoolz
mcp.clientreturnNonec                  C  s0   t D ]} t| }|jtjkr|tj qd S N)NOISY_LOGGERSlogging	getLoggerlevelNOTSETsetLevelWARN)noisy_loggerlogger r    X/var/www/html/livekit_bhavya/venv/lib/python3.10/site-packages/livekit/agents/cli/log.py_silence_noisy_loggers    s   
r"   )argsasctimecreatedexc_infoexc_textfilenamefuncName	levelnamelevelnolinenomodulemsecsmessagemsgnamepathnameprocessprocessNamerelativeCreated
stack_infothread
threadNametaskNameztuple[str, ...]_RESERVED_ATTRSrecordlogging.LogRecordtargetdict[Any, Any]c                 C  s<   | j  D ]\}}|tvrt|dr|ds|||< qd S )N
startswith_)__dict__itemsr:   hasattrr?   )r;   r=   keyvaluer    r    r!   _merge_record_extraD   s
   rF   	formatterlogging.Formatter	list[str]c                 C  s   t | jtjrtdtj}n&t | jtjrtdtj}nt | jtjr-tdtj}nt	d| j
 | j
r>|| j
S g S )z.parse the list of fields required by the stylez\$\{(.+?)\}z	\{(.+?)\}z
%\((.+?)\)zInvalid format: )
isinstance_styler   StringTemplateStylerecompile
IGNORECASEStrFormatStylePercentStyle
ValueError_fmtfindall)rG   formatter_style_patternr    r    r!   _parse_styleJ   s   rV   c                      s:   e Zd ZG dd dejZd fdd	ZdddZ  ZS )JsonFormatterc                      s   e Zd Zd fddZ  ZS )zJsonFormatter.JsonEncoderor	   r   c                   s   t |tttfr| S t|rdt|	 S t
|tu s+t |ts+t
|t
u r/t|S zt |W S  tyP   zt|W  Y S  tyO   Y Y d S w w )N )rJ   r   r   r   	isoformatr   join	traceback	format_tbstriptype	Exceptionstrsuperdefault	TypeError)selfrX   	__class__r    r!   rc   ]   s   "z!JsonFormatter.JsonEncoder.default)rX   r	   r   r	   )__name__
__module____qualname__rc   __classcell__r    r    rf   r!   JsonEncoder\   s    rl   r#   r	   kwargsr   r   c                   s    t  j|i | t| | _d S r   )rb   __init__rV   _required_fieldsre   r#   rm   rf   r    r!   rn   n   s   zJsonFormatter.__init__r;   r<   ra   c                 C  s  i }|j |d< |j|d< t|jtr|j}d|_n| |_d| jv r+| || j	|_
|jr;|ds;| |j|d< |dsH|jrH|j|d< |jrX|dsX| |j|d< t }| jD ]
}|j|||< q^|| t|| tj|jtjd|d< tj|tjd	d
S )z+Formats a log record and serializes to jsonr   r1   rY   r$   r&   r6   )tz	timestampFclsensure_ascii)r*   r1   rJ   r0   dictr/   
getMessagero   
formatTimedatefmtr$   r&   getformatExceptionr'   r6   formatStackr   rA   updaterF   r   fromtimestampr%   r   utcjsondumpsrW   rl   )re   r;   message_dict
log_recordfieldr    r    r!   formatr   s,   







zJsonFormatter.formatr#   r	   rm   r	   r   r   r;   r<   r   ra   )	rh   ri   rj   r   JSONEncoderrl   rn   r   rk   r    r    rf   r!   rW   [   s    rW   c                      s6   e Zd Zd fddZedddZdddZ  ZS )ColoredFormatterr#   r	   rm   r   r   c                   s   t  j|i | | d| d| d| d| d| d| d| d| d	dd
	| _| jd | jd | jd | jd | jd | jd d| _t| | _d S )Nr          !   "   #   $   Z      )		esc_resetesc_red	esc_green
esc_yellowesc_blue
esc_purpleesc_cyanesc_grayesc_bold_redr   r   r   r   r   r   )DEBUGINFOWARNINGERRORCRITICALDEV)rb   rn   _esc
_esc_codes_level_colorsrV   ro   rp   rf   r    r!   rn      s&   
	zColoredFormatter.__init__codesintra   c                 G  s   dd dd |D  d S )Nz[;c                 s  s    | ]}t |V  qd S r   )ra   ).0coder    r    r!   	<genexpr>   s    z(ColoredFormatter._esc.<locals>.<genexpr>m)r[   )rt   r   r    r    r!   r      s   zColoredFormatter._escr;   r<   c                 C  s   i }t || i }| jD ]
}|j|||< q| j|jd|d< d|d< || j | jD ]	}||v r7||= q.|rEtj	|t
jdd|d< | jj| }|| jd  S )z Formats a log record with colorsrY   esc_levelcolorextraFrs   r   )rF   ro   rA   rz   r   r*   r}   r   r   r   rW   rl   rK   rS   )re   r;   r   r#   r   r0   r    r    r!   formatMessage   s    


zColoredFormatter.formatMessager   )r   r   r   ra   r   )rh   ri   rj   rn   classmethodr   r   rk   r    r    rf   r!   r      s
    r   	log_levelra   devmodeboolconsolec           
        s   t  }t tj}|r|rtd}ntd}|| nt }|| || |	  t
  ddlm} |jt jkrC|	  d fd	d
}tjD ]}	||	 qMtjd| d S )Nzj%(asctime)s - %(esc_levelcolor)s%(levelname)-4s%(esc_reset)s %(name)s - %(message)s %(esc_gray)s%(extra)szi%(asctime)s - %(esc_levelcolor)s%(levelname)-4s%(esc_reset)s %(name)s - %(message)s %(esc_gray)s%(extra)sr
   )r   pluginr   r   r   c                   s0   | j d ur| j jtjkr| j   d S d S d S r   )r   r   r   r   r   )r   r   r    r!   _configure_plugin_logger   s   z/setup_logging.<locals>._configure_plugin_loggerplugin_registered)r   r   r   r   )r   r   StreamHandlersysstdoutr   setFormatterrW   
addHandlerr   r"   logr   r   r   r   registered_pluginsemitteron)
r   r   r   roothandlercolored_formatterjson_formatterr   r   r   r    r   r!   setup_logging   s.   





r   )r   r   )r;   r<   r=   r>   r   r   )rG   rH   r   rI   )r   ra   r   r   r   r   r   r   )
__future__r   r   r   rM   r   r\   collectionsr   r   r   r   r   inspectr   typingr	   r   r   r   r"   r:   __annotations__rF   rV   	FormatterrW   r   r   r    r    r    r!   <module>   s&    
	

:7