
    \jC	                         d dl Z d dlZd dl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	ee   eee   ge
f   Z G d
 de      ZddZddedefdZy)    N)capture_internal_exceptionsevent_from_exception)Integration)TYPE_CHECKING)Callable)Any)Type)Optional)TracebackTypec                   8    e Zd ZdZdZddeddfdZed	d       Zy)
ExcepthookIntegration
excepthookF
always_runreturnNc                 P    t        |t              st        d|d      || _        y )NzInvalid value for always_run: z (must be type boolean))
isinstancebool
ValueErrorr   )selfr   s     L/root/env/lib/python3.12/site-packages/sentry_sdk/integrations/excepthook.py__init__zExcepthookIntegration.__init__   s*    *d+   %    c                  H    t        t        j                        t        _        y )N)_make_excepthooksysr    r   r   
setup_oncez ExcepthookIntegration.setup_once'   s    )#..9r   F)r   N)	__name__
__module____qualname__
identifierr   r   r   staticmethodr   r   r   r   r   r      s3    JJ%4 %D % : :r   r   r   c                 ,     dddt         dddd f fd}|S )Ntype_zType[BaseException]value	tracebackzOptional[TracebackType]r   c                 z   t        j                         j                  t              }|
 | ||      S t	        |j
                        r]t               5  t        | ||ft        j                         j                  ddd      \  }}t        j                  ||       d d d         | ||      S # 1 sw Y   xY w)Nr   F)typehandled)client_options	mechanism)hint)

sentry_sdk
get_clientget_integrationr   _should_sendr   r   r   optionscapture_event)r%   r&   r'   integrationeventr-   old_excepthooks         r   sentry_sdk_excepthookz/_make_excepthook.<locals>.sentry_sdk_excepthook-   s    
 !++-==>ST
 !%	::../,. ;2E9-#-#8#8#:#B#B'3Ft
 ((T:; eUI66; ;s   AB11B:)BaseException)r6   r7   s   ` r   r   r   ,   s4    7$77 -7 
	70 ! r   r   c                 ,    | ryt        t        d      ryy)NTps1F)hasattrr   )r   s    r   r1   r1   H   s    sE r   )r6   
Excepthookr   r<   r   )r   r.   sentry_sdk.utilsr   r   sentry_sdk.integrationsr   typingr   r   r   r	   r
   typesr   r8   r<   r   r   r   r1   r   r   r   <module>rA      st    
  0  #	m	mXm-DE	J:K :$!8	T 	d 	r   