o
    iU                     @   s   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r9d dlm	Z	m
Z
mZmZmZmZ ede
de	f dZndddZedddded
dfddZedddded
dfddZ	dddded
dfddZdddZdS )    Nwraps)TYPE_CHECKING)event_from_exceptionreraise)AnyCallableOptionalTypeVarUnionoverloadF.)boundxreturnc                 C   s   | S N )r   r   r   _/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/sentry_sdk/integrations/serverless.pyr      s   r   Tfflushc                 C      d S r   r   r   r   r   r   r   serverless_function      r   zCallable[[F], F]c                 C   r   r   r   r   r   r   r   r      r   zOptional[F]zUnion[F, Callable[[F], F]]c                    s"   d fdd}| d u r|S || S )Nr   r   r   c                    s   t  d fdd}|S )Nargsr   kwargsr   c               	      s   t  A}|  z+z | i |W W rt   W  d    S  ty,   t  Y nw W r4t   nr<t   w w W d    d S 1 sHw   Y  d S r   )
sentry_sdkisolation_scopeclear_breadcrumbsr   	Exception_capture_and_reraise)r   r   scoper   r   r   inner!   s&   


"z3serverless_function.<locals>.wrapper.<locals>.inner)r   r   r   r   r   r   r   )r   r"   r   )r   r   wrapper    s   z$serverless_function.<locals>.wrapper)r   r   r   r   r   )r   r   r$   r   r#   r   r      s   c                  C   sL   t  } t }| r t| |jdddd\}}tj||d t|   d S )N
serverlessF)typehandled)client_options	mechanism)hint)	sysexc_infor   
get_client	is_activer   optionscapture_eventr   )r,   clienteventr*   r   r   r   r    6   s   
r    )r   r   r   r   )T)NT)r   N)r+   	functoolsr   typingr   r   sentry_sdk.utilsr   r   r   r   r	   r
   r   r   r   boolr   r    r   r   r   r   <module>   s,     

