
    fiD6                     ^   d dl Z d dlZd dlmZmZ d dlmZ d dlZd dlmZ d dlm	Z	 d dl
mZmZmZ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 d dlmZ d dlmZ d dlmZ e j        Ze j        Ze j        de j         de j        de j!        de j"        de j        de j#        de j$        diZ%e j$        de j        de j"        de j        de j         diZ& e'g d          Z(d Z) G d de          Z* G d de j+                  Z, G d d e,          Z-e-Z. G d! d"e,          Z/ G d# d$e,          Z0dS )%    N)datetimetimezone)fnmatch)
BaseClient)_log_level_to_otel)	safe_repr	to_stringevent_from_exceptioncurrent_stacktracecapture_internal_exceptionshas_logs_enabled)Integration)TYPE_CHECKING)MutableMapping)	LogRecord)Any)Dict)Optionalnotsetdebuginfowarningerrorfatal         	      )zsentry_sdk.errorszurllib3.connectionpoolzurllib3.connectionc                 :    t                               |            dS )a|  This disables recording (both in breadcrumbs and as events) calls to
    a logger of a specific name.  Among other uses, many of our integrations
    use this to prevent their actions being recorded as breadcrumbs. Exposed
    to users as a way to quiet spammy loggers.

    :param name: The name of the logger to ignore (same string you would pass to ``logging.getLogger``).
    N)_IGNORED_LOGGERSadd)names    o/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/sentry_sdk/integrations/logging.pyignore_loggerr%   >   s         c                   <    e Zd ZdZeeefdZd Zed             Z	dS )LoggingIntegrationloggingc                     d | _         d | _        d | _        |t          |          | _        |t	          |          | _        |t          |          | _         d S d S )N)level)_handler_breadcrumb_handler_sentry_logs_handlerBreadcrumbHandlerSentryLogsHandlerEventHandler)selfr+   event_levelsentry_logs_levels       r$   __init__zLoggingIntegration.__init__O   sr     #' $(!'8u'E'E'ED$((9@Q(R(R(RD%"({;;;DMMM #"r&   c                 R   | j         /|j        | j         j        k    r| j                             |           | j        /|j        | j        j        k    r| j                            |           | j        1|j        | j        j        k    r| j                            |           d S d S d S N)r,   levelnor+   handler-   r.   r2   records     r$   _handle_recordz!LoggingIntegration._handle_recordc   s    =$4=;N)N)NM  ((( $0$":"@@@$++F333 %1$";"AAA%,,V44444 21AAr&   c                  V    t           j        j        fd} | t           j        _        d S )Nc                    t           }	  | |          |^|j                                        |vrDt          j                                        t                    }||                    |           S S S S # |^|j                                        |vrDt          j                                        t                    }||                    |           w w w w xY wr7   )r!   r#   strip
sentry_sdk
get_clientget_integrationr(   r<   )r2   r;   ignored_loggersintegrationold_callhandlerss       r$   sentry_patched_callhandlerszBLoggingIntegration.setup_once.<locals>.sentry_patched_callhandlersy   s     /O;''f55 $/))++?BB","7"9"9"I"I*# #K #.#226:::: 0B
 / $/))++?BB","7"9"9"I"I*# #K #.#226:::: 0B
 /s   A8 8A$C)r)   LoggercallHandlers)rF   rE   s    @r$   
