
    fi                        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n# e$ r dZY nw xY w	 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+ n%# e$ r	 d dl,m+Z+ Y nw xY w# e$ r  ed          w xY wdZ- G d de          Z.d Z/d Z0d Z1d Z2d Z3d Z4d Z5dS )    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                   >    e Zd ZdZde ZdZddZed             ZdS )	QuartIntegrationquartz
auto.http. r   c                 \    |t           vrt          d|dt           d          || _        d S )Nz%Invalid value for transaction_style: z (must be in ))TRANSACTION_STYLE_VALUES
ValueErrortransaction_style)selfr(   s     m/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/sentry_sdk/integrations/quart.py__init__zQuartIntegration.__init__?   sJ    $<<<*$$$&>&>&>@   "3    c                  8   t          j        t                     t          j        t                     t	          j        t
                     t          j        t
                     t          j        t
                     t                       t                       d S 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99'(:;;;r,   N)r   )	__name__
__module____qualname__
identifieroriginr(   r+   staticmethodr5   r4   r,   r*   r!   r!   9   s[        J&*&&F3 3 3 3 
 
 \
 
 
r,   r!   c                  B    t           j        fd} | t           _        d S )Nc                     K   t          j                                        t                      |||           d {V S t	           fdt          j        d          } ||||           d {V S )Nc                       g| R i |S r.   r4   )akwold_appr)   s     r*   <lambda>zApatch_asgi_app.<locals>.sentry_patched_asgi_app.<locals>.<lambda>`   s!    WWT4A444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   s       ""223CDDL ugt<<<<<<<<<)44444(/
 
 


  Zw555555555r,   )r   __call__)rM   rA   s    @r*   r2   r2   V   s0    nG
6 
6 
6 
6 
6 -ENNNr,   c                  B    t           j        fd} | t           _        d S )Nc                  $     | i |fd}|S )Nc                      t          j                   rTt          j                   s@t	                     t          t                      fd                        } |          S             S )Nc                      t          j                    }|j        |j                                         t          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   sr     %/$@$B$BM$0<%1FFHHH#-#A#C#CL#+7$,DDFFF#8T4V444r,   )inspect
isfunctionasyncioiscoroutinefunctionr   r   r!   )r]   r^   old_decorators   ` r*   	decoratorz>patch_scaffold_route.<locals>._sentry_route.<locals>.decoratorq   s     !(++ 3G4O5 5 3 x+,<hGG
5 
5 
5 
5 HG !
5 %}\222 =***r,   r4   )rY   rZ   rd   rc   	old_routes      @r*   _sentry_routez+patch_scaffold_route.<locals>._sentry_routem   s9    !	42622	+ 	+ 	+ 	+ 	+2 r,   )r   route)rf   re   s    @r*   r3   r3   i   s0    I    > #HNNNr,   c                     	 |j         j        |j         j        d}|                     ||         t          |                    d S # t
          $ r Y d S 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      s    
#((1
 
 	"",-#$56 	# 	
 	
 	
 	
 	
    s   AA 
AAc                   K   t          j                                        t                    }|d S t	                      rt          j                    }t                      rt          j                    }t          t          j
                    |j        |           t          j                    }t          | ||          }|                    |           d S 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KKK :#799 <%9;; %$&&(EGX   *,,E1#7H+VVM	m,,,,,r,   c                     fd}|S )Nc                 j   | S t                      5  |                     di           }j        |d<   j        |d<   j        |d<   t          t          j                            |d<   t                      r!dj	        d         i|d<   t          |            d d d            n# 1 swxY w Y   | S )	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?6K6K&L&LL#&(( *'4g6J16M&NU#"5)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* s   BB((B,/B,r4   )rt   r   ru   r   s    `  r*   rr   rr      s#        0 Lr,   c                    K   t          j                                        t                    }|d S t	          |t          j                    j        ddd          \  }}t          j        ||           d S )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      s      '))99:JKKK&!,..6"u55  KE4 U......r,   c                     t           d S t           j        }|d S t                      5  |                     di           }t           j        j        |d<   d d d            d S # 1 swxY w Y   d S )Nuserid)
quart_authcurrent_userr
   r   _auth_id)r   r   	user_infos      r*   r   r      s    "D|	$	&	& ; ;$$VR00	$1:	$; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;s   +A  A$'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 4 4 4 4 4 / / / / / /         
 !           877777777   JJJ3                            3+++++++ 3 3 3222222223  1 1 1
,/
0
001 /     {   :- - -&## ## ##L   - - -,  :/ / /; ; ; ; ;s0   A A)(A)-B$ B B! B!$B5