
    g                        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z  Z		  G d d      Zy)zHLogfire processor for [structlog](https://www.structlog.org/en/stable/).    )annotations)TYPE_CHECKINGN   )ATTRIBUTES_MESSAGE_KEY   )RESERVED_ATTRS)	EventDictWrappedLogger)Logfire>   eventlevel	timestampc                  2    e Zd ZdZddd	 	 	 	 	 ddZddZy)	LogfireProcessorzCLogfire processor for [structlog](../../integrations/structlog.md).FN)console_loglogfire_instancec               d    || _         |xs t        j                  j                  d      | _        y )N	structlog)custom_scope_suffix)r   logfireDEFAULT_LOGFIRE_INSTANCEwith_settingsr   )selfr   r   s      S/var/www/openai/venv/lib/python3.12/site-packages/logfire/integrations/structlog.py__init__zLogfireProcessor.__init__   s3     '!1!UW5U5U d d + !e !
    c           
     Z   |j                         D ci c]  \  }}|t        vs|| }}}|j                  dd      j                         }|j                  d      xs dx|t        <   }| j
                  j                  |||| j                  |j                  dd             |S c c}}w )zDA middleware to process structlog event, and send it to **Logfire**.r   infor   zstructlog eventexc_infoF)r   msg_template
attributesr   r   )itemsr   getlowerr   r   logr   )	r   loggername
event_dictkvr!   r   messages	            r   __call__zLogfireProcessor.__call__%   s    '1'7'7'9U'9tq!Qn=Tad'9
Uw/5577A~~g7N7cRcc
)*W!! !((^^J6 	" 	
  Vs
   B'B')r   boolr   zLogfire | NonereturnNone)r&   r
   r'   strr(   r	   r.   r	   )__name__
__module____qualname____doc__r   r,    r   r   r   r      s5    M
 "+/		
 	
 )		

 
	
r   r   )r4   
__future__r   typingr   r   _internal.constantsr   loggingr   LOGGING_RESERVED_ATTRSstructlog.typesr	   r
    r   r   r5   r   r   <module>r=      s:    N "    8 = 8'*II C r   