o
    òT·j+  ã                   @   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   úd/home/dinkstrade/pdmp-scanner/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     ü