o
    S۷i7                     @   s:  d dl Z d dlmZ d dlZd dlmZmZ d dlmZ d dl	m
Z
 d dlmZmZmZmZ zd dlZd dlmZ d dlmZmZ d d	lmZ W n eyS   ed
w 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 ededef dZG dd deZ								dddZ G dd deZ!dS )    Nwraps)IntegrationDidNotEnable)_make_request_event_processor)TransactionSource)capture_internal_exceptionsevent_from_exceptionparse_versionreraise)__version__)ChaliceChaliceViewError)EventSourceHandlerzChalice is not installed)TYPE_CHECKING)Any)Dict)TypeVar)CallableF.)boundc                   @   s   e Zd ZdddZdS )	r   eventr   contextreturnc              
   C   s   t  }t  b}t  | }|t||| W d    n1 s$w   Y  zt| ||W W  d    S  t	ya   t
 }t||jdddd\}}t j||d |  t|  Y nw W d    d S 1 smw   Y  d S )NchaliceFtypehandledclient_options	mechanismhint)
sentry_sdk
get_clientisolation_scoper   get_remaining_time_in_millisadd_event_processorr   ChaliceEventSourceHandler__call__	Exceptionsysexc_infor	   optionscapture_eventflushr   )selfr   r   clientscopeconfigured_timer,   r"    r4   U/home/ubuntu/vllm_env/lib/python3.10/site-packages/sentry_sdk/integrations/chalice.pyr)   #   s0   


	"zEventSourceHandler.__call__N)r   r   r   r   r   r   )__name__
__module____qualname__r)   r4   r4   r4   r5   r   "   s    r   appr   view_functionfunction_argsr   c                    s   t d fdd}|S )Nr;   r   r   c                     s  t  }t  o}t $  j }|j jjtj	d |
t j  j| W d    n1 s3w   Y  zdi | W W  d    S  tyv } z#t|trU t }t||jdddd\}}t j||d |   d }~ww 1 szw   Y  d S )N)sourcer   Fr   r   r!   r4   )r#   r$   r%   r   lambda_contextr&   set_transaction_namefunction_namer   	COMPONENTr'   r   current_requestto_dictr*   
isinstancer   r+   r,   r	   r-   r.   r/   )r;   r1   r2   r3   excr,   r   r"   r9   r:   r4   r5   wrapped_view_function=   sD   



z:_get_view_function_response.<locals>.wrapped_view_function)r;   r   r   r   r   r9   r:   r;   rF   r4   rE   r5   _get_view_function_response:   s    rH   c                   @   s   e Zd ZdZedddZdS )ChaliceIntegrationr   r   Nc                     s   t t} | d u rtdt| dk rtj n	ddlm} |j 							
		d fdd}| dk r7|t_n||_tt	j
_d S )NzUnparsable Chalice version: {})      r   )RestAPIEventHandlerr9   r   r:   r   r;   Dict[str, Any]r   c                    s   t | ||} | ||S )N)rH   rG   old_get_view_function_responser4   r5   sentry_event_responset   s   z<ChaliceIntegration.setup_once.<locals>.sentry_event_response)r9   r   r:   r   r;   rM   r   r   )r
   CHALICE_VERSIONr   formatr   rH   chalice.apprL   r   r   r9   )versionrL   rP   r4   rN   r5   
setup_onced   s*   zChaliceIntegration.setup_once)r   N)r6   r7   r8   
identifierstaticmethodrU   r4   r4   r4   r5   rI   a   s    rI   )r9   r   r:   r   r;   r   r   r   )"r+   	functoolsr   r#   sentry_sdk.integrationsr   r   "sentry_sdk.integrations.aws_lambdar   sentry_sdk.tracingr   sentry_sdk.utilsr   r	   r
   r   r   r   rQ   r   r   rS   r   r(   ImportErrortypingr   r   r   r   r   r   rH   rI   r4   r4   r4   r5   <module>   sB    
'