
    gh_2                        S SK r S SKrS SKJr  S SKrS SKJr  S SKJrJ	r	J
r
  S SKJrJrJrJr  S SKJr  S SKJr  S SKJrJr  S S	KJrJrJr  S S
KJr  S SKJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)   S SK*r*S SK+J,r-  S SK+J.r.J/r/  S SK0J1r1J2r2J3r3  S SK5J6r6  \6(       aF  S SK7J8r8  S SK9J:r:  S SK+J;r;J<r<  S SK=J>r>  S SK?J@r@  S SK5JArA  S SK5JBrB  S SK5JCrC  S SK5JDrD  S SKJErE  S SKFJGrGJHrH  SrI " S S\5      rJS rKS  rLS! rMS"rNS# rOg! \4 a	    \" S5      ef = f)$    N)wraps)continue_trace)OP
SPANSTATUSSPANDATA)$_DEFAULT_FAILED_REQUEST_STATUS_CODES_check_minimum_versionIntegrationDidNotEnable)ignore_logger)track_session)_filter_headersrequest_body_within_bounds)BAGGAGE_HEADER_NAMESOURCE_FOR_STYLETransactionSource)should_propagate_trace)capture_internal_exceptionsensure_integration_enabledevent_from_exceptionlogger	parse_urlparse_versionreraisetransaction_from_functionHAS_REAL_CONTEXTVARSCONTEXTVARS_ERROR_MESSAGESENSITIVE_DATA_SUBSTITUTEAnnotatedValue)__version__)ClientSessionTraceConfig)ApplicationHTTPExceptionUrlDispatcherzAIOHTTP not installed)TYPE_CHECKING)Request)UrlMappingMatchInfo)TraceRequestStartParamsTraceRequestEndParams)Set)SimpleNamespace)Any)Optional)Tuple)Union)ExcInfo)EventEventProcessor)handler_namemethod_and_path_patternc                   F    \ rS rSrSrS\ 3r S	\S.S jjr\S 5       r	Sr
g)
AioHttpIntegrationG   aiohttpz
auto.http.)failed_request_status_codesc                `    U[         ;  a  [        SU< S[         < S35      eXl        X l        g )Nz%Invalid value for transaction_style: z (must be in ))TRANSACTION_STYLE_VALUES
ValueErrortransaction_style_failed_request_status_codes)selfr?   r:   s      b/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/sentry_sdk/integrations/aiohttp.py__init__AioHttpIntegration.__init__K   s4     $<<$&>@  "3,G)    c                    ^^^ [        [        5      n [        [        U 5        [        (       d  [        S[        -   5      e[        S5        [        R                  mU4S jnU[        l	        [        R                  m[        T5      U4S j5       nU[        l        [        R                  m[        [        T5      U4S j5       nU[        l        g )NzSThe aiohttp integration for Sentry requires Python 3.7+  or aiocontextvars package.zaiohttp.serverc           
        >#    [         R                  " 5       R                  [        5      nUc  T" X/UQ70 UD6I S h  vN $ [        R
                  " U5      n[         R                  " 5        n[        USS9   UR                  5         UR                  5         UR                  [        U5      5        [        UR                  5      n[        U[        R                   S["        R$                  [        R&                  S9n[         R(                  " USU0S9    T" X5      I S h  vN n	 W	RD                  nUR-                  U5        W	sS S S 5        sS S S 5        sS S S 5        $  GN& NB! [*         aE  n
UR-                  U
R.                  5        U
R.                  UR0                  ;   a
  [3        5         e S n
A
f[4        R6                  [8        4 a!    UR;                  [<        R>                  5        e [@         a    [C        [3        5       6    Nf = f! [F         a     Nf = f! , (       d  f       O= f S S S 5        O! , (       d  f       O= fS S S 5        g ! , (       d  f       g = f7f)Nrequest)session_modezgeneric AIOHTTP request)opnamesourceoriginaiohttp_request)custom_sampling_context)$
sentry_sdk
get_clientget_integrationr7   weakrefrefisolation_scoper   generate_propagation_contextclear_breadcrumbsadd_event_processor_make_request_processordictheadersr   r   HTTP_SERVERr   ROUTErM   start_transactionr$   set_http_statusstatus_coder@   _capture_exceptionasyncioCancelledErrorConnectionResetError
set_statusr   	CANCELLED	Exceptionr   statusAttributeError)rA   rH   argskwargsintegrationweak_requestscoper[   transactionresponseeresponse_status
old_handles               rB   sentry_app_handle8AioHttpIntegration.setup_once.<locals>.sentry_app_handlem   s    $//1AABTUK"'GGGGG";;w/L++-"5yA 668++---.El.ST"7??3G"0>> 7066188#K $55#1BG0L;-7-F'FH&	I
 /7ooO (77H'G # BA .-	 H6 (G, 	"'77F !"#.#K#K!L !3 4! ' 6 68LM "'22:3G3GH!( ; $%7%9:;  . ! !=  # BAA .--s   ;I%E$/I%.I9BH:HE)$E'
%E)*H6H	H:	II%'E))
H	3A F3	3AH		HH	H
H	HH	H
H-)H:1	I:
I	I	I%
I"I%c                 8  >#    T" X5      I S h  vN n[         R                  " 5       R                  [        5      nUc  U$ S n UR                  S:X  a  [        UR                  5      nOeUR                  S:X  aU  UR                  5       nUR                  S5      =(       d    UR                  S5      nSR                  UR                  U5      nUb4  [         R                  " 5       R                  U[        UR                     S9  U$  N! [         a     NGf = f7f)Nr4   r5   path	formatterz{} {})rL   )rP   rQ   rR   r7   r?   r   handlerget_infogetformatmethodrg   get_current_scopeset_transaction_namer   )rA   rH   rvrl   rK   
route_infopatternold_urldispatcher_resolves          rB   sentry_urldispatcher_resolveCAioHttpIntegration.setup_once.<locals>.sentry_urldispatcher_resolve   s      1??B$//1AABTUK"	D00NB4RZZ@D 226OO!#J(nnV4S
{8SG">>'..'BD ,,.CC+K,I,IJ D 
 I1 @  s@   DD3D%D
 )D*A%D
 :D

DDDDc                     > [        UR                  S5      =(       d    S5      n[        5       nUR                  U5        X!S'   T" U 0 UD6$ )Ntrace_configs )listr{   create_trace_configappend)rj   rk   client_trace_configstrace_configold_client_session_inits       rB   init+AioHttpIntegration.setup_once.<locals>.init   sL     $(

?(C(Ir#J .0L ''5&:?#*D;F;;rE   )r   AIOHTTP_VERSIONr	   r7   r   r   r   r   r#   _handler%   resolver   r!   rC   r   )versionrt   r   r   r   rs   r   s       @@@rB   
setup_onceAioHttpIntegration.setup_onceZ   s      017;## .0IJ 
 	&' ((
=	(~ 0$1$9$9!	(	)	 
*	8 !="/"8"8	#$68O	P	< 
Q	< "&rE   )r@   r?   N)r4   )__name__
__module____qualname____firstlineno__
identifierrM   r   rC   staticmethodr   __static_attributes__r   rE   rB   r7   r7   G   s@    J*&F )H %I	H @& @&rE   r7   c                      S n S n[        5       nUR                  R                  U 5        UR                  R                  U5        U$ )Nc           	        #    [         R                  " 5       R                  [        5      c  g UR                  R                  5       nS n[        5          [        [        UR                  5      SS9nS S S 5        [         R                  " [        R                  U< SU(       a  UR                  O[        < 3[        R                  S9nUR                  [         R"                  U5        Ubp  UR                  SUR                  5        UR                  [         R$                  UR&                  5        UR                  [         R(                  UR*                  5        [         R                  " 5       n[-        U[        UR                  5      5      (       a  [         R.                  " 5       R1                  US9 H  u  nn[2        R4                  " SR7                  XxUR                  S95        U[8        :X  a@  UR:                  R=                  [8        5      (       a  UR:                  U==   S	U-   -  ss'   M~  XR:                  U'   M     XQl        g ! , (       d  f       GN= f7f)
NF)sanitize )rJ   rK   rM   url)spanzE[Tracing] Adding `{key}` header {value} to outgoing request to {url}.)keyvaluer   ,) rP   rQ   rR   r7   r}   upperr   r   strr   
start_spanr   HTTP_CLIENTr   rM   set_datar   HTTP_METHOD
HTTP_QUERYqueryHTTP_FRAGMENTfragmentr   r~   iter_trace_propagation_headersr   debugr|   r   r[   r{   r   )	sessiontrace_config_ctxparamsr}   
parsed_urlr   clientr   r   s	            rB   on_request_start-create_trace_config.<locals>.on_request_start   s      "223EFN$$&
(*"3vzz?UCJ + $$~~z~~9RRT%,,	
 	h**F3!MM%0MM(--z/?/?@MM(00*2E2EF&&(!&#fjj/:: --/NN O  [bb&** c 
 --&..2D2D'3 3 NN3'3;6'*/NN3'  !%K +*s   AI I1GI 
II c                   #    UR                   c  g UR                   nUR                  [        UR                  R                  5      5        UR                  SUR                  R                  5        UR                  5         g 7f)Nreason)r   r_   intrp   rh   r   r   finish)r   r   r   r   s       rB   on_request_end+create_trace_config.<locals>.on_request_end  s]       ($$S!7!789h 6 67s   B B)r"   r   r   r   )r   r   r   s      rB   r   r      sE    -%^ =L!!(()9:&&~6rE   c                    ^  U 4S jnU$ )Nc                   > T" 5       nUc  U $ [        5          U R                  S0 5      nUR                  < SUR                  < UR                  < 3US'   UR
                  US'   UR                  US'   SUR                  0US'   [        [        UR                  5      5      US'   [        U5      US	'   S S S 5        U $ ! , (       d  f       U $ = f)
NrH   z://r   query_stringr}   REMOTE_ADDRenvr[   data)r   
setdefaultschemehostrw   r   r}   remoter   rZ   r[   get_aiohttp_request_data)eventhintrH   request_inform   s       rB   aiohttp_processor2_make_request_processor.<locals>.aiohttp_processor$  s    
 .?L(* ++Ir:L #L ,3+?+?L(%,^^L"#0'.."AL&5d7??6K&LL#
 $<G#DL # +& ' +*& s   BC  
Cr   )rm   r   s   ` rB   rY   rY   "  s    < rE   c                      [         R                  " 5       n [        U [        R                  " 5       R
                  SSS.S9u  p[        R                  " XS9  U $ )Nr9   F)typehandled)client_options	mechanism)r   )sysexc_infor   rP   rQ   optionscapture_event)r   r   r   s      rB   ra   ra   E  sK    ||~H&!,,.66$7KE
 U.OrE   z8[Can't show request body due to implementation details.]c                 "   U R                   nUbi  [        [        R                  " 5       [	        U5      5      (       d  [
        R                  " 5       $ U R                  =(       d    SnUR                  US5      $ U R                  (       a  [        $ g )Nzutf-8replace)_read_bytesr   rP   rQ   lenr   removed_because_over_size_limitcharsetdecodecan_read_bodyBODY_NOT_READ_MESSAGE)rH   
bytes_bodyencodings      rB   r   r   T  sq    $$J)**?*?*A3z?SS!AACC??-g  955$$ rE   )Pr   rS   	functoolsr   rP   sentry_sdk.apir   sentry_sdk.constsr   r   r   sentry_sdk.integrationsr   r	   r
   r   sentry_sdk.integrations.loggingr   sentry_sdk.sessionsr   $sentry_sdk.integrations._wsgi_commonr   r   sentry_sdk.tracingr   r   r   sentry_sdk.tracing_utilsr   sentry_sdk.utilsr   r   r   r   r   r   r   r   r   r   r   r   rb   r9   r    r   r!   r"   aiohttp.webr#   r$   r%   ImportErrortypingr&   aiohttp.web_requestr'   aiohttp.web_urldispatcherr(   r)   r*   collections.abcr+   typesr,   r-   r.   r/   r0   r1   sentry_sdk._typesr2   r3   r=   r7   r   rY   ra   r   r   r   rE   rB   <module>r      s    
    ) 6 6  : - 
 <   062EE !+=F#%(7 G T& T&nAH F	 S K	  0
.
//0s   0C; ;D
