o
    BDi1                     @   sl  d dl Z d dlZd dlmZmZ d dlmZmZmZ d dl	m
Z
 d dlmZ er6d dlmZ d dlmZmZ zd dlZd dlmZ d d	lmZ erOd d
lmZ W n ey[   edw G dd de jZejjZejjZddddddddZej dejdej!dej"dejdej#dej$diZ%G dd deZ&G dd deZ'G dd  d e'eZ(G d!d" d"e'eZ)d#d$ Z*dS )%    N)IntegrationDidNotEnable)BreadcrumbHandlerEventHandler_BaseHandler)_log_level_to_otel)TYPE_CHECKING)	LogRecord)AnyOptional)logger)LOGURU_FORMAT)MessagezLOGURU is not installedc                   @   s(   e Zd ZdZdZdZdZdZdZdZ	dS )	LoggingLevels   
            (   2   N)
__name__
__module____qualname__TRACEDEBUGINFOSUCCESSWARNINGERRORCRITICAL r!   r!   W/var/www/Datamplify/venv/lib/python3.10/site-packages/sentry_sdk/integrations/loguru.pyr      s    r   r   r   r   r   r    )r   r   r   r   r   r   r                	   r      c                   @   sD   e Zd ZdZeZeZeZ	eZ
eZeeeeefddZedd ZdS )LoguruIntegrationloguruc                 C   s"   |t _|t _|t _|t _|t _d S )N)r)   levelevent_levelbreadcrumb_formatevent_formatsentry_logs_level)selfr+   r,   r-   r.   r/   r!   r!   r"   __init__J   s
   	
zLoguruIntegration.__init__c                   C   sn   t jd urtjtt jdt jt jd t jd ur&tjtt jdt jt jd t j	d ur5tjt
t j	d d S d S )N)r+   )r+   format)r)   r+   r   addLoguruBreadcrumbHandlerr-   r,   LoguruEventHandlerr.   r/   loguru_sentry_logs_handlerr!   r!   r!   r"   
setup_onceY   s$   





zLoguruIntegration.setup_onceN)r   r   r   
identifierDEFAULT_LEVELr+   DEFAULT_EVENT_LEVELr,   DEFAULT_FORMATr-   r.   r/   r1   staticmethodr7   r!   r!   r!   r"   r)   A   s    
r)   c                       s$   e Zd Z fddZdd Z  ZS )_LoguruBaseHandlerc                    s8   | drt | ddt|d< t j|i | d S )Nr+    )getSENTRY_LEVEL_FROM_LOGURU_LEVELr9   superr1   )r0   argskwargs	__class__r!   r"   r1   r   s
   
z_LoguruBaseHandler.__init__c              	   C   sF   zt t|jj  W S  ttfy"   |jr|j  Y S d Y S w )Nr>   )r@   r   levelnonamelower
ValueErrorKeyError	levelname)r0   recordr!   r!   r"   _logging_to_event_level{   s   
z*_LoguruBaseHandler._logging_to_event_level)r   r   r   r1   rM   __classcell__r!   r!   rD   r"   r=   q   s    	r=   c                   @      e Zd ZdZdS )r5   zfModified version of :class:`sentry_sdk.integrations.logging.EventHandler` to use loguru's level names.Nr   r   r   __doc__r!   r!   r!   r"   r5          r5   c                   @   rO   )r4   zkModified version of :class:`sentry_sdk.integrations.logging.BreadcrumbHandler` to use loguru's level names.NrP   r!   r!   r!   r"   r4      rR   r4   c              	   C   s  t  }| s
d S |jd ddsd S | j}tjd u s%|d jtjk r'd S t	|d jt
\}}ddi}|jd }|drb|d ur[|d j|r[|d jt|d	 d  |d
< n|d j|d
< |dd uro|d |d< |drz|d |d< |dr|d j|d< |d j|d< |dr|d j|d< |d j|d< |dr|d |d< ||||d |t|d  d d d d S )N_experimentsenable_logsFr+   zsentry.originzauto.logger.loguruproject_rootfiler(   zcode.file.pathlinezcode.line.numberfunctionzcode.function.namethreadzthread.namez	thread.idprocesszprocess.pidzprocess.executable.namerG   zlogger.namemessagetimeg    eA)severity_textseverity_numberbody
attributestime_unix_nanotrace_id)
sentry_sdk
get_client	is_activeoptionsr?   rL   r)   r/   nor   SEVERITY_TO_OTEL_SEVERITYpath
startswithlenrG   id_capture_experimental_logint	timestamp)r[   clientrL   otel_severity_numberotel_severity_textattrsrU   r!   r!   r"   r6      sN   



 



r6   )+enumrc   sentry_sdk.integrationsr   r   sentry_sdk.integrations.loggingr   r   r   sentry_sdk.loggerr   typingr   loggingr	   r
   r   r*   r   loguru._defaultsr   r;   r   ImportErrorIntEnumr   r   valuer9   r   r:   r@   r    r   r   r   r   rh   r)   r=   r5   r4   r6   r!   r!   r!   r"   <module>   sV    
0