
    xh                     |    S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
JrJrJr  SSKJr  S	 r " S
 S\5      rg)    )	force_str)MAX_CULPRIT_LENGTH)generate_culprit)get_function_name_for_frame)get_crash_frame_from_event_data)get_pathtrimtruncatechars   )	BaseEventc                     [        U S S9nUbE  [        XR                  S5      5      nUR                  S5      =(       d    UR                  S5      U4$ g )Nc                 *    U R                  S5      S;  $ )Nfunction)Nz
<redacted>	<unknown>)get)xs     /code/sentry/eventtypes/error.py<lambda>$get_crash_location.<locals>.<lambda>   s    quuZ00 1    )frame_filterplatformfilenameabs_path)r   r   r   )dataframefuncs      r   get_crash_locationr      sV    +1E
 *5((:2FGyy$=		*(=tCC r   c                   *    \ rS rSrSrS rS rS rSrg)
ErrorEvent   errorc           	         [        UR                  S5      [        5      (       a  [        US   5      S:X  a  0 $ SUS   0US'   [	        USSS5      nU(       d  0 $ [        U5      nS[        [	        USSS9S5      0n[	        US	S
5      (       d  [        [	        USSS9S5      US'   Ub  Uu  pVU(       a  XTS'   U(       a  XdS'   U$ )N	exceptionr   valuesvalue )defaulti   	mechanism	synthetictypeError   r   r   )
isinstancer   listlenr   r   r	   )selfr   r$   locrvfnr   s          r   get_metadataErrorEvent.get_metadata   s     dhh{+T224$%*	!)4+< =DT;"=	I &tHYDdKL 	;<<hy&'JCPBvJ ?HB!#:!%:	r   c                 J   UR                  S5      nUc  UR                  S5      =(       d    S$ UR                  S5      (       d  U$  SR                  U[        US   R                  5       S   5      5      $ ! [         a!    SR                  U[        US   5      5      s $ f = f)Nr,   r   r   r'   z{}: {}r   )r   formatr
   
splitlinesAttributeErrorstr)r2   metadatatys      r   	get_titleErrorEvent.get_title9   s    \\&!:<<
+:{:||G$$I	???2}Xg5F5Q5Q5STU5V'WXX 	? ??2s8G+<'=>>	?s   .A7 7(B"!B"c                     [        UR                  S5      =(       d,    UR                  S5      =(       d    [        U5      =(       d    S5      n[        U[        5      $ )Nculprittransactionr(   )r   r   r   r
   r   )r2   r   
loc_strings      r   get_locationErrorEvent.get_locationF   sP    HHY xx&% 	

 Z);<<r    N)	__name__
__module____qualname____firstlineno__keyr6   r?   rE   __static_attributes__rG   r   r   r    r       s    
C>?=r   r    N)django.utils.encodingr   sentry.constantsr   sentry.culpritr   sentry.stacktraces.functionsr   sentry.stacktraces.processingr   sentry.utils.safer   r	   r
   baser   r   r    rG   r   r   <module>rU      s/    + / + D I ; ; D6= 6=r   