
    fi                     (   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 	 d dlZd d	lmZ d d
lmZ erd dlmZ n# e$ r  ed          w xY w G 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e          Z) G d de          Z* G d  d!e*e          Z+ G d" d#e*e          Z,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                   *    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     n/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/sentry_sdk/integrations/loguru.pyr   r      s1        EEDGGEHHHr&   r   r   r    r"   r#   r$   )r   r   r    r!   r"   r#   r$               	   r      c                   N    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dS )LoguruIntegrationloguruc                 ~    |t           _        |t           _        |t           _        |t           _        |t           _        d S )N)r/   levelevent_levelbreadcrumb_formatevent_formatsentry_logs_level)selfr2   r3   r4   r5   r6   s         r'   __init__zLoguruIntegration.__init__K   s7     #((3%.?+)5&.?+++r&   c                     t           j        Ct          j        t	          t           j                  t           j        t           j                   t           j        Ct          j        t          t           j                  t           j        t           j                   t           j	        't          j        t          t           j	                   d S d S )N)r2   )r2   format)r/   r2   r   addLoguruBreadcrumbHandlerr4   r3   LoguruEventHandlerr5   r6   loguru_sentry_logs_handlerr%   r&   r'   
setup_oncezLoguruIntegration.setup_onceZ   s     ".J'.?.EFFF'-(:    (4J"):)FGGG'3(5    .:J*'9      ;:r&   N)r   r   r   
identifierDEFAULT_LEVELr2   DEFAULT_EVENT_LEVELr3   DEFAULT_FORMATr4   r5   r6   r8   staticmethodr?   r%   r&   r'   r/   r/   B   sx        JE%K&!L% '(#'@ @ @ @   \  r&   r/   c                   $     e Zd Z fdZd Z xZS )_LoguruBaseHandlerc                     |                     d          r7t                               |                     dd          t                    |d<    t                      j        |i | d S )Nr2    )getSENTRY_LEVEL_FROM_LOGURU_LEVELrA   superr8   )r7   argskwargs	__class__s      r'   r8   z_LoguruBaseHandler.__init__s   sg    ::g 	<@@

7B'' F7O 	$)&)))))r&   c                     	 t           t          |j                  j                                                 S # t
          t          f$ r% |j        r|j                                        ndcY S w xY w)NrH   )rJ   r   levelnonamelower
ValueErrorKeyError	levelname)r7   records     r'   _logging_to_event_levelz*_LoguruBaseHandler._logging_to_event_level|   s|    	H1fn--2egg H% 	H 	H 	H/5/?G6#))+++RGGG	Hs   58 3A.-A.)r   r   r   r8   rW   __classcell__)rN   s   @r'   rF   rF   r   sN        * * * * *H H H H H H Hr&   rF   c                       e Zd ZdZdS )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pDr&   r=   c                       e Zd ZdZdS )r<   zkModified version of :class:`sentry_sdk.integrations.logging.BreadcrumbHandler` to use loguru's level names.NrZ   r%   r&   r'   r<   r<      s        uuDr&   r<   c           
      h   t          j                    }|                                sd S t          |j                  sd S | j        }t          j        |d         j        t          j        k     rd S t          |d         j        t                    \  }}ddi}|j        d         }|                    d          r[|I|d         j                            |          r)|d         j        t          |          dz   d          |d<   n|d         j        |d<   |                    d          |d         |d	<   |                    d
          r|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 ]K\  }}	t#          |	t(          t*          t,          t.          f          r	|	|d| <   6t1          |	          |d| <   L|                    |||d         |t+          |d                                         dz            d d           d S )Nr2   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.namerQ   zlogger.nameextrazsentry.message.parameter.messagetimeg    eA)severity_textseverity_numberbody
attributestime_unix_nanotrace_id)
sentry_sdk
get_client	is_activer	   optionsrV   r/   r6   nor   SEVERITY_TO_OTEL_SEVERITYrI   path
startswithlenrQ   id
isinstancedictitemsstrintfloatboolr
   _capture_log	timestamp)
re   clientrV   otel_severity_numberotel_severity_textattrsr^   rd   keyvalues
             r'   r>   r>      s    "$$F FN++ ^F 	+3'? 1 CCC/Aw50 0,, /0E>.1Lzz& :#v(;(F(F|(T(T#&,Vn&9#l:K:Ka:O:Q:Q&RE"##&,Vn&9E"#zz&%$*6N !zz* 9&,Z&8"#zz( 1%h/4m#H-0kzz) B%i03m+1)+<+A'(zz& .%f~mJJwE% L++-- 	L 	LJC%#sE4!899 L;@7#7788;DU;K;K7#7788
/39%!&.":":"<"<s"BCC	
 	
	 	 	 	 	r&   ).enumrm   sentry_sdk.integrationsr   r   sentry_sdk.integrations.loggingr   r   r   sentry_sdk.loggerr   sentry_sdk.utilsr	   r
   typingr   loggingr   r   r   r0   r   loguru._defaultsr   rC   r   ImportErrorIntEnumr   r    r   rA   r#   rB   rJ   r$   r"   r!   r   r   rr   r/   rF   r=   r<   r>   r%   r&   r'   <module>r      s        = = = = = = = =         
 1 0 0 0 0 0 8 8 8 8 8 8 8 8             %!!!!!!$$$$$$$$2MMM@@@@@@ #"""""" 2 2 2
,0
1
112    DL    "(#)/  " "  B22 - - - - - - - -`H H H H H H H H(	 	 	 	 	+\ 	 	 		 	 	 	 	02C 	 	 	C C C C Cs    A A*