o
    i                     @  s   d dl mZ d dlZd dlZd dlmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlmZmZmZmZmZ d d	lmZ erJd d
lmZ eG dd deZeddG dd deZdS )    )annotationsN)	dataclass)Lock)TYPE_CHECKINGAny)WeakSet)trace)LoggerLoggerProvider	LogRecordNoOpLoggerProviderSeverityNumber)LEVEL_NUMBERS)_ExtendedAttributesc                   @  s   e Zd ZU dZded< ejedZded< eje	dZ
ded< ejedZd	ed
< dZded< 			d'd(ddZd)ddZd*ddZd+d!d"Zd,d%d&ZdS )-ProxyLoggerProviderz\A logger provider that wraps another internal logger provider allowing it to be re-assigned.r
   provider)default_factoryzWeakSet[ProxyLogger]loggersr   lockzset[str]suppressed_scopesr   int	min_levelNnamestrversion
str | None
schema_url
attributes_ExtendedAttributes | Nonereturnr	   c                 C  sv   | j . || jv rt }n| j}|||||}t|| j||||}| j| |W  d    S 1 s4w   Y  d S N)	r   r   r   r   
get_loggerProxyLoggerr   r   add)selfr   r   r   r   r   inner_loggerlogger r'   \/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/logfire/_internal/logs.pyr!      s   
$zProxyLoggerProvider.get_loggerNonec                 C  sD   | j  || _| jD ]}||_q
W d    d S 1 sw   Y  d S r    )r   r   r   )r$   r   r&   r'   r'   r(   set_min_level/   s   
"z!ProxyLoggerProvider.set_min_levelscopesc                 G  sZ   | j   | j| | jD ]}|j|v r|t  qW d    d S 1 s&w   Y  d S r    )r   r   updater   r   
set_loggerr   )r$   r+   r&   r'   r'   r(   suppress_scopes5   s   

"z#ProxyLoggerProvider.suppress_scopeslogger_providerc                 C  sZ   | j   || _| jD ]}||j| jv rt n| q
W d    d S 1 s&w   Y  d S r    )r   r   r   r-   r   r   r   )r$   r/   r&   r'   r'   r(   set_provider<   s   
"z ProxyLoggerProvider.set_provideritemr   c                   s`   zt j| W n ty   |dv rdd  Y S  w t r.t d	 fdd}|S  S )
N)shutdownforce_flushc                  _  s   d S r    r'   )___r'   r'   r(   <lambda>H   s    z1ProxyLoggerProvider.__getattr__.<locals>.<lambda>argsr   kwargsc                    s8   j   | i |W  d    S 1 sw   Y  d S r    )r   )r7   r8   resultr$   r'   r(   wrapperM   s   $z0ProxyLoggerProvider.__getattr__.<locals>.wrapper)r7   r   r8   r   )getattrr   AttributeErrorcallable	functoolswraps)r$   r1   r;   r'   r9   r(   __getattr__B   s   zProxyLoggerProvider.__getattr__)NNN)
r   r   r   r   r   r   r   r   r   r	   )r   r   r   r)   )r+   r   r   r)   )r/   r
   r   r)   )r1   r   r   r   )__name__
__module____qualname____doc____annotations__dataclassesfieldr   r   r   r   setr   r   r!   r*   r.   r0   rA   r'   r'   r'   r(   r      s   
 


r   F)eqc                   @  sh   e Zd ZU ded< ded< ded< dZded	< dZded
< dZded< dddZdddZdddZ	dS )r"   r	   r&   r   r   r   r   Nr   r   r   r   r   recordr   r   r)   c                 C  s   |j d ur|j j| jk rd S n|jr+|j  }tv r+t| }|| jk r&d S t||_ |js@t	 
 }|j|_|j|_|j|_t| jdrPt|drP| jj|_| j| d S )Nresource)severity_numbervaluer   severity_textlowerr   r   trace_idr   get_current_spanget_span_contextspan_idtrace_flagshasattrr&   rL   emit)r$   rK   
level_namelevel_numberspan_contextr'   r'   r(   rW   `   s"   



zProxyLogger.emitr   r
   c                 C  s   | | j| j| j| j| _d S r    )r!   r   r   r   r   r&   )r$   r   r'   r'   r(   r-   t   s   zProxyLogger.set_loggerr1   c                 C  s   t | j|S r    )r<   r&   )r$   r1   r'   r'   r(   rA   w   s   zProxyLogger.__getattr__)rK   r   r   r)   )r   r
   r   r)   )r1   r   )
rB   rC   rD   rF   r   r   r   rW   r-   rA   r'   r'   r'   r(   r"   W   s   
 

r"   )
__future__r   rG   r?   r   	threadingr   typingr   r   weakrefr   opentelemetryr   opentelemetry._logsr	   r
   r   r   r   logfire._internal.constantsr   opentelemetry.util.typesr   r   r"   r'   r'   r'   r(   <module>   s     C