o
    h]                  	   @   s   d dl mZ d dlm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y3   dZY nw zd dlmZ W n eefyI   dZY nw d	d
 Zdd ZdS )    )OP)Hub)TYPE_CHECKING)
_functools)Any)iscoroutinefunctionN)wrap_async_viewc                     sd   ddl m}  ddlm} ddlm  | j|jfdd}t	 fdd}||_|| _d S )	Nr   )BaseHandler)SimpleTemplateResponse)DjangoIntegrationc                    sB   t j}|jtjdd  | W  d    S 1 sw   Y  d S )Nzserialize responseopdescription)r   current
start_spanr   VIEW_RESPONSE_RENDER)selfhub)
old_render g/var/www/html/aiguide_backend/venv/lib/python3.10/site-packages/sentry_sdk/integrations/django/views.pysentry_patched_render    s   $z*patch_views.<locals>.sentry_patched_renderc                    st   | g|R i |}t j}| }|d ur6|jr6td uo%td uo%t|}|r/t||}|S t||}|S |}|S )N)r   r   get_integrationmiddleware_spansr   r   _wrap_sync_view)r   argskwargscallbackr   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)
django.core.handlers.baser	   django.template.responser
   sentry_sdk.integrations.djangor   make_view_atomicrenderr   wraps)r	   r
   r   r"   r   )r   r!   r   r   patch_views   s   
r)   c                    s   t   fdd}|S )Nc              	      s     ?}|jd ur|j  jtj| jjd  | g|R i |W  d    W  d    S 1 s6w   Y  W d    d S 1 sFw   Y  d S )Nr   )configure_scopeprofileupdate_active_thread_idr   r   VIEW_RENDERresolver_match	view_name)requestr   r   sentry_scoper   r   r   r   r    H   s   



"z0_wrap_sync_view.<locals>.sentry_wrapped_callback)r   r(   )r   r   r    r   r2   r   r   F   s   r   )sentry_sdk.constsr   sentry_sdk.hubr   sentry_sdk._typesr   
sentry_sdkr   typingr   asyncior   ImportError#sentry_sdk.integrations.django.asgir   SyntaxErrorr)   r   r   r   r   r   <module>   s$    0