o
    h
                     @   s   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
jeedZe ee je jB ZG dd deZdd ZdS )    N)Integrationadd_global_event_processor)capture_internal_exceptions)TYPE_CHECKING)Any)Eventz[^@]+?z\s+@\s+0x[0-9a-fA-F]+z[
^(?P<index>\d+)\.\s+(?P<function>{FUNCTION_RE}){HEX_ADDRESS}(?:\s+in\s+(?P<package>.+))?$
)FUNCTION_REHEX_ADDRESSc                   @   s   e Zd ZdZedd ZdS )GnuBacktraceIntegrationgnu_backtracec                  C   s   t dd } d S )Nc                 S   s4   t   t| |W  d    S 1 sw   Y  d S )N)r   _process_gnu_backtrace)eventhint r   g/var/www/html/pro-man-master/venv/lib/python3.10/site-packages/sentry_sdk/integrations/gnu_backtrace.pyprocess_gnu_backtrace#   s   $zAGnuBacktraceIntegration.setup_once.<locals>.process_gnu_backtracer   )r   r   r   r   
setup_once    s   z"GnuBacktraceIntegration.setup_onceN)__name__
__module____qualname__
identifierstaticmethodr   r   r   r   r   r      s    r   c              	   C   s@  t  td u r| S |dd }|d u r| S | dd }|d u r#| S |dd }|d u r/| S |D ]l}|di dg }|s@q1|dd }|sIq1g }g }| D ])}	t|	}
|
ru|t	|

d|

dphd |

d	pnd d
df qQ||	 qQ|r|jdd d |D ]	\}}|| q|d d||d< q1| S )Nexc_info	exceptionvalues
stacktraceframesvalueindexpackagefunctionnative)r    r!   platformc                 S   s
   | d  S )Nr   r   )xr   r   r   <lambda>\   s   
 z(_process_gnu_backtrace.<locals>.<lambda>)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liner.   _framer   r   r   r   *   sP   

r   )rer(   sentry_sdk.integrationsr   sentry_sdk.scoper   sentry_sdk.utilsr   typingr   r   sentry_sdk._typesr   r	   r
   formatr-   compile	MULTILINEVERBOSEr   r   r   r   r   r   <module>   s&    