o
    S۷i                  	   @   s   d dl Z d dlZd dlmZ d dlmZ erd dlmZ zd dlmZ W n e	y/   dZY nw zd dl
mZ W n e	efyE   dZY nw ddd	ZdddZdS )    N)OP)TYPE_CHECKING)Any)iscoroutinefunction)wrap_async_viewreturnc                     sz   ddl m}  ddlm} ddlm  | j|jd fd	d
}t									d fdd}||_|| _d S )Nr   )BaseHandler)SimpleTemplateResponseDjangoIntegrationselfr	   r   r   c                    s@   t jtjd jd | W  d    S 1 sw   Y  d S )Nzserialize responseopnameorigin)
sentry_sdk
start_spanr   VIEW_RESPONSE_RENDERr   )r   )r   
old_render Z/home/ubuntu/vllm_env/lib/python3.10/site-packages/sentry_sdk/integrations/django/views.pysentry_patched_render    s   $z*patch_views.<locals>.sentry_patched_renderargskwargsc                    sh   | g|R i |}t   }|d ur0td uo!td uo!t|}|r*t|}|S t|}|S |}|S )N)r   
get_clientget_integrationr   r   _wrap_sync_view)r   r   r   callbackintegrationis_async_viewsentry_wrapped_callback)r   old_make_view_atomicr   r   sentry_patched_make_view_atomic(   s   z4patch_views.<locals>.sentry_patched_make_view_atomic)r   r	   r   r   )r   r   r   r   r   r   r   r   )
django.core.handlers.baser   django.template.responser	   sentry_sdk.integrations.djangor   make_view_atomicrender	functoolswraps)r   r	   r   r"   r   )r   r!   r   r   patch_views   s$   
r*   r   r   c                    s*   ddl m  td
 fdd	}|S )Nr   r
   requestr   r   r   r   c                    s   t  }|jd ur|j  t  }|jd ur|j  t   }|r(|j	s3| g|R i |S t j
tj| jj jd | g|R i |W  d    S 1 sUw   Y  d S )Nr   )r   get_current_scopetransactionupdate_active_threadget_isolation_scopeprofileupdate_active_thread_idr   r   middleware_spansr   r   VIEW_RENDERresolver_match	view_namer   )r+   r   r   current_scopesentry_scoper   r   r   r   r   r    I   s    




$z0_wrap_sync_view.<locals>.sentry_wrapped_callback)r+   r   r   r   r   r   r   r   )r%   r   r(   r)   )r   r    r   r8   r   r   F   s   r   )r   N)r   r   r   r   )r(   r   sentry_sdk.constsr   typingr   r   asyncior   ImportError#sentry_sdk.integrations.django.asgir   SyntaxErrorr*   r   r   r   r   r   <module>   s$    
.