o
    hG                     @   sx  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 d dlmZ er<d 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rUd dlmZ W n eya   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)has_logs_enabled)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"   `/var/www/html/pro-man-master/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/   r0   r"   r"   r#   __init__K   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/   r0   loguru_sentry_logs_handlerr"   r"   r"   r#   
setup_onceZ   s$   





zLoguruIntegration.setup_onceN)r   r   r   
identifierDEFAULT_LEVELr,   DEFAULT_EVENT_LEVELr-   DEFAULT_FORMATr.   r/   r0   r2   staticmethodr8   r"   r"   r"   r#   r*   B   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_LEVELr:   superr2   )r1   argskwargs	__class__r"   r#   r2   s   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?   )rA   r   levelnonamelower
ValueErrorKeyError	levelname)r1   recordr"   r"   r#   _logging_to_event_level|   s   
z*_LoguruBaseHandler._logging_to_event_level)r   r   r   r2   rN   __classcell__r"   r"   rE   r#   r>   r   s    	r>   c                   @      e Zd ZdZdS )r6   zfModified version of :class:`sentry_sdk.integrations.logging.EventHandler` to use loguru's level names.Nr   r   r   __doc__r"   r"   r"   r#   r6          r6   c                   @   rP   )r5   zkModified version of :class:`sentry_sdk.integrations.logging.BreadcrumbHandler` to use loguru's level names.NrQ   r"   r"   r"   r#   r5      rS   r5   c              	   C   s~  t  }| s
d S t|j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r^|d urW|d j|rW|d jt|d d  |d< n|d j|d< |dd urk|d |d	< |d
rv|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 )Nr,   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.namerH   zlogger.namemessagetimeg    eA)severity_textseverity_numberbody
attributestime_unix_nanotrace_id)
sentry_sdk
get_client	is_activer   optionsrM   r*   r0   nor   SEVERITY_TO_OTEL_SEVERITYr@   path
startswithlenrH   id_capture_experimental_logint	timestamp)rZ   clientrM   otel_severity_numberotel_severity_textattrsrT   r"   r"   r#   r7      sN   




 



r7   )-enumrb   sentry_sdk.integrationsr   r   sentry_sdk.integrations.loggingr   r   r   sentry_sdk.loggerr   sentry_sdk.utilsr   typingr	   loggingr
   r   r   r+   r   loguru._defaultsr   r<   r   ImportErrorIntEnumr   r   valuer:   r    r;   rA   r!   r   r   r   r   rg   r*   r>   r6   r5   r7   r"   r"   r"   r#   <module>   sX    
0