
    \jU                         d dl Z d dlmZ d dlmZ d dlZd dlmZmZ er d dlm	Z	m
Z
mZmZmZmZ  ede
de	f         Zndd
Zedddded	dfd       Zedddded	dfd       Z	 dddded	dfdZddZy)    Nwraps)TYPE_CHECKING)event_from_exceptionreraise)AnyCallableOptionalTypeVarUnionoverloadF.)boundreturnc                     | S N )xs    L/root/env/lib/python3.12/site-packages/sentry_sdk/integrations/serverless.pyr   r      s        fflushc                      y r   r   r   r   s     r   serverless_functionr          r   zCallable[[F], F]c                      y r   r   r   s     r   r   r      r   r   zOptional[F]zUnion[F, Callable[[F], F]]c                 (    dfd}| |S  ||       S )Nc                 4     t               d fd       }|S )Nc                  b   t        j                         5 }|j                          	  | i |rt        j                          cd d d        S # t        $ r t                Y nw xY w	 r1t        j                          n# rt        j                          w w xY wd d d        y # 1 sw Y   y xY wr   )
sentry_sdkisolation_scopeclear_breadcrumbsr   	Exception_capture_and_reraise)argskwargsscoper   r   s      r   innerz3serverless_function.<locals>.wrapper.<locals>.inner!   s    ++- 	+'')+d-f- "((*	+ 	+
 ! +(*+*"((* "((* 	+ 	+ 	+s?   B%AB%A%"B $A%%B )B% BB%%B.)r&   r   r'   r   r   r   r   )r   r)   r   s   ` r   wrapperz$serverless_function.<locals>.wrapper    s     	q
	+ 

	+ r   )r   r   r   r   r   )r   r   r*   s    ` r   r   r      s      	yqzr   c                      t        j                         } t        j                         }|j	                         r5t        | |j                  ddd      \  }}t        j                  ||       t        |   y )N
serverlessF)typehandled)client_options	mechanism)hint)	sysexc_infor!   
get_client	is_activer   optionscapture_eventr   )r3   clienteventr1   s       r   r%   r%   6   sa    ||~H""$F*!>>+>
t
 	  T2Xr   )r   r   r   r   )T)NT)r   N)r2   	functoolsr   typingr   r!   sentry_sdk.utilsr   r   r   r	   r
   r   r   r   r   boolr   r%   r   r   r   <module>r>      s    
     :HH8CH-.A 
	3 	t 	s 	 
	 
	4 	t 	?Q 	 
	
 ,0$(!2r   