
    tni                        d dl mZ d dlZd dlmZmZ d dlmZmZm	Z	 d dl
mZ d dl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 d dlmZ d dlmZ n# e $ r  e	d          w xY w G d de          Z! ee!          de"ddde"ddddf
d            Z#	 	 	 	 	 	 	 	 d"dZ$	 	 	 	 	 	 	 	 d#d!Z%dS )$    )partialN)OPSPANDATA)_check_minimum_versionIntegrationDidNotEnable)Span)capture_internal_exceptionsensure_integration_enabled	parse_urlparse_version)TYPE_CHECKING)Any)Dict)Optional)Type)__version__)
BaseClient)StreamingBody)
AWSRequestzbotocore is not installedc                   4    e Zd ZdZde Zedd            ZdS )Boto3Integrationboto3z
auto.http.returnNc                      t          t                    } t          t          | d           t          j        	 	 	 	 	 	 	 	 d	fd}|t          _        d S )
NbotocoreselfType[BaseClient]argsr   kwargsr   c                 H    | g|R i | | j         }|j        j                                        }|j                            dt          t          |                     |j                            dt                     |j                            dt                     d S )Nzrequest-created)
service_idz
after-callzafter-call-error)
metaservice_modelr"   	hyphenizeeventsregisterr   _sentry_request_created_sentry_after_call_sentry_after_call_error)r   r   r    r#   r"   	orig_inits        Z/var/www/html/gpu-tools/venv/lib/python3.11/site-packages/sentry_sdk/integrations/boto3.pysentry_patched_initz8Boto3Integration.setup_once.<locals>.sentry_patched_init*   s     Id,T,,,V,,,9D+6@@BBJK  !/JGGG   K  /ABBBK  !35MNNNNN    )r   r   r   r   r    r   r   N)r   BOTOCORE_VERSIONr   r   r   __init__)versionr-   r+   s     @r,   
setup_oncezBoto3Integration.setup_once#   s     011/*EEE'		O$	O-2	O>C	O	O 	O 	O 	O 	O 	O 2
r.   )r   N)__name__
__module____qualname__
identifieroriginstaticmethodr2    r.   r,   r   r      sD        J&*&&F2 2 2 \2 2 2r.   r   r"   requestr   operation_namer    r   r   c                    d| d|}t          j        t          j        |t          j                  }t                      5  t          |j        d          }|	                    d|j                   |	                    t          j        |j                   |	                    t          j        |j                   d d d            n# 1 swxY w Y   |                    d|            |                    d|           |	                    t          j        |j                   |                                 ||j        d	<   d S )
Nzaws..opnamer7   F)sanitizezaws.request.urlzaws.service_idzaws.operation_name_sentrysdk_span)
sentry_sdk
start_spanr   HTTP_CLIENTr   r7   r
   r   urlset_datar   
HTTP_QUERYqueryHTTP_FRAGMENTfragmentset_tagHTTP_METHODmethod	__enter__context)r"   r:   r;   r    descriptionspan
parsed_urls          r,   r(   r(   :   sz     ",^^<K >&  D 
%	&	& C Cw{U;;;
'888h):+;<<<h,j.ABBB	C C C C C C C C C C C C C C C 	LL!:...LL%~666MM(&777 	NN *.GO%&&&s   A<C

CCrP   Dict[str, Any]parsedc                   	 |                      dd           }|d S |                    d d d            |                    d          }t          |t                    sd S |                    t          j        |j        t          j
                  	|j        |j        dddddt          f	fd}||_        d
	fd	}||_        d S )NrB   Bodyr>   r   r   r    r   c                      	  | i |}|s                                  |S # t          $ r                                    w xY wN)finish	Exception)r   r    ret	orig_readstreaming_spans      r,   sentry_streaming_body_readz6_sentry_after_call.<locals>.sentry_streaming_body_reado   sk    	)T,V,,C (%%'''J 	 	 	!!###	s	   #  Ac                  @                                       | i | d S rY   )rZ   )r   r    
orig_closer^   s     r,   sentry_streaming_body_closez7_sentry_after_call.<locals>.sentry_streaming_body_close{   s0    
D#F#####r.   )r   r   r    r   r   N)pop__exit__get
isinstancer   start_childr   HTTP_CLIENT_STREAMrQ   r   r7   readclosebytes)
rP   rU   r    rR   bodyr_   rb   ra   r]   r^   s
          @@@r,   r)   r)   X   s    %[[):DAAD |MM$d###::fDdM** %% & &  N 	IJ% 5 U        +DI$ $ $ $ $ $ $ -DJJJr.   	exceptionType[BaseException]c                     |                      dd           }|d S |                    t          |          |d            d S )NrB   )rc   rd   type)rP   rm   r    rR   s       r,   r*   r*      sF     %[[):DAAD |MM$y//9d33333r.   )rP   rT   rU   rT   r    r   r   N)rP   rT   rm   rn   r    r   r   N)&	functoolsr   rC   sentry_sdk.constsr   r   sentry_sdk.integrationsr   r   r   sentry_sdk.tracingr	   sentry_sdk.utilsr
   r   r   r   typingr   r   r   r   r   r   r   r/   botocore.clientr   botocore.responser   botocore.awsrequestr   ImportErrorr   strr(   r)   r*   r9   r.   r,   <module>r|      sy             * * * * * * * * U U U U U U U U U U # # # # # #            !           4888888******//////....... 4 4 4
,2
3
3342 2 2 2 2{ 2 2 26 ,--..*.<?.KP.	. . . .-.:'-'-'7'-CH'-	'- '- '- '-T44*?4KP4	4 4 4 4 4 4s   A) )A: