o
    i                     @  s|   d Z ddlmZ ddlmZ ddlZddlmZ ddlm	Z
 er.dd	lmZmZ dd
lmZ e
h dB Z		 G dd dZdS )zHLogfire processor for [structlog](https://www.structlog.org/en/stable/).    )annotations)TYPE_CHECKINGN   )ATTRIBUTES_MESSAGE_KEY   RESERVED_ATTRS)	EventDictWrappedLogger)Logfire>   eventlevel	timestampc                   @  s,   e Zd ZdZddddddZdddZdS )LogfireProcessorzCLogfire processor for [structlog](../../integrations/structlog.md).FN)console_loglogfire_instancer   boolr   Logfire | NonereturnNonec                C  s   || _ |ptjjdd| _d S )N	structlog)custom_scope_suffix)r   logfireDEFAULT_LOGFIRE_INSTANCEwith_settingsr   )selfr   r    r   d/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/logfire/integrations/structlog.py__init__   s   
zLogfireProcessor.__init__loggerr
   namestr
event_dictr	   c              	   C  s`   dd |  D }|dd }|dpd}|t| | jj|||| j|ddd	 |S )
zDA middleware to process structlog event, and send it to **Logfire**.c                 S  s   i | ]\}}|t vr||qS r   r   ).0kvr   r   r   
<dictcomp>'   s    z-LogfireProcessor.__call__.<locals>.<dictcomp>r   infor   zstructlog eventexc_infoF)r   msg_template
attributesr   r(   )itemsgetlower
setdefaultr   r   logr   )r   r   r    r"   r*   r   r)   r   r   r   __call__%   s   
zLogfireProcessor.__call__)r   r   r   r   r   r   )r   r
   r    r!   r"   r	   r   r	   )__name__
__module____qualname____doc__r   r0   r   r   r   r   r      s    r   )r4   
__future__r   typingr   r   _internal.constantsr   loggingr   LOGGING_RESERVED_ATTRSstructlog.typesr	   r
    r   r   r   r   r   r   <module>   s    