
    gh                        S SK r S SKJrJr  S SKJrJr  S SKJr  S SK	J
r
Jr  S SKJrJrJrJrJr  S SKJr  \(       a  S SKJr  S S	KJr   S S
KJrJrJrJr  S/r " S S\5      rS rS r S r!g! \ a	    \" S5      ef = f)    N)OPSPANDATA)IntegrationDidNotEnable)BAGGAGE_HEADER_NAME)Baggageshould_propagate_trace)SENSITIVE_DATA_SUBSTITUTEcapture_internal_exceptionsensure_integration_enabledlogger	parse_url)TYPE_CHECKING)MutableMapping)Any)AsyncClientClientRequestResponsezhttpx is not installedHttpxIntegrationc                   2    \ rS rSrSrS\ 3r\S 5       rSrg)r      httpxz
auto.http.c                  ,    [        5         [        5         g)z
httpx has its own transport layer and can be customized when needed,
so patch Client.send and AsyncClient.send to support both synchronous and async interfaces.
N)_install_httpx_client_install_httpx_async_client     `/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/sentry_sdk/integrations/httpx.py
setup_onceHttpxIntegration.setup_once!   s     	#%r   r   N)	__name__
__module____qualname____firstlineno__
identifieroriginstaticmethodr    __static_attributes__r   r   r   r   r      s%    J*&F& &r   c                  n   ^ [         R                  m[        [        T5      U4S j5       n U [         l        g )Nc           
        > S n[        5          [        [        UR                  5      SS9nS S S 5        [        R
                  " [        R                  UR                  < SU(       a  UR                  O[        < 3[        R                  S9 nUR                  [        R                  UR                  5        Ubp  UR                  SUR                  5        UR                  [        R                  UR                   5        UR                  [        R"                  UR$                  5        ['        [        R(                  " 5       [        UR                  5      5      (       a  [        R*                  " 5       R-                  5        Hd  u  nn[.        R0                  " SR3                  XVUR                  S95        U[4        :X  a  [7        UR8                  U5        MV  XaR8                  U'   Mf     T" X40 UD6nUR;                  UR<                  5        UR                  SUR>                  5        UsS S S 5        $ ! , (       d  f       GN= f! , (       d  f       g = f)	NFsanitize opnamer'   urlE[Tracing] Adding `{key}` header {value} to outgoing request to {url}.keyvaluer2   reason) r   r   strr2   
sentry_sdk
start_spanr   HTTP_CLIENTmethodr
   r   r'   set_datar   HTTP_METHOD
HTTP_QUERYqueryHTTP_FRAGMENTfragmentr	   
get_clientget_current_scopeiter_trace_propagation_headersr   debugformatr   _add_sentry_baggage_to_headersheadersset_http_statusstatus_codereason_phrase	selfrequestkwargs
parsed_urlspanr5   r6   rv	real_sends	           r   send#_install_httpx_client.<locals>.send0   s    
(*"3w{{#3eDJ + ""~~ ",
2KK
 $**
 MM(..?%eZ^^4h11:3C3CDh44j6I6IJ%j&;&;&=s7;;?OPP  113RRTLL_ff #gkk g  116wN/4, U 43F3B  0MM(B$4$45I
 
 +*
 
s   H9F!I9
I
I)r   rU   r   r   rU   rT   s    @r   r   r   ,   s0    I 0)<* =*X FKr   c                  H   ^ [         R                  mU4S jn U [         l        g )Nc           
        >#    [         R                  " 5       R                  [        5      c  T" X40 UD6I S h  vN $ S n[	        5          [        [        UR                  5      SS9nS S S 5        [         R                  " [        R                  UR                  < SU(       a  UR                  O[        < 3[        R                  S9 nUR                  [        R                   UR                  5        Ubp  UR                  SUR                  5        UR                  [        R"                  UR$                  5        UR                  [        R&                  UR(                  5        [+        [         R                  " 5       [        UR                  5      5      (       a  [         R,                  " 5       R/                  5        H  u  nn[0        R2                  " SR5                  XVUR                  S95        U[6        :X  a@  UR8                  R;                  [6        5      (       a  UR8                  U==   SU-   -  ss'   M~  XaR8                  U'   M     T" X40 UD6I S h  vN nUR=                  UR>                  5        UR                  S	UR@                  5        UsS S S 5        $  GNl! , (       d  f       GNG= f N[! , (       d  f       g = f7f)
NFr,   r.   r/   r2   r3   r4   ,r7   )!r9   rC   get_integrationr   r   r   r8   r2   r:   r   r;   r<   r
   r'   r=   r   r>   r?   r@   rA   rB   r	   rD   rE   r   rF   rG   r   rI   getrJ   rK   rL   rM   s	           r   rU   )_install_httpx_async_client.<locals>.sendd   s"      "223CDL"4;F;;;
(*"3w{{#3eDJ + ""~~ ",
2KK
 $**
 MM(..?%eZ^^4h11:3C3CDh44j6I6IJ%j&;&;&=s7;;?OPP  113RRTLL_ff #gkk g 
 11goo6I6I+7 7  ,e;,/4, U !9&99B  0MM(B$4$45M
 
 < +*H :C
 
sS   6KJ%K
J((A"K
FJ<J:<J<K(
J72K:J<<
K
K)r   rU   rW   s    @r   r   r   `   s      I/b Kr   c                     U R                  [        S5      n[        R                  " U5      n[	        U5      S:  a  SOSnX4-   U-   U [        '   g)zAdd the Sentry baggage to the headers.

This function directly mutates the provided headers. The provided sentry_baggage
is appended to the existing baggage. If the baggage already contains Sentry items,
they are stripped out first.
 r   rZ   N)r\   r   r   strip_sentry_baggagelen)rI   sentry_baggageexisting_baggagestripped_existing_baggage	separators        r   rH   rH      sT     {{#6; ' < <=M N459rI 	"->  r   )"r9   sentry_sdk.constsr   r   sentry_sdk.integrationsr   r   sentry_sdk.tracingr   sentry_sdk.tracing_utilsr   r	   sentry_sdk.utilsr
   r   r   r   r   typingr   collections.abcr   r   r   r   r   r   r   ImportError__all__r   r   r   rH   r   r   r   <module>ro      s|     * = 2 D  !.1<< 
&{ &1h5pC  1
/
001s   A/ /A>