
    fi#                     |   d dl Z d dlZ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mZmZ d dlmZmZmZmZ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 d dlmZ d dlm Z  d dl!m"Z"m#Z#  ej$                    dej%        dd         z  ej&        dZ' G d de          Z(d Z)ddZ*d Z+d Z,dS )    N)HTTPConnection)OPSPANDATA)Integration)add_global_event_processor)EnvironHeadersshould_propagate_traceadd_http_request_source)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                   (    e Zd ZdZed             ZdS )StdlibIntegrationstdlibc                  ^    t                       t                       t          d             } d S )Nc                     t          j                                        t                    9|                     di           }t          |t                    rd|vr
t          |d<   | S )Ncontextsruntime)
sentry_sdk
get_clientget_integrationr   
setdefault
isinstancedict_RUNTIME_CONTEXT)eventhintr#   s      n/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/sentry_sdk/integrations/stdlib.pyadd_python_runtime_contextz@StdlibIntegration.setup_once.<locals>.add_python_runtime_context6   sb     $&&667HIIU ++J;;h-- ;)82K2K*:HY'L    )_install_httplib_install_subprocessr   )r/   s    r.   
setup_oncezStdlibIntegration.setup_once0   s@     		#	 	 
$	#	 	 	r0   N)__name__
__module____qualname__
identifierstaticmethodr3    r0   r.   r   r   -   s2        J  \  r0   r   c                  ~    t           j        t           j        fd} fd}| t           _        |t           _        d S )Nc                 B   | j         }| j        }| j        }t          j                    }|                    t                    t          ||          r | ||g|R i |S |}	|	|	                    d          s|dk    rdpdd|||k    rd|z  pd|}	d }
t                      5  t          |	d	          }
d d d            n# 1 swxY w Y   t          j        t          j        |d
|
r|
j        nt          d          }|                    t"          j        |           |
e|                    d|
j                   |                    t"          j        |
j                   |                    t"          j        |
j                    | ||g|R i |}t/          ||	          rmt          j                                        |          D ]E\  }}t5          j        d                    |||	                     |                     ||           F|| _        |S )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_CLIENTrD   r   set_datar   HTTP_METHOD
HTTP_QUERYqueryHTTP_FRAGMENTfragmentr	   get_current_scopeiter_trace_propagation_headersr   debugformat	putheader_sentrysdk_span)selfmethodrD   argskwargsrJ   rK   rL   clientrI   
parsed_urlrF   rvrG   rH   real_putrequests                  r.   
putrequestz$_install_httplib.<locals>.putrequestF   s   yy(&((!!"344<DA
 A
< #?4FtFFFvFFF8#6#67N#O#O#/9699$5;;	H 
(** 	= 	="8e<<<J	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= $~vvRz~~9RRT-	
 
 
 	h*F333!MM%000MM(-z/?@@@MM(0*2EFFF_T63@@@@@@!&(33 	+ -//NN O  + +  `ggux h    
 sE****#	s   )CCCc                    t          | dd           }| | g|R i |S 	  | g|R i |}|                    t          |j                             |                    d|j                   |                                 t                      5  t          |           d d d            n# 1 swxY w Y   nN# |                                 t                      5  t          |           d d d            w # 1 swxY w Y   w xY w|S )Nr[   reason)	getattrset_http_statusintstatusrP   rf   finishr   r
   )r\   r^   r_   rF   rb   real_getresponses        r.   getresponsez%_install_httplib.<locals>.getresponse   s   t.55<##D:4:::6:::		.!!$888888B  RY000MM(BI...KKMMM,.. . .'---. . . . . . . . . . . . . . . KKMMM,.. . .'---. . . . . . . . . . . . . . . . 	sB   AB: B..B25B2:#DC9-D9C==D C=D)r   rd   rm   )rd   rm   rl   rc   s     @@r.   r1   r1   A   s`    $/O%17 7 7 7 7r    ( !+N!,Nr0   c                     ||v r||         }| ||          }||||<   nD|t          |           k     r| |         }| ||          }||| |<   n|o
 |d          }||||<   |S )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)r^   r_   r   positionsetdefault_callbackrb   s         r.   _init_argumentrr      s     v~~D\*$$R((B>F4L	CII		(^*$$R((B>DN >%8%8%>%>>F4LIr0   c                     t           j        j        t          t                    fd            } | t           j        _        t           j        j        t          t                    fd            }|t           j        _        t           j        j        t          t                    fd            }|t           j        _        d S )Nc           	      l   t          |          }t          ||dd          pg }t          ||dd          }d }t          |t           t          f          rat	          |          dk     rNt                      5  d                    t          t          |                    }d d d            n# 1 swxY w Y   |t          |          }d }t          j        t          j        |d          5 }t          j                                        |	          D ]I\  }}	|t          ||d
