
    \j                     d   d dl Z d dl mZ d dlmZmZ d dlmZ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 d dlmZ d d	lmZmZ 	 d d
lmZmZ d dlmZmZmZ d dlm Z m!Z! d dl"m#Z#m$Z$  G d de      Z&ddZ'de(de)ddddfdZ*edd       Z+	 	 	 	 	 	 ddZ,	 	 	 	 	 	 ddZ-y# e%$ r	  ed      w xY w)    N)
start_span)OPSPANDATA)IntegrationDidNotEnable)BAGGAGE_HEADER_NAME)should_propagate_traceadd_http_request_sourceadd_sentry_baggage_to_headers)SENSITIVE_DATA_SUBSTITUTEcapture_internal_exceptionslogger	parse_url)contextmanager)Any	Generator)ClientBuilderSyncClientBuilder)RequestOneOffRequestBuilderSyncOneOffRequestBuilder)NextSyncNext)ResponseSyncResponsez9pyreqwest not installed or incompatible version installedc                   ,    e Zd ZdZde Zedd       Zy)PyreqwestIntegration	pyreqwestz
auto.http.Nc                      t                y N)_patch_pyreqwest     K/root/env/lib/python3.12/site-packages/sentry_sdk/integrations/pyreqwest.py
setup_oncezPyreqwestIntegration.setup_once&   s    r#   returnN)__name__
__module____qualname__
identifieroriginstaticmethodr%   r"   r#   r$   r   r   "   s%    J*&F r#   r   r'   c                      t        t        dt               t        t        dt               t        t
        dt               t        t        dt               y )Nbuildsend)_patch_builder_methodr   sentry_async_middlewarer   sentry_sync_middlewarer   r   r"   r#   r$   r!   r!   +   s;    -2IJ+W6LM .8OP2F<RSr#   clsmethod_name
middlewarer   c                 b    t        | |      sy t        | |      dfd}t        | ||       y )Nc                     t        | dd      sBt        j                         j                  t              }|| j                         	 d| _         | g|i |S # t        t        f$ r Y w xY w)N_sentry_instrumentedFT)	getattr
sentry_sdk
get_clientget_integrationr   with_middlewarer9   	TypeErrorAttributeError)selfargskwargsintegrationr6   original_methods       r$   sentry_patched_methodz4_patch_builder_method.<locals>.sentry_patched_method;   s{    t3U;$//1AABVWK&$$Z004D- t5d5f55 ">2 s   
A A/.A/)rA   r   rB   r   rC   r   r'   r   )hasattrr:   setattr)r4   r5   r6   rF   rE   s     ` @r$   r1   r1   5   s0    3$c;/O
6 C34r#   c           	   #   Z  K   d }t               5  t        t        | j                        d      }d d d        t	        t
        j                  | j                   d|r|j                  nt         t        j                        5 }|j                  t        j                  | j                         |p|j                  d|j                         |j                  t        j                  |j                         |j                  t        j                   |j"                         t%        t'        j(                         t        | j                              rt'        j*                         j-                         D ]e  \  }}t/        j0                  dj3                  ||| j                               |t4        k(  rt7        | j8                  |       W|| j8                  |<   g | d d d        t               5  t;               d d d        y # 1 sw Y   xY w# 1 sw Y   5xY w# 1 sw Y   y xY ww)NF)sanitize )opnamer,   urlzE[Tracing] Adding `{key}` header {value} to outgoing request to {url}.)keyvaluerN   )r   r   strrN   r   r   HTTP_CLIENTmethodr   r   r,   set_datar   HTTP_METHOD
HTTP_QUERYqueryHTTP_FRAGMENTfragmentr	   r;   r<   get_current_scopeiter_trace_propagation_headersr   debugformatr   r   headersr
   )request
parsed_urlspanrO   rP   s        r$   _sentry_pyreqwest_spanrb   J   s    J	$	& As7;;/%@
A 
>>q:C\ ]^#**
  
h**GNN;!MM%0MM(--z/?/?@MM(00*2E2EF!*"7"7"93w{{;KL --/NNP1 [bbu'++ c  --1'//5I+0GOOC(1 
7: 
%	& &%& &AA A :& &sM   H+!HAH+EHH+1H=	H+HH+HH+H($H+c                 @  K   t        j                         j                  t              |j	                  |        d {   S t        |       5 }|j	                  |        d {   }|j                  |j                         d d d        |S 7 N7 +# 1 sw Y   S xY wwr    r;   r<   r=   r   runrb   set_http_statusstatusr_   next_handlerra   responses       r$   r2   r2   q   s      ../CDL!%%g...		( .D%))'22X__-. O / 3. Os9   <BBBB#B$BBBBBc                    t        j                         j                  t              |j	                  |       S t        |       5 }|j	                  |       }|j                  |j                         d d d        |S # 1 sw Y   S xY wr    rd   rh   s       r$   r3   r3   ~   sz     ../CDL((		( .D##G,X__-. O	. Os   -A;;Br&   )r_   r   r'   zGenerator[Any, None, None])r_   r   ri   r   r'   r   )r_   r   ri   r   r'   r   ).r;   r   sentry_sdk.constsr   r   sentry_sdk.integrationsr   r   sentry_sdk.tracingr   sentry_sdk.tracing_utilsr	   r
   r   sentry_sdk.utilsr   r   r   r   
contextlibr   typingr   r   pyreqwest.clientr   r   pyreqwest.requestr   r   r   pyreqwest.middlewarer   r   pyreqwest.responser   r   ImportErrorr   r!   typerQ   r1   rb   r2   r3   r"   r#   r$   <module>ry      s     ! * = 2 
  & !
TA 
 49
; T5t 5# 55 5T 5* #& #&L

&,



&0

A  T
R
SSTs   "B! !B/