setup_oncezLoggingIntegration.setup_oncet   s<     #>6	; 	; 	; 	; 	;. 'B###r&   N)
__name__
__module____qualname__
identifierDEFAULT_LEVELDEFAULT_EVENT_LEVELr5   r<   staticmethodrI    r&   r$   r(   r(   L   sg        J ''	< < < <(5 5 5" B B \B B Br&   r(   c                   6    e Zd Z ed          Zd Zd Zd ZdS )_BaseHandler)argscreatedexc_infoexc_textfilenamefuncName	levelnamer8   linennolinenomessagemodulemsecsmsgr#   pathnameprocessprocessNamerelativeCreatedstacktagstaskNamethread
threadName
stack_infoc                 n    t           D ],}t          |j                                        |          r dS -dS )z'Prevents ignored loggers from recordingFT)r!   r   r#   r?   )r2   r;   loggers      r$   _can_recordz_BaseHandler._can_record   sD     ' 	 	Fv{((**F33 uutr&   c                     t                               |j        |j        r|j                                        nd          S )N )LOGGING_TO_EVENT_LEVELgetr8   rZ   lowerr:   s     r$   _logging_to_event_levelz$_BaseHandler._logging_to_event_level   s=    %))N8HPF,22444b
 
 	
r&   c                 ^      fdt          |                                          D             S )Nc                     i | ];\  }}|j         vt          |t                    r|                    d           8||<S )_)COMMON_RECORD_ATTRS
isinstancestr
startswith).0kvr2   s      r$   
<dictcomp>z3_BaseHandler._extra_from_record.<locals>.<dictcomp>   s]     
 
 
10003'' 1/0||C/@/@ 1 q000r&   )varsitemsr:   s   ` r$   _extra_from_recordz_BaseHandler._extra_from_record   s@    
 
 
 
V**,,
 
 
 	
r&   N)rJ   rK   rL   	frozensetrw   rm   rs   r   rQ   r&   r$   rS   rS      sX        #)	
 <  
 
 

 
 
 
 
r&   rS   c                       e Zd ZdZd Zd ZdS )r1   z
    A logging handler that emits Sentry events for each log record

    Note that you do not have to use this class if the logging integration is enabled, which it is by default.
    c                     t                      5  |                     |           |                     |          cd d d            S # 1 swxY w Y   d S r7   r   format_emitr:   s     r$   emitzEventHandler.emit       (** 	& 	&KK::f%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&   *AA
A
c                 h   |                      |          sd S t          j                    }|                                sd S |j        }|j        r+|j        d         t          |j        |ddd          \  }}nq|j        r|j        d         |j        rRi }i }t                      5  dt          |d         |d         	          d
ddgi|d<   d d d            n# 1 swxY w Y   ni }i }||d<   | 
                    |          }|dv r||d<   |j        |d<   t          j        dk     r&|j        dk    r|j        dk    r|j        d         }d}n|j        }|j        }t!          |          |                                |d|d<   |                     |          |d<   t          j        ||           d S )Nr   r)   T)typehandled)client_options	mechanismvaluesinclude_local_variablesmax_value_length)r   r   F)
stacktracecrashedcurrentthreads
log_record>   r   r   r   r   r   criticalr+   rl   )      zpy.warningsz%srQ   )r]   	formattedparamslogentryextrahint)rm   r@   rA   	is_activeoptionsrV   r
   rj   r   r   rs   r#   sysversion_infor`   rT   r	   
getMessager   capture_event)	r2   r;   clientr   eventr   r+   r]   r   s	            r$   r   zEventHandler._emit   se   '' 	F&((!! 	F ? 	vq1=.-#,>>  KE44
 o 	&/!"4"<AR"<ED,..  *<8F$=9" 2@@R1S	+ + + (-'+	 	$i                 ED#\,,V44NNN"E'N +h w&&},,
d""
 k!nGFFjG[F !))**,,
 
j 0088g T222222s   '(CC"CN)rJ   rK   rL   __doc__r   r   rQ   r&   r$   r1   r1      sA         & & &J3 J3 J3 J3 J3r&   r1   c                   $    e Zd ZdZd Zd Zd ZdS )r/   z
    A logging handler that records breadcrumbs for each log record.

    Note that you do not have to use this class if the logging integration is enabled, which it is by default.
    c                     t                      5  |                     |           |                     |          cd d d            S # 1 swxY w Y   d S r7   r   r:   s     r$   r   zBreadcrumbHandler.emit/  r   r   c                     |                      |          sd S t          j        |                     |          d|i           d S )Nr   r   )rm   r@   add_breadcrumb_breadcrumb_from_recordr:   s     r$   r   zBreadcrumbHandler._emit5  sY    '' 	F!((00f7M	
 	
 	
 	
 	
 	
r&   c                     d|                      |          |j        |j        t          j        |j        t          j                  |                     |          dS )Nlog)r   r+   categoryr]   	timestampdata)	rs   r#   r]   r   fromtimestamprU   r   utcr   r:   s     r$   r   z)BreadcrumbHandler._breadcrumb_from_record>  sV     11&99~!/MM++F33
 
 	
r&   N)rJ   rK   rL   r   r   r   r   rQ   r&   r$   r/   r/   (  sK         & & &
 
 
	
 	
 	
 	
 	
r&   r/   c                       e Zd ZdZd Zd ZdS )r0   z
    A logging handler that records Sentry logs for each Python log record.

    Note that you do not have to use this class if the logging integration is enabled, which it is by default.
    c                    t                      5  |                     |           |                     |          s	 d d d            d S t          j                    }|                                s	 d d d            d S t          |j                  s	 d d d            d S |                     ||           d d d            d S # 1 swxY w Y   d S r7   )	r   r   rm   r@   rA   r   r   r   _capture_log_from_record)r2   r;   r   s      r$   r   zSentryLogsHandler.emitQ  sk   (** 	: 	:KK##F++ 	: 	: 	: 	: 	: 	: 	: 	:
  *,,F##%% 	: 	: 	: 	: 	: 	: 	: 	: $FN33 	: 	: 	: 	: 	: 	: 	: 	: ))&&999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s#   ,C(C=CCC	Cc           
         t          |j        t                    \  }}|j        d         }|                     |          }d|d<   d}|j        t          |j        t                    rnt          |j                  }t          |j                  D ]D\  }}	t          |	t          t          t          t          f          r|	nt          |	          |d| <   Ent          |j        t                    rrt          |j                  }|j                                        D ]D\  }
}t          |t          t          t          t          f          r|nt          |          |d|
 <   E|r$t          |j        t                    r
