
    UvhN                        d dl Z d dlZd dlmZ d dl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Zd	Zd
Zdj!                  eee      Z e j$                  ee j&                  e j(                  z        Z G d de      Zd Zy)    N)Integrationadd_global_event_processor)capture_internal_exceptions)TYPE_CHECKING)Any)Eventz[a-zA-Z0-9/._:\\-]+z[a-zA-Z0-9._:<>,-]+z[A-Fa-f0-9]+z
^(?P<index>\d+)\.\s
(?P<package>{MODULE_RE})\(
  (?P<retval>{TYPE_RE}\ )?
  ((?P<function>{TYPE_RE})
    (?P<args>\(.*\))?
  )?
  ((?P<constoffset>\ const)?\+0x(?P<offset>{HEXVAL_RE}))?
\)\s
\[0x(?P<retaddr>{HEXVAL_RE})\]$
)	MODULE_RE	HEXVAL_RETYPE_REc                        e Zd ZdZed        Zy)GnuBacktraceIntegrationgnu_backtracec                      t         d        } y )Nc                 Z    t               5  t        | |      cd d d        S # 1 sw Y   y xY w)N)r   _process_gnu_backtrace)eventhints     `/opt/face_recognition/venv/lib/python3.12/site-packages/sentry_sdk/integrations/gnu_backtrace.pyprocess_gnu_backtracezAGnuBacktraceIntegration.setup_once.<locals>.process_gnu_backtrace+   s)     -. ;-eT:; ; ;s   !*r   )r   s    r   
setup_oncez"GnuBacktraceIntegration.setup_once(   s     
$	; 
$	;    N)__name__
__module____qualname__
identifierstaticmethodr    r   r   r   r   %   s     J; ;r   r   c           	      <   t        j                         j                  t              | S |j	                  dd       }|| S | j	                  dd       }|| S |j	                  dd       }|| S |D ]*  }|j	                  di       j	                  dg       }|s)|j	                  dd       }|s>g }g }|j                         D ]  }	t        j                  |	      }
|
rV|j                  t        |
j                  d            |
j                  d      xs d |
j                  d	      xs d d
df       p|j                  |	        |s|j                  d        |D ]  \  }}|j                  |        |j                  d       dj                  |      |d<   - | S )Nexc_info	exceptionvalues
stacktraceframesvalueindexpackagefunctionnative)r'   r(   platformc                     | d    S )Nr   r   )xs    r   <lambda>z(_process_gnu_backtrace.<locals>.<lambda>d   s    !A$ r   )keyz:<stacktrace parsed and removed by GnuBacktraceIntegration>
)
sentry_sdk
get_clientget_integrationr   get
splitlinesFRAME_REmatchappendintgroupsortjoin)r   r   r    r!   r"   r$   msgadditional_framesnew_msgliner6   _frames                r   r   r   2   s   ../FGOxx
D)H		+t,I]]8T*F~ #4	|R044XrBmmGT*NN$ 	%DNN4(E!((EKK01',{{9'='E(-J(?(G4(0	 t$	%" """7- %5e$% NNWX!%7!3IgG#4J Lr   )rer0   sentry_sdk.integrationsr   sentry_sdk.scoper   sentry_sdk.utilsr   typingr   r   sentry_sdk._typesr	   r
   r   r   formatr5   compile	MULTILINEVERBOSEr   r   r   r   r   <module>rL      s    	  / 7 8  ' #	
 	
 F9g   	 2::hrzz 9:
;k 
;9r   