
    lh                        d dl Z 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 d dlmZ d dlmZmZmZ d d	lmZ erd d
lmZ d dlmZ d dlmZmZ 	 d dlZ	 d dlmZmZm Z m!Z!m"Z"m#Z# d dl$m%Z%m&Z&m'Z'm(Z(m)Z) 	 d dl*m+Z+ dZ- G d de      Z.d Z/d Z0d Z1d Z2d Z3d Z4d Z5y# e$ r dZY Rw xY w# e$ r	 d dl,m+Z+ Y =w xY w# e$ r	  ed      w xY w)    N)wraps)DidNotEnableIntegration)_filter_headers)SentryAsgiMiddleware)should_send_default_pii)SOURCE_FOR_STYLE)capture_internal_exceptionsensure_integration_enabledevent_from_exception)TYPE_CHECKING)Any)Union)EventEventProcessor)has_request_contexthas_websocket_contextRequestQuartrequest	websocket)got_background_exceptiongot_request_exceptiongot_websocket_exceptionrequest_startedwebsocket_started)ScaffoldzQuart is not installed)endpointurlc                   6    e Zd ZdZde ZdZddZed        Zy)QuartIntegrationquartz
auto.http. c                 N    |t         vrt        d|dt         d      || _        y )Nz%Invalid value for transaction_style: z (must be in ))TRANSACTION_STYLE_VALUES
ValueErrortransaction_style)selfr(   s     o/var/www/pru.catia.catastroantioquia-mas.com/tasa/lib/python3.12/site-packages/sentry_sdk/integrations/quart.py__init__zQuartIntegration.__init__?   s.    $<<$&>@  "3    c                  &   t        j                  t               t        j                  t               t	        j                  t
               t        j                  t
               t        j                  t
               t                t                y N)
r   connect_request_websocket_startedr   r   _capture_exceptionr   r   patch_asgi_apppatch_scaffold_route r,   r*   
setup_oncezQuartIntegration.setup_onceH   s[     	 :;!!"<= (();<%%&89''(:;r,   N)r   )	__name__
__module____qualname__
identifieroriginr(   r+   staticmethodr5   r4   r,   r*   r!   r!   9   s2    J*&F3 
 
r,   r!   c                  F    t         j                  fd} | t         _        y )Nc                     K   t        j                         j                  t                |||       d {   S t	         fdt        j
                  d      } ||||       d {   S 7 67 w)Nc                       g| i |S r.   r4   )akwold_appr)   s     r*   <lambda>zApatch_asgi_app.<locals>.sentry_patched_asgi_app.<locals>.<lambda>`   s    WT4A44 r,      )span_originasgi_version)
sentry_sdk
get_clientget_integrationr!   r   r:   )r)   scopereceivesend
middlewarerA   s   `    r*   sentry_patched_asgi_appz/patch_asgi_app.<locals>.sentry_patched_asgi_appZ   sn       "223CDL ugt<<<)4(//


  w555 = 6s!   6A5A11A5,A3-A53A5)r   __call__)rM   rA   s    @r*   r2   r2   V   s    nnG
6 -ENr,   c                  F    t         j                  fd} | t         _        y )Nc                  $     | i |fd}|S )Nc                      t        j                         rCt        j                         s.t	               t        t                fd              } |      S         S )Nc                      t        j                         }|j                  |j                  j                          t        j                         }|j
                  |j
                  j                           | i |S r.   )rF   get_current_scopetransactionupdate_active_threadget_isolation_scopeprofileupdate_active_thread_id)argskwargscurrent_scopesentry_scopeold_funcs       r*   _sentry_funczTpatch_scaffold_route.<locals>._sentry_route.<locals>.decorator.<locals>._sentry_funcx   sm     %/$@$@$BM$00<%11FFH#-#A#A#CL#++7$,,DDF#T4V44r,   )inspect
isfunctionasyncioiscoroutinefunctionr   r   r!   )r]   r^   old_decorators   ` r*   	decoratorz>patch_scaffold_route.<locals>._sentry_route.<locals>.decoratorq   sd     !!(+G4O4O5 x+,<hG
5 H !
5 %\22 **r,   r4   )rY   rZ   rd   rc   	old_routes      @r*   _sentry_routez+patch_scaffold_route.<locals>._sentry_routem   s    !4262	+2 r,   )r   route)rf   re   s    @r*   r3   r3   i   s    I> #HNr,   c                     	 |j                   j                  |j                   j                  d}| j                  ||   t        |          y # t
        $ r Y y w xY w)N)r   r   )source)url_ruleruler   set_transaction_namer	   	Exception)rI   r(   r   name_for_styles       r*    _set_transaction_name_and_sourcero      sg    
##((((11
 	"",-#$56 	# 	
  s   A
A 	AAc                   K   t        j                         j                  t              }|y t	               rt        j                         }t               rt        j                         }t        t        j                         |j                         t        j                         }t        | ||      }|j                  |       y wr.   )rF   rG   rH   r!   r   r   _get_current_objectr   r   ro   rS   r(   rV   _make_request_event_processoradd_event_processor)apprZ   integrationrequest_websocketrI   evt_processors         r*   r0   r0      s     '')99:JKK#779%99; %$$&(E(EGX **,E1#7H+VM	m,s   CCc                     fd}|S )Nc                 b   | S t               5  | j                  di       }j                  |d<   j                  |d<   j                  |d<   t        t        j                              |d<   t               rdj                  d   i|d<   t        |        d d d        | S # 1 sw Y   | S xY w)	Nr   r   query_stringmethodheadersREMOTE_ADDRr   env)r
   
setdefaultr   rz   r{   r   dictr|   r   access_route_add_user_to_event)eventhintrequest_infor   s      r*   innerz,_make_request_event_processor.<locals>.inner   s    
 ?L(* 	* !++Ir:L")++L+2+?+?L(%,^^L"&5d7??6K&LL#&('4g6J6J16M&NU#"5)	* 	* s   B
B$$B.r4   )rt   r   ru   r   s    `  r*   rr   rr      s    0 Lr,   c                    K   t        j                         j                  t              }|y t	        |t        j                         j
                  ddd      \  }}t        j                  ||       y w)Nr"   F)typehandled)client_options	mechanism)r   )rF   rG   rH   r!   r   optionscapture_event)sender	exceptionrZ   ru   r   r   s         r*   r1   r1      sf     '')99:JKK&!,,.66"u5KE4 U.s   A3A5c                     t         y t         j                  }|y t               5  | j                  di       }t         j                  j                  |d<   d d d        y # 1 sw Y   y xY w)Nuserid)
quart_authcurrent_userr
   r   _auth_id)r   r   	user_infos      r*   r   r      s`    ""D|	$	& ;$$VR0	$11::	$; ; ;s   0AA')6ra   r_   	functoolsr   rF   sentry_sdk.integrationsr   r   $sentry_sdk.integrations._wsgi_commonr   sentry_sdk.integrations.asgir   sentry_sdk.scoper   sentry_sdk.tracingr	   sentry_sdk.utilsr
   r   r   typingr   r   r   sentry_sdk._typesr   r   r   ImportErrorr"   r   r   r   r   r   r   quart.signalsr   r   r   r   r   quart.scaffoldr   flask.sansio.scaffoldr&   r!   r2   r3   ro   r0   rr   r1   r   r4   r,   r*   <module>r      s        = @ = 4 / 
 !73  3+ / { :-&##L -,:/;O  J2  323  1
/
001s0   B' C >B4 'B10B14CCC