o
    0 i                     @   s|  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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rWd dlmZ W n eyc   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	safe_repr)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#   j/home/app/PaddleOCR-VL-test/.venv_paddleocr/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/   r0   r1   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.   LoguruEventHandlerr0   r1   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/   r0   r1   r3   staticmethodr9   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;   superr3   )r2   argskwargs	__class__r#   r$   r3   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@   )rB   r   levelnonamelower
ValueErrorKeyError	levelname)r2   recordr#   r#   r$   _logging_to_event_level|   s   
z*_LoguruBaseHandler._logging_to_event_level)r   r   r   r3   rO   __classcell__r#   r#   rF   r$   r?   r   s    	r?   c                   @      e Zd ZdZdS )r7   zfModified version of :class:`sentry_sdk.integrations.logging.EventHandler` to use loguru's level names.Nr   r   r   __doc__r#   r#   r#   r$   r7          r7   c                   @   rQ   )r6   zkModified version of :class:`sentry_sdk.integrations.logging.BreadcrumbHandler` to use loguru's level names.NrR   r#   r#   r#   r$   r6      rT   r6   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|tr| D ]\}}	t|	ttttfr|	|d| < qt|	|d| < q||||d |t|d  d d d d S )Nr-   zsentry.originzauto.log.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.namerI   zlogger.nameextrazsentry.message.parameter.messagetimeg    eA)Zseverity_textZseverity_numberbody
attributesZtime_unix_nanoZtrace_id)
sentry_sdkZ
get_client	is_activer   optionsrN   r+   r1   nor   SEVERITY_TO_OTEL_SEVERITYrA   path
startswithlenrI   id
isinstancedictitemsstrintfloatboolr	   Z_capture_log	timestamp)
r\   clientrN   Zotel_severity_numberZotel_severity_textattrsrU   r[   keyvaluer#   r#   r$   r8      sZ   




 





r8   ).enumr`   Zsentry_sdk.integrationsr   r   Zsentry_sdk.integrations.loggingr   r   r   Zsentry_sdk.loggerr   Zsentry_sdk.utilsr   r	   typingr
   loggingr   r   r   r,   r   Zloguru._defaultsr   r=   r   ImportErrorIntEnumr   r   rt   r;   r!   r<   rB   r"   r    r   r   r   rd   r+   r?   r7   r6   r8   r#   r#   r#   r$   <module>   sX    
0