Ë
    S>{iÑ#  ã                   ó$  — 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
 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 d dlmZ d dlmZ ej.                  Zej2                  Zej6                  dej8                  dej.                  dej:                  dej<                  dej2                  dej>                  dej@                  diZ! e"g d¢«      Z#d„ Z$ G d„ de«      Z% G d„ dejL                  e'«      Z( G d„ de(«      Z)e)Z* G d„ de(«      Z+y)é    )Úabsolute_importN)Úfnmatch)ÚHub)Ú	to_stringÚevent_from_exceptionÚcurrent_stacktraceÚcapture_internal_exceptions)ÚIntegration)Ú	iteritemsÚutc_from_timestamp)ÚTYPE_CHECKING)Ú	LogRecord)ÚAny)ÚDict)ÚOptionalÚnotsetÚdebugÚinfoÚwarningÚerrorÚfatal)zsentry_sdk.errorszurllib3.connectionpoolzurllib3.connectionc                 ó.   — t         j                  | «       y)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    ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sentry_sdk/integrations/logging.pyÚignore_loggerr   0   s   € ô ×Ñ˜Õó    c                   ó2   — e Zd ZdZeefd„Zd„ Zed„ «       Z	y)ÚLoggingIntegrationÚloggingc                 ón   — d | _         d | _        |�t        |¬«      | _        |�t        |¬«      | _         y y )N)Úlevel)Ú_handlerÚ_breadcrumb_handlerÚBreadcrumbHandlerÚEventHandler)Úselfr#   Úevent_levels      r   Ú__init__zLoggingIntegration.__init__A   s;   € àˆŒØ#'ˆÔ àÐÜ'8¸uÔ'EˆDÔ$àÐ"Ü(¨{Ô;ˆD�Mð #r   c                 ó0  — | j                   �>|j                  | j                   j                  k\  r| j                   j                  |«       | j                  �@|j                  | j                  j                  k\  r| j                  j                  |«       y y y ©N)r$   Úlevelnor#   Úhandler%   ©r(   Úrecords     r   Ú_handle_recordz!LoggingIntegration._handle_recordL   sx   € à�=‰=Ð$¨¯©¸4¿=¹=×;NÑ;NÒ)NØ�M‰M× Ñ  Ô(ð ×$Ñ$Ð0Ø—‘ $×":Ñ":×"@Ñ"@Ò@à×$Ñ$×+Ñ+¨FÕ3ð Að 1r   c                  ón   ‡— t         j                  j                  Šˆfd„} | t         j                  _        y )Nc                 óJ  •— 	  ‰| |«      |j                   t        vr8t        j                  j	                  t
        «      }|�|j                  |«       S S S # |j                   t        vr8t        j                  j	                  t
        «      }|�|j                  |«       w w w xY wr,   )r   r   r   ÚcurrentÚget_integrationr    r1   )r(   r0   ÚintegrationÚold_callhandlerss      €r   Úsentry_patched_callhandlerszBLoggingIntegration.setup_once.<locals>.sentry_patched_callhandlers\   s•   ø€ ð
;Ù'¨¨fÓ5ð —;‘;Ô&6Ñ6Ü"%§+¡+×"=Ñ"=Ô>PÓ"Q�KØ"Ð.Ø#×2Ñ2°6Õ:ð /ð 7ø�6—;‘;Ô&6Ñ6Ü"%§+¡+×"=Ñ"=Ô>PÓ"Q�KØ"Ð.Ø#×2Ñ2°6Õ:ð /ð 7ús   ƒA ÁAB")r!   ÚLoggerÚcallHandlers)r8   r7   s    @r   Ú
setup_oncezLoggingIntegration.setup_onceW   s)   ø€ ô #Ÿ>™>×6Ñ6Ðô	;ð 'BŒ�‰Õ#r   N)
Ú__name__Ú
__module__Ú__qualname__Ú
identifierÚDEFAULT_LEVELÚDEFAULT_EVENT_LEVELr*   r1   Ústaticmethodr;   © r   r   r    r    >   s-   „ Ø€Jà*Ð8Kó 	<ò	4ð ñBó ñBr   r    c                   ó.   — e Zd Z ed«      Zd„ Zd„ Zd„ Zy)Ú_BaseHandler)ÚargsÚcreatedÚexc_infoÚexc_textÚfilenameÚfuncNameÚ	levelnamer-   ÚlinennoÚlinenoÚmessageÚmoduleÚmsecsÚmsgr   ÚpathnameÚprocessÚprocessNameÚrelativeCreatedÚstackÚtagsÚthreadÚ
threadNameÚ
stack_infoc                 óJ   — t         D ]  }t        |j                  |«      sŒ y y)z'Prevents ignored loggers from recordingFT)r   r   r   )r(   r0   Úloggers      r   Ú_can_recordz_BaseHandler._can_record‹   s)   € ô 'ò 	ˆFÜ�v—{‘{ FÕ+Ùð	ð r   c                 ó–   — t         j                  |j                  |j                  r|j                  j	                  «       «      S d«      S )NÚ )ÚLOGGING_TO_EVENT_LEVELÚgetr-   rL   Úlowerr/   s     r   Ú_logging_to_event_levelz$_BaseHandler._logging_to_event_level“   sB   € ä%×)Ñ)Ø�N‰N¸×8HÒ8H˜F×,Ñ,×2Ñ2Ó4ó
ð 	
ØNPó
ð 	
r   c                 ó¼   — t        t        |«      «      D ��ci c]7  \  }}|| j                  vr$t        |t        «      r|j                  d«      s||“Œ9 c}}S c c}}w )NÚ_)r   ÚvarsÚCOMMON_RECORD_ATTRSÚ
isinstanceÚstrÚ
startswith)r(   r0   ÚkÚvs       r   Ú_extra_from_recordz_BaseHandler._extra_from_record™   sX   € ô "¤$ v£,Ó/÷
á��1Ø˜×0Ñ0Ñ0Ü ¤3Ô'¨q¯|©|¸CÔ/@ð ˆq‰Dó
ð 	
ùó 
s   ˜<AN)r<   r=   r>   Ú	frozensetrh   r^   rd   rn   rC   r   r   rE   rE   m   s!   „ Ù#ð	
óÐò:ò
ó
r   rE   c                   ó   — e Zd ZdZd„ Zd„ Zy)r'   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  | j                  |«       | j                  |«      cd d d «       S # 1 sw Y   y xY wr,   ©r	   ÚformatÚ_emitr/   s     r   ÚemitzEventHandler.emitª   ó5   € ä(Ó*ñ 	&Ø�K‰K˜ÔØ—:‘:˜fÓ%÷	&÷ 	&ò 	&úó	   ‹"7·A c                 ó  — | j                  |«      sy t        j                  }|j                  €y |j                  j                  }|j
                  r.|j
                  d   �t        |j
                  |dddœ¬«      \  }}nT|j
                  rD|j
                  d   €5i }i }t        «       5  dt        |d   |d   ¬	«      d
