o
    Ci+                     @   sr   d dl Z d dlmZ d dlmZmZmZmZmZm	Z	 d dl
mZ dddddZd	ed
efddZG dd dZdS )    N)Any)ASGI3ApplicationASGIReceiveCallableASGIReceiveEventASGISendCallableASGISendEventWWWScope)TRACE_LOG_LEVELz<{length} bytes>z<{length} chars>z<...>)bodybytestextheadersmessagereturnc                 C   sL   |   }t D ]}| |dur#| | }t| jt|d}|||< q|S )zi
    Return an ASGI message, with any body-type content omitted and replaced
    with a placeholder.
    N)length)copyPLACEHOLDER_FORMATkeysgetformatlen)r   new_messageattrcontentplaceholder r   y/var/www/html/fyndo/python/python_agents/rag_suite/venv/lib/python3.10/site-packages/uvicorn/middleware/message_logger.pymessage_with_placeholders   s   r   c                   @   s0   e Zd ZdddZ							
		dddZdS )MessageLoggerMiddlewareappr   c                    sB   d _ | _td _dtdtdtdd f fdd}| j_d S )	Nr   zuvicorn.asgir   argskwargsr   c                    s     j jt| g|R i | d S )N)loggerlogr	   )r   r    r!   selfr   r   trace*   s    z/MessageLoggerMiddleware.__init__.<locals>.trace)task_counterr   logging	getLoggerr"   r   r&   )r%   r   r&   r   r$   r   __init__%   s
   z MessageLoggerMiddleware.__init__scoper   receiver   sendr   r   Nc           
   
      s    j d7  _ j |d}|rd|d |d f nd d fdd	}d fdd}t|}d}j| | z|||I d H  W n tyf }	 zd}j|  |	d d }	~	ww d}j|  d S )N   clientz%s:%d - ASGIr   ASGIr   r   c                     s0    I d H } t | }d}j| | | S )Nz%s [%d] Receive %sr   r"   r&   r   logged_messagelog_text)prefixr,   r%   r'   r   r   inner_receive;   s   z7MessageLoggerMiddleware.__call__.<locals>.inner_receiver   r   c                    s2   t | }d}j| | | I d H  d S )Nz%s [%d] Send %sr1   r2   )r5   r%   r-   r'   r   r   
inner_sendD   s   z4MessageLoggerMiddleware.__call__.<locals>.inner_sendz%s [%d] Started scope=%sz%s [%d] Raised exceptionz%s [%d] Completed)r   r   )r   r   r   N)r'   r   r   r"   r&   r   BaseException)
r%   r+   r,   r-   r/   r6   r7   logged_scoper4   excr   )r5   r,   r%   r-   r'   r   __call__/   s(   
	z MessageLoggerMiddleware.__call__)r   r   )r+   r   r,   r   r-   r   r   N)__name__
__module____qualname__r*   r;   r   r   r   r   r   $   s    

r   )r(   typingr   uvicorn._typesr   r   r   r   r   r   uvicorn.loggingr	   r   r   r   r   r   r   r   <module>   s     