
    gh"                        S SK r S SKrS SKrS SKrS SKJr  S SKrS SK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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  S SKJr  S SKJr  S SK J!r!J"r"  \RF                  " 5       S\RH                  SS -  \RJ                  S.r& " S S\5      r'S r(SS jr)S r*S r+g)    N)HTTPConnection)OPSPANDATA)Integration)add_global_event_processor)EnvironHeadersshould_propagate_trace)SENSITIVE_DATA_SUBSTITUTEcapture_internal_exceptionsensure_integration_enabledis_sentry_urllogger	safe_repr	parse_url)TYPE_CHECKING)Any)Callable)Dict)Optional)List)EventHintz%s.%s.%s   )nameversionbuildc                   (    \ rS rSrSr\S 5       rSrg)StdlibIntegration)   stdlibc                  D    [        5         [        5         [        S 5       n g )Nc                     [         R                  " 5       R                  [        5      b6  U R	                  S0 5      n[        U[        5      (       a  SU;  a	  [        US'   U $ )Ncontextsruntime)
sentry_sdk
get_clientget_integrationr   
setdefault
isinstancedict_RUNTIME_CONTEXT)eventhintr#   s      a/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/sentry_sdk/integrations/stdlib.pyadd_python_runtime_context@StdlibIntegration.setup_once.<locals>.add_python_runtime_context2   sT     $$&667HIU ++J;h--)82K*:HY'L    )_install_httplib_install_subprocessr   )r/   s    r.   
setup_onceStdlibIntegration.setup_once,   s"     		#	 
$	r1    N)__name__
__module____qualname____firstlineno__
identifierstaticmethodr4   __static_attributes__r6   r1   r.   r   r   )   s    J r1   r   c                     ^^ [         R                  m[         R                  mU4S jn U4S jnU [         l        U[         l        g )Nc           	        > U R                   nU R                  nU R                  n[        R                  " 5       nUR                  [        5      b  [        X5      (       a  T" XU/UQ70 UD6$ Un	U	b  U	R                  S5      (       d;  US:H  =(       a    S=(       d    S< SU< Xg:g  =(       a    SU-  =(       d    S< U< 3n	S n
[        5          [        U	SS	9n
S S S 5        [        R                  " [        R                  U< S
U
(       a  U
R                  O[        < 3S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        T" XU/UQ70 UD6n[/        X5      (       aa  [        R0                  " 5       R3                  US9 H;  u  nn[4        R6                  " SR9                  XU	S95        U R;                  X5        M=     Xl        U$ ! , (       d  f       GNj= f)N)zhttp://zhttps://i  httpshttpz://z:%s F)sanitize zauto.http.stdlib.httplibopr   originurlspanzJ[Tracing] Adding `{key}` header {value} to outgoing request to {real_url}.)keyvaluereal_url)hostportdefault_portr%   r&   r'   r   r   
startswithr   r   
start_spanr   HTTP_CLIENTrH   r
   set_datar   HTTP_METHOD
HTTP_QUERYqueryHTTP_FRAGMENTfragmentr	   get_current_scopeiter_trace_propagation_headersr   debugformat	putheader_sentrysdk_span)selfmethodrH   argskwargsrN   rO   rP   clientrM   
parsed_urlrJ   rvrK   rL   real_putrequests                  r.   
putrequest$_install_httplib.<locals>.putrequestB   s   yyyy((&&(!!"34<A
 A
 #4FtFvFF8#6#67N#O#O#/969$5;;	H 
(*"8e<J + $$~~z~~9RRT-	
 	h**F3!MM%0MM(--z/?/?@MM(00*2E2EFT3@@@!&33 --/NN O  `ggx h 
 s*  $	C +*s   H>>
Ic                 $  > [        U SS 5      nUc  T" U /UQ70 UD6$  T" U /UQ70 UD6nUR                  [        UR                  5      5        UR	                  SUR
                  5        UR                  5         U$ ! UR                  5         f = f)Nr_   reason)getattrset_http_statusintstatusrT   rk   finish)r`   rb   rc   rJ   rf   real_getresponses        r.   getresponse%_install_httplib.<locals>.getresponse{   s    t.5<#D:4:6::	!$888B  RYY0MM(BII.KKM	 KKMs   AA= =B)r   rh   rr   )rh   rr   rq   rg   s     @@r.   r2   r2   =   s7    $//O%117r" !+N!,Nr1   c                     X!;   a  X   nUb  U" U5      nUb  XQU'   U$ U[        U 5      :  a  X   nUb  U" U5      nUb  XPU'   U$ U=(       a    U" S5      nUb  XQU'   U$ )a'  
given (*args, **kwargs) of a function call, retrieve (and optionally set a
default for) an argument by either name or position.

This is useful for wrapping functions with complex type signatures and
extracting a few arguments without needing to redefine that function's
entire type signature.
N)len)rb   rc   r   positionsetdefault_callbackrf   s         r.   _init_argumentrx      s     ~\*$R(B>4L I 
CI	^*$R(B>N I	 !>%8%>>4LIr1   c                    ^^^ [         R                  R                  m[        [        T5      U4S j5       n U [         R                  l        [         R                  R
                  m[        [        T5      U4S j5       nU[         R                  l        [         R                  R                  m[        [        T5      U4S j5       nU[         R                  l        g )Nc           	      (  > [        U5      n[        XSS5      =(       d    / n[        XSS5      nS n[        U[         [        45      (       aA  [	        U5      S:  a2  [        5          SR                  [        [        U5      5      nS S S 5        Uc  [        U5      nS n[        R                  " [        R                  USS9 n[        R                  " 5       R                  US	9 H=  u  pUc  [        UUS
SS 5      nXSUR!                  5       R#                  SS5      -   '   M?     U(       a  UR%                  SU5        T" U /UQ70 UD6n
UR'                  SU R(                  5        U
sS S S 5        $ ! , (       d  f       N= f! , (       d  f       g = f)Nrb   r   cwd	   d   rD   !auto.subprocess.stdlib.subprocessrE   rI   env
   c                 F    [        U b  U 5      $ [        R                  5      $ N)r*   osenviron)xs    r.   <lambda>H_install_subprocess.<locals>.sentry_patched_popen_init.<locals>.<lambda>   s    $AMq"Jrzz"Jr1   SUBPROCESS_-_zsubprocess.cwdsubprocess.pid)listrx   r)   tupleru   r   joinmapstrr   r%   rR   r   
SUBPROCESSrZ   r[   upperreplacerT   set_tagpid)r`   akwrb   r{   descriptionr   rJ   kvrf   old_popen_inits              r.   sentry_patched_popen_init6_install_subprocess.<locals>.sentry_patched_popen_init   so    GaVQ/52QE1- dT5M**s4y3,.!hhs3~6 / #D/K""}}6
 "446UU V  ;(JC DEMAGGI$5$5c3$??@ .4/q/B/BLL)48841
 
 /.
 
s   & E2B&F2
F 
Fc                    > [         R                  " [        R                  SS9 nUR	                  SU R
                  5        T" U /UQ70 UD6sS S S 5        $ ! , (       d  f       g = fNr~   )rF   rG   r   )r%   rR   r   SUBPROCESS_WAITr   r   )r`   r   r   rJ   old_popen_waits       r.   sentry_patched_popen_wait6_install_subprocess.<locals>.sentry_patched_popen_wait   sY     ""!!6
 LL)4884!$11b1
 
 
   (A
A%c                    > [         R                  " [        R                  SS9 nUR	                  SU R
                  5        T" U /UQ70 UD6sS S S 5        $ ! , (       d  f       g = fr   )r%   rR   r   SUBPROCESS_COMMUNICATEr   r   )r`   r   r   rJ   old_popen_communicates       r.    sentry_patched_popen_communicate=_install_subprocess.<locals>.sentry_patched_popen_communicate   sY     ""((6
 LL)4884(88R8
 
 
r   )
subprocessPopen__init__r   r   waitcommunicate)r   r   r   r   r   r   s      @@@r.   r3   r3      s    %%..N 1>B2 C2h !:J%%**N 1>B2 C2 6J&,,88 13HI9 J9 $DJ r1   c                  2    [        [        R                  SS9$ )Nr   )prefix)r   r   r   r6   r1   r.   "get_subprocess_traceparent_headersr     s    "**];;r1   r   ),r   r   sysplatformhttp.clientr   r%   sentry_sdk.constsr   r   sentry_sdk.integrationsr   sentry_sdk.scoper   sentry_sdk.tracing_utilsr   r	   sentry_sdk.utilsr
   r   r   r   r   r   r   typingr   r   r   r   r   r   sentry_sdk._typesr   r   python_implementationversion_infor   r+   r   r2   rx   r3   r   r6   r1   r.   <module>r      s    	  
  &  * / 7 K   !- **,S--bq12[[  (P-f>UDp<r1   