o
    0 i;                     @   s  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rNd dlmZ d d	lmZ d d
lmZ d dlmZ zd dlmZ d dlmZ d dlmZ d dlmZ W n e ys   e	dw G dd deZ!ee!d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                   @   s&   e Zd ZdZde Zedd ZdS )Boto3IntegrationZboto3z
auto.http.c                     s0   t t} tt| d tj  fdd}|t_d S )Nbotocorec                    s^    | g|R i | | j }|jj }|jdtt|d |jdt |jdt	 d S )Nzrequest-created)
service_idz
after-callzafter-call-error)
metaZservice_modelr   Z	hyphenizeeventsregisterr   _sentry_request_created_sentry_after_call_sentry_after_call_error)selfargskwargsr   r   Z	orig_init i/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/sentry_sdk/integrations/boto3.pysentry_patched_init+   s   
z8Boto3Integration.setup_once.<locals>.sentry_patched_init)r   BOTOCORE_VERSIONr   r   r   __init__)versionr%   r#   r"   r$   
setup_once#   s
   
zBoto3Integration.setup_onceN)__name__
__module____qualname__
identifieroriginstaticmethodr)   r#   r#   r#   r$   r      s
    
r   c                 K   s   d| |f }t jtj|tjd}t & t|jdd}|	d|j |	t
j|j |	t
j|j W d    n1 s<w   Y  |d|  |d| |	t
j|j |  ||jd< d S )	Nz	aws.%s.%sopnamer.   F)sanitizezaws.request.urlzaws.service_idzaws.operation_name_sentrysdk_span)
sentry_sdkZ
start_spanr   ZHTTP_CLIENTr   r.   r	   r   urlset_datar   Z
HTTP_QUERYqueryZHTTP_FRAGMENTfragmentZset_tagZHTTP_METHODmethod	__enter__context)r   requestZoperation_namer!   descriptionspan
parsed_urlr#   r#   r$   r   :   s"   r   c                    s   |  dd }|d u rd S |d d d  |d}t|tsd S |jtj|jt	j
d|j|j fdd}||_ fdd}||_d S )Nr4   ZBodyr0   c                     s:   z | i |}|s   |W S  ty       w N)finish	Exception)r    r!   ret)	orig_readstreaming_spanr#   r$   sentry_streaming_body_readm   s   z6_sentry_after_call.<locals>.sentry_streaming_body_readc                     s       | i | d S rA   )rB   )r    r!   )
orig_closerF   r#   r$   sentry_streaming_body_closez   s   z7_sentry_after_call.<locals>.sentry_streaming_body_close)pop__exit__get
isinstancer   Zstart_childr   ZHTTP_CLIENT_STREAMr>   r   r.   readclose)r<   parsedr!   r?   bodyrG   rI   r#   )rH   rE   rF   r$   r   W   s$   


r   c                 K   s.   |  dd }|d u rd S |t||d  d S )Nr4   )rJ   rK   type)r<   	exceptionr!   r?   r#   r#   r$   r      s   r   )%	functoolsr   r5   Zsentry_sdk.constsr   r   Zsentry_sdk.integrationsr   r   r   Zsentry_sdk.tracingr   Zsentry_sdk.utilsr	   r
   r   r   typingr   r   r   r   r   r   r   r&   Zbotocore.clientr   Zbotocore.responser   Zbotocore.awsrequestr   ImportErrorr   r   r   r   r#   r#   r#   r$   <module>   s2    
+