o
    Zh                     @   s   d dl Z 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
rSd dlmZ 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dedef dZndd ZedddZedddZdddZdd Zdd ZdS )    N)Hub)event_from_exception)reraisewraps)TYPE_CHECKING)Any)Callable)TypeVar)Union)Optional)overloadF.)boundc                 C   s   | S N )xr   r   Y/var/www/html/lang_env/lib/python3.10/site-packages/sentry_sdk/integrations/serverless.pyr      s   r   Tc                 C      d S r   r   fflushr   r   r   serverless_function      r   c                 C   r   r   r   r   r   r   r   r   #   r   c                    s     fdd}| d u r|S || S )Nc                    s   t   fdd}|S )Nc               	      s   t t jR}| }|  W d    n1 sw   Y  z)z | i |W W r-t  W  d    S  ty@   t  Y nw W rGt  nrNt  w w W d    d S 1 sZw   Y  d S r   )r   currentZconfigure_scopeZclear_breadcrumbs_flush_client	Exception_capture_and_reraise)argskwargshubscoper   r   r   inner-   s*   


"z3serverless_function.<locals>.wrapper.<locals>.innerr   )r   r"   r   )r   r   wrapper+   s   z$serverless_function.<locals>.wrapperr   )r   r   r$   r   r#   r   r   )   s   c                  C   sN   t  } tj}|jd ur!t| |jjdddd\}}|j||d t|   d S )NZ
serverlessF)typeZhandled)Zclient_optionsZ	mechanism)hint)	sysexc_infor   r   clientr   optionsZcapture_eventr   )r(   r    eventr&   r   r   r   r   D   s   

r   c                   C   s
   t j S r   )r   r   r   r   r   r   r   r   S   s   
r   )T)NT)r'   Zsentry_sdk.hubr   Zsentry_sdk.utilsr   Zsentry_sdk._compatr   Zsentry_sdk._functoolsr   Zsentry_sdk._typesr   typingr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   <module>   s,    
