
    Uvh1                     h   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rd dlmZ d dlmZmZ 	 d dlZd dlmZ d d	lmZ erd d
lmZ  G d de j0                        Zej4                  j6                  Zej:                  j6                  ZddddddddZej@                  dej:                  dejB                  dejD                  dej4                  dejF                  dejH                  diZ% G d de      Z& G d de      Z' G d d e'e      Z( G d! d"e'e      Z)d# Z*y# e$ r	  ed      w xY w)$    N)IntegrationDidNotEnable)BreadcrumbHandlerEventHandler_BaseHandler)_log_level_to_otel)TYPE_CHECKING)	LogRecord)AnyOptional)logger)LOGURU_FORMAT)MessagezLOGURU is not installedc                   (    e Zd ZdZdZdZdZdZdZdZ	y)	LoggingLevels   
            (   2   N)
__name__
__module____qualname__TRACEDEBUGINFOSUCCESSWARNINGERRORCRITICAL     Y/opt/face_recognition/venv/lib/python3.12/site-packages/sentry_sdk/integrations/loguru.pyr   r      s%    EEDGGEHr$   r   r   r   r    r!   r"   )r   r   r   r   r    r!   r"               	   r      c                   F    e Zd ZdZeZeZeZ	eZ
eZeeeeefdZed        Zy)LoguruIntegrationloguruc                 r    |t         _        |t         _        |t         _        |t         _        |t         _        y )N)r-   levelevent_levelbreadcrumb_formatevent_formatsentry_logs_level)selfr0   r1   r2   r3   r4   s         r%   __init__zLoguruIntegration.__init__J   s1     #((3%.?+)5&.?+r$   c                     t         j                  Lt        j                  t	        t         j                        t         j                  t         j
                         t         j                  Lt        j                  t        t         j                        t         j                  t         j                         t         j                  *t        j                  t        t         j                         y y )N)r0   )r0   format)r-   r0   r   addLoguruBreadcrumbHandlerr2   r1   LoguruEventHandlerr3   r4   loguru_sentry_logs_handlerr#   r$   r%   
setup_oncezLoguruIntegration.setup_onceY   s     "".JJ'.?.E.EF'--(:: ((4JJ"):)F)FG'33(55 ..:JJ*'99 ;r$   N)r   r   r   
identifierDEFAULT_LEVELr0   DEFAULT_EVENT_LEVELr1   DEFAULT_FORMATr2   r3   r4   r6   staticmethodr=   r#   r$   r%   r-   r-   A   sM    JE%K&!L% '(#'@  r$   r-   c                   $     e Zd Z fdZd Z xZS )_LoguruBaseHandlerc                     |j                  d      r-t        j                  |j                  dd      t              |d<   t        |   |i | y )Nr0    )getSENTRY_LEVEL_FROM_LOGURU_LEVELr?   superr6   )r5   argskwargs	__class__s      r%   r6   z_LoguruBaseHandler.__init__r   sG    ::g<@@

7B'F7O 	$)&)r$   c                     	 t         t        |j                        j                     j	                         S # t
        t        f$ r- |j                  r|j                  j	                         cY S dcY S w xY w)NrF   )rH   r   levelnonamelower
ValueErrorKeyError	levelname)r5   records     r%   _logging_to_event_levelz*_LoguruBaseHandler._logging_to_event_level{   sh    	H1fnn-22eg H% 	H/5/?/?6##))+GRG	Hs   36 5A2-A21A2)r   r   r   r6   rU   __classcell__)rL   s   @r%   rD   rD   q   s    *Hr$   rD   c                       e Zd ZdZy)r;   zfModified version of :class:`sentry_sdk.integrations.logging.EventHandler` to use loguru's level names.Nr   r   r   __doc__r#   r$   r%   r;   r;      s    pr$   r;   c                       e Zd ZdZy)r:   zkModified version of :class:`sentry_sdk.integrations.logging.BreadcrumbHandler` to use loguru's level names.NrX   r#   r$   r%   r:   r:      s    ur$   r:   c           
         t        j                         }|j                         sy |j                  d   j	                  dd      sy | j
                  }t        j                   |d   j                  t        j                  k  ry t        |d   j                  t              \  }}ddi}|j                  d   }|j	                  d      rT|@|d   j                  j                  |      r"|d   j                  t        |      d	z   d  |d
<   n|d   j                  |d
<   |j	                  d      |d   |d<   |j	                  d      r|d   |d<   |j	                  d      r$|d   j                  |d<   |d   j                  |d<   |j	                  d      r$|d   j                  |d<   |d   j                  |d<   |j	                  d      r|d   |d<   |j!                  |||d   |t#        |d   j%                         dz        d d       y )N_experimentsenable_logsFr0   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.namerO   zlogger.namemessagetimeg    eA)severity_textseverity_numberbody
attributestime_unix_nanotrace_id)
sentry_sdk
get_client	is_activeoptionsrG   rT   r-   r4   nor   SEVERITY_TO_OTEL_SEVERITYpath
startswithlenrO   id_capture_experimental_logint	timestamp)rd   clientrT   otel_severity_numberotel_severity_textattrsr^   s          r%   r<   r<      s    ""$F>>.)--mUC^^F 	++3'? 1 C CC/Aw50,, 23E>>.1Lzz&#v(;(;(F(F|(T&,Vn&9&9#l:Ka:O:Q&RE"#&,Vn&9&9E"#zz&%$*6N !zz*&,Z&8"#zz(%h/44m#H-00kzz)%i033m+1)+<+A+A'(zz&%f~m
$$/39%!&.":":"<s"BC	
	r$   )+enumrl   sentry_sdk.integrationsr   r   sentry_sdk.integrations.loggingr   r   r   sentry_sdk.loggerr   typingr	   loggingr
   r   r   r.   r   loguru._defaultsr   rA   r   ImportErrorIntEnumr   r   valuer?   r!   r@   rH   r"   r    r   r   r   rq   r-   rD   r;   r:   r<   r#   r$   r%   <module>r      sE     = 
 1  !$2@"
DLL  ""((#))//  "  B22 - -`H H(	+\ 		02C 	;q  2
0
112s   D# #D1