ddœgi|d<   d d d «       ni }i }||d<   | j                  |«      |d<   |j                  |d<   |j                  dk(  xr |j                  dk(  }|r|j                  d   }|ddœ|d<   n%t        |j                  «      |j                  dœ|d<   | j                  |«      |d<   |j                  ||¬«       y # 1 sw Y   Œ¸xY w)Nr   r!   T)ÚtypeÚhandled)Úclient_optionsÚ	mechanismÚvaluesÚinclude_local_variablesÚmax_value_length)r~   r   F)Ú
stacktraceÚcrashedr4   ÚthreadsÚ
log_recordr#   r]   zpy.warningsz%srC   )rO   ÚparamsÚlogentryÚextra©Úhint)r^   r   r4   ÚclientÚoptionsrH   r   r	   r   rd   r   rR   rF   r   rn   Úcapture_event)r(   r0   Úhubr{   Úeventrˆ   Ú%record_caputured_from_warnings_modulerR   s           r   rt   zEventHandler._emit°   s»  € à×Ñ Ô'Øä�k‰kˆØ�:‰:ÐØàŸ™×+Ñ+ˆð �?Š?˜vŸ™¨qÑ1Ð=Ü.Ø—‘Ø-Ø#,¸Ñ>ô‰KˆE‘4ð
 �_Š_ §¡°Ñ!3Ð!;ØˆEØˆDÜ,Ó.ñ àä*<Ø8FØ$=ñ9"ð 2@Ð@RÑ1Sô	+ð (-Ø'+ñ	ðð$��iÑ ÷ð ð  ˆEØˆDà#ˆˆ\Ñà×5Ñ5°fÓ=ˆˆg‰Ø Ÿ+™+ˆˆh‰ð �K‰K˜=Ñ(Ò?¨V¯Z©Z¸4Ñ-?ð 	.ñ 1ð —+‘+˜a‘.ˆCð Øñ!ˆE�*Òô % V§Z¡ZÓ0Ø Ÿ+™+ñ!ˆE�*Ñð
 ×0Ñ0°Ó8ˆˆg‰à×Ñ˜% dÐÕ+÷]ð ús   Â)FÆFN)r<   r=   r>   Ú__doc__ru   rt   rC   r   r   r'   r'   £   s   „ ñò&óH,r   r'   c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)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  | j                  |«       | j                  |«      cd d d «       S # 1 sw Y   y xY wr,   rr   r/   s     r   ru   zBreadcrumbHandler.emit  rv   rw   c                 óŒ   — | j                  |«      sy t        j                  j                  | j	                  |«      d|i¬«       y )Nrƒ   r‡   )r^   r   r4   Úadd_breadcrumbÚ_breadcrumb_from_recordr/   s     r   rt   zBreadcrumbHandler._emit  s?   € à×Ñ Ô'Øä�‰×"Ñ"Ø×(Ñ(¨Ó0¸ÀfÐ7Mð 	#õ 	
r   c                 óž   — d| j                  |«      |j                  |j                  t        |j                  «      | j                  |«      dœS )NÚlog)ry   r#   ÚcategoryrO   Ú	timestampÚdata)rd   r   rO   r   rG   rn   r/   s     r   r”   z)BreadcrumbHandler._breadcrumb_from_record  sG   € ð Ø×1Ñ1°&Ó9ØŸ™Ø—~‘~Ü+¨F¯N©NÓ;Ø×+Ñ+¨FÓ3ñ
ð 	
r   N)r<   r=   r>   r�   ru   rt   r”   rC   r   r   r&   r&   ÿ   s   „ ñò&ò
ó	
r   r&   ),Ú
__future__r   r!   r   Úsentry_sdk.hubr   Úsentry_sdk.utilsr   r   r   r	   Úsentry_sdk.integrationsr
   Úsentry_sdk._compatr   r   Úsentry_sdk._typesr   r   Útypingr   r   r   ÚINFOr@   ÚERRORrA   ÚNOTSETÚDEBUGÚWARNÚWARNINGÚFATALÚCRITICALra   Úsetr   r   r    ÚHandlerÚobjectrE   r'   ÚSentryHandlerr&   rC   r   r   ú<module>r­      só   ðÝ &ã Ý å ÷ó õ 0ß <å +áÝ!ÝÝÝà—‘€Ø—m‘mÐ à‡N�N�HØ‡M�M�7Ø‡L�L�&Ø‡L�L�)Ø‡O�O�YØ‡M�M�7Ø‡M�M�7Ø×Ñ�gð	Ð ñ" ÚIóÐ ò
ô,B˜ô ,Bô^3
�7—?‘? Fô 3
ôlU,�<ô U,ðr €ô
˜õ 
r   