o
    Zh]                  	   @   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   ZVIEW_RESPONSE_RENDER)selfhub)
old_render [/var/www/html/lang_env/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   Zget_integrationZmiddleware_spansr   r   _wrap_sync_view)r   argskwargscallbackr   ZintegrationZ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)
Zdjango.core.handlers.baser	   Zdjango.template.responser
   Zsentry_sdk.integrations.djangor   Z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   )Zconfigure_scopeZprofileZupdate_active_thread_idr   r   ZVIEW_RENDERZresolver_matchZ	view_name)requestr   r   Zsentry_scoper   r   r   r   r   H   s   



"z0_wrap_sync_view.<locals>.sentry_wrapped_callback)r   r   )r   r   r   r   r"   r   r   F   s   r   )Zsentry_sdk.constsr   Zsentry_sdk.hubr   Zsentry_sdk._typesr   Z
sentry_sdkr   typingr   Zasyncior   ImportErrorZ#sentry_sdk.integrations.django.asgir   SyntaxErrorr    r   r   r   r   r   <module>   s$    0