dd           }|	|d|                                                    dd          z   <   J|r|                    d|            | g|R i |}
|                    d| j                   |
cd d d            S # 1 swxY w Y   d S )Nr^   r   cwd	   d   r@   !auto.subprocess.stdlib.subprocessrA   rE   env
   c                 <    t          | | nt          j                  S N)r*   osenviron)xs    r.   <lambda>zH_install_subprocess.<locals>.sentry_patched_popen_init.<locals>.<lambda>   s    $AMqqrz"J"J r0   SUBPROCESS_-_zsubprocess.cwdsubprocess.pid)listrr   r)   tuplero   r   joinmapstrr   r%   rN   r   
SUBPROCESSrV   rW   upperreplacerP   set_tagpid)r\   akwr^   ru   descriptionry   rF   kvrb   old_popen_inits              r.   sentry_patched_popen_initz6_install_subprocess.<locals>.sentry_patched_popen_init   sb    GGaVQ//52QE1-- dT5M** 	7s4yy3,.. 7 7!hhs3~~667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 #D//K"}6
 
 
 	 "466UU V   E E1 ;(JJ C DEMAGGII$5$5c3$?$??@@ 5.444/q///B//BLL)484441	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s%   6)B++B/2B/*B2F))F-0F-c                     t          j        t          j        d          5 }|                    d| j                    | g|R i |cd d d            S # 1 swxY w Y   d S Nrx   )rB   rC   r   )r%   rN   r   SUBPROCESS_WAITr   r   )r\   r   r   rF   old_popen_waits       r.   sentry_patched_popen_waitz6_install_subprocess.<locals>.sentry_patched_popen_wait   s     "!6
 
 
 	2 LL)48444!>$1111b11	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2   'AAAc                     t          j        t          j        d          5 }|                    d| j                    | g|R i |cd d d            S # 1 swxY w Y   d S r   )r%   rN   r   SUBPROCESS_COMMUNICATEr   r   )r\   r   r   rF   old_popen_communicates       r.    sentry_patched_popen_communicatez=_install_subprocess.<locals>.sentry_patched_popen_communicate  s     "(6
 
 
 	9 LL)48444((8888R88	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9r   )
subprocessPopen__init__r   r   waitcommunicate)r   r   r   r   r   r   s      @@@r.   r2   r2      s    %.N 1>BB2 2 2 2 CB2h !:J%*N 1>BB2 2 2 2 CB2 6J&,8 13HII9 9 9 9 JI9 $DJ   r0   c                  8    t          t          j        d          S )Nr   )prefix)r   r}   r~   r9   r0   r.   "get_subprocess_traceparent_headersr     s    "*];;;;r0   r|   )-r}   r   sysplatformhttp.clientr   r%   sentry_sdk.constsr   r   sentry_sdk.integrationsr   sentry_sdk.scoper   sentry_sdk.tracing_utilsr   r	   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   r1   rr   r2   r   r9   r0   r.   <module>r      sV   				     



  & & & & & &     * * * * * * * * / / / / / / 7 7 7 7 7 7         
                  !           .-------- +H*,,S-bqb12[         (S- S- S-l   >UD UD UDp< < < < <r0   