|j        |d<   |j        r
|j        |d<   |j        rI|=|j                            |          r#|j        t)          |          dz   d          |d	<   n
|j        |d	<   |j        r
|j        |d
<   |j        r
|j        |d<   |j        r
|j        |d<   |j        r
|j        |d<   |j        r
|j        |d<   |j        r
|j        |d<   |                    |||j        |t          |j        dz            d d           d S )Nproject_rootzauto.log.stdlibzsentry.originFzsentry.message.parameter.zsentry.message.templatezcode.line.number   zcode.file.pathzcode.function.namez	thread.idzthread.namezprocess.pidzprocess.executable.namezlogger.nameg    eA)severity_textseverity_numberbody
attributestime_unix_nanotrace_id)r   r8   SEVERITY_TO_OTEL_SEVERITYr   r   rT   rx   tuplebool	enumeratery   floatintr   dictr   r`   r\   ra   rz   lenrY   rh   ri   rb   rc   r#   _capture_logr]   rU   )r2   r   r;   otel_severity_numberotel_severity_textr   attrsparameters_setiargkeyvalues               r$   r   z*SentryLogsHandler._capture_log_from_recorda  s   3EN54
 4
00 ~n5''//!2o;"&+u-- !%fk!2!2'44  FAs &cCT+BCC,&s^^ 9a99:: FK.. !%fk!2!2"(+"3"3"5"5  JC &ec5#t-DEE.&u-- ;c;;<<  	:jS99 	: 06zE+,= 	6(.E$%? 	:'FO,F,F|,T,T'*0/#l:K:Ka:O:Q:Q*R&''*0/&'? 	:*0/E&'= 	/!'E+ 	5#)#4E- > 	2#)>E-  	B/5/AE+,; 	/#);E-  	!3#7#"%fns&:";";  		
 		
 		
 		
 		
r&   N)rJ   rK   rL   r   r   r   rQ   r&   r$   r0   r0   J  sA         : : : D
 D
 D
 D
 D
r&   r0   )1r)   r   r   r   r   r@   sentry_sdk.clientr   sentry_sdk.loggerr   sentry_sdk.utilsr   r	   r
   r   r   r   sentry_sdk.integrationsr   typingr   collections.abcr   r   r   r   r   INFOrN   ERRORrO   NOTSETDEBUGWARNWARNINGFATALCRITICALrp   r   setr!   r%   r(   HandlerrS   r1   SentryHandlerr/   r0   rQ   r&   r$   <module>r      s    



 ' ' ' ' ' ' ' '           ( ( ( ( ( ( 0 0 0 0 0 0                0 / / / / /              ......!!!!!!m NHM7L&L)OYM7M7g	  bM2ORL!M1  3III  
  DB DB DB DB DB DB DB DBN4
 4
 4
 4
 4
7? 4
 4
 4
nW3 W3 W3 W3 W3< W3 W3 W3v 
 
 
 
 
 
 
 
D[
 [
 [
 [
 [
 [
 [
 [
 [
 [
r&   