
    \j                         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 	 d dlmZ 	 d dl
mZ d	dZd
dZy# e	$ r dZY w xY w# e	ef$ r dZY !w xY w)    N)OP)TYPE_CHECKING)Any)iscoroutinefunction)wrap_async_viewc                      ddl m}  ddlm} ddlm | j                  |j                  dfd}t        j                        	 	 	 	 	 	 	 	 dfd       }||_        || _        y )	Nr   )BaseHandler)SimpleTemplateResponseDjangoIntegrationc                     t        j                  t        j                  dj                        5   |       cd d d        S # 1 sw Y   y xY w)Nzserialize responseopnameorigin)
sentry_sdk
start_spanr   VIEW_RESPONSE_RENDERr   )selfr   
old_renders    N/root/env/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.pysentry_patched_renderz*patch_views.<locals>.sentry_patched_render    sE    ""&&%$++
 	$
 d#	$ 	$ 	$s   AAc                      | g|i |}t        j                         j                        }|;t        d uxr t        d uxr t        |      }|rt	        |      }|S t        |      }|S |}|S )N)r   
get_clientget_integrationr   r   _wrap_sync_view)	r   argskwargscallbackintegrationis_async_viewsentry_wrapped_callbackr   old_make_view_atomics	          r   sentry_patched_make_view_atomicz4patch_views.<locals>.sentry_patched_make_view_atomic(   s     (>t>v>
 !++-==>OP"#4/ 2#4/2'1 
 *9(*C' '& +:(*C'
 '& '/#&&    )r   r
   returnr   )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   s       @@@r   patch_viewsr.      sy    5?@&77'..J$ __)*''!'-2'	' +'2 %:!#BK r%   c                 T     ddl m t        j                         d fd       }|S )Nr   r   c                 2   t        j                         }|j                  |j                  j                          t        j                         }|j
                  |j
                  j                          t        j                         j                        }|r|j                  s | g|i |S t        j                  t        j                  | j                  j                  j                        5   | g|i |cd d d        S # 1 sw Y   y xY w)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   )requestr   r   current_scopesentry_scoper    r   r   s         r   r"   z0_wrap_sync_view.<locals>.sentry_wrapped_callbackI   s    "446$$0%%::<!557 +  88: ++-==>OP+">">G5d5f55""~~''11$++
 	6
 G5d5f5	6 	6 	6s   7DD)r;   r   r   r   r   r   r&   r   )r)   r   r,   r-   )r   r"   r   s   ` @r   r   r   F   s)    @__X6 6, #"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   <module>rE      se         +
C
+C\#q   	[! Os   4 A >>	AA