§
    xÅjú$  ã            
       óž  — d dl mZ 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 d dlmZmZmZmZmZ d d	lmZmZmZ erd d
lmZmZmZmZ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,ddddde-ddddf
d„Z.	 	 	 	 	 	 	 	 d%d„Z/	 	 	 	 	 	 	 	 d&d!„Z0	 	 	 	 	 	 	 	 d'd$„Z1dS )(é    )Úpartial)ÚTYPE_CHECKINGN)ÚOPÚSPANDATA)ÚDidNotEnableÚIntegrationÚ_check_minimum_version)ÚStreamedSpan)ÚBAGGAGE_HEADER_NAMEÚSpan)Úadd_http_breadcrumbÚadd_sentry_baggage_to_headersÚget_url_attributesÚhas_span_streaming_enabledÚshould_propagate_trace)Úcapture_internal_exceptionsÚ	parse_urlÚparse_version)ÚAnyÚDictÚOptionalÚTypeÚUnion)Ú	ServiceId)Ú__version__)Ú
AWSRequest)Ú
BaseClient)ÚStreamingBodyz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Úselfr   Úargsr   Úkwargsr"   c                 ód  •—  ‰| g|¢R i |¤Ž | j         }|j        j        }|j                             dt          t          |¬¦  «        ¦  «         |j                             dt          ¦  «         |j                             dt          ¦  «         |j                             dt          ¦  «         d S )Nzrequest-created)Ú
service_idzbefore-signz
after-callzafter-call-error)ÚmetaÚservice_modelr)   ÚeventsÚregisterr   Ú_sentry_request_createdÚregister_lastÚ_sentry_before_signÚ_sentry_after_callÚ_sentry_after_call_error)r%   r&   r'   r*   r)   Ú	orig_inits        €úNC:\Projects\Historical\venv\Lib\site-packages\sentry_sdk/integrations/boto3.pyÚsentry_patched_initz8Boto3Integration.setup_once.<locals>.sentry_patched_init0   s¹   ø€ ð ˆI�dÐ,˜TÐ,Ð,Ð, VÐ,Ð,Ð,Ø”9ˆDØÔ+Ô6ˆJØŒK× Ò Ø!ÝÕ/¸JÐGÑGÔGñô ð ð
 ŒK×%Ò% mÕ5HÑIÔIÐIØŒK× Ò  Õ/AÑBÔBÐBØŒK× Ò Ð!3Õ5MÑNÔNÐNÐNÐNó    )r%   r   r&   r   r'   r   r"   N)r   ÚBOTOCORE_VERSIONr	   r    r   Ú__init__)Úversionr5   r3   s     @r4   Ú
setup_oncezBoto3Integration.setup_once)   s„   ø€ åÕ 0Ñ1Ô1ˆÝÕ/°¸*ÑEÔEÐEåÔ'ˆ	ð	OØð	OØ',ð	OØ8=ð	Oàð	Oð 	Oð 	Oð 	Oð 	Oð 	Oð 2�
ÔÐÐr6   )r"   N)Ú__name__Ú
__module__Ú__qualname__Ú
identifierÚoriginÚstaticmethodr:   © r6   r4   r    r    %   sD   € € € € € Ø€JØ&˜*Ð&Ð&€Fàð2ð 2ð 2ñ „\ð2ð 2ð 2r6   r    r)   r   Úrequestr   Úoperation_namer'   r   r"   c                 ó,  — d|                       ¦   «         ›d|›�}t          j        ¦   «         }|                     t          ¦  «        €d S d }|j        �<t          ¦   «         5  t          |j        d¬¦  «        }d d d ¦  «         n# 1 swxY w Y   i }t          |j	        ¦  «        }d }	|rët          ||¦  «        }
|                     |
¦  «         |j        �|j        |t          j        <   t          j                             ¦   «         �‹t          j                             |dt$          j        dt          j        t          j        | › d|› �i¬¦  «        }	|	                     |
¦  «         |j        �%|	                     t          j        |j        ¦  «         �nbt          j        t$          j        |t          j        ¬	¦  «        }	|r£|	                     d
|j        ¦  «         |	                     t          j        |j        ¦  «         |	                     t          j        |j        ¦  «         |                     d
|j        t          j        |j        t          j        |j        i¦  «         |	                     d|                       ¦   «         ¦  «         |	                     d|¦  «         |j        �9|	                     t          j        |j        ¦  «         |j        |t          j        <   |	                     ¦   «          tA          d |¦  «         |	�|	|j!        d<   d S d S )Nzaws.ú.F)Úsanitizeú	sentry.opúsentry.originú/)ÚnameÚ
attributes©ÚoprJ   r?   zaws.request.urlzaws.service_idzaws.operation_nameÚ_sentrysdk_span)"Ú	hyphenizeÚ
sentry_sdkÚ
get_clientÚget_integrationr    Úurlr   r   r   Úoptionsr   ÚupdateÚmethodr   ÚHTTP_REQUEST_METHODÚtracesÚget_current_spanÚ
start_spanr   ÚHTTP_CLIENTr?   Ú
RPC_METHODÚset_attributesÚset_attributeÚset_dataÚ
HTTP_QUERYÚqueryÚHTTP_FRAGMENTÚfragmentÚset_tagÚHTTP_METHODÚ	__enter__r   Úcontext)r)   rB   rC   r'   ÚdescriptionÚclientÚ
parsed_urlÚ
breadcrumbÚis_span_streaming_enabledÚspanÚurl_attributess              r4   r.   r.   B   s8  € € ð ",×!5Ò!5Ñ!7Ô!7Ð!7Ð!7¸¸ÐH€KåÔ"Ñ$Ô$€FØ×ÒÕ.Ñ/Ô/Ð7Øˆà€JØ„{ÐÝ(Ñ*Ô*ð 	@ð 	@Ý" 7¤;¸Ð?Ñ?Ô?ˆJð	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@ð $&€Jå :¸6¼>Ñ JÔ JÐØ.2€DØ ð /Ý+¨F°JÑ?Ô?ˆØ×Ò˜.Ñ)Ô)Ð)àŒ>Ð%Ø7>´~ˆJ•xÔ3Ñ4åÔ×-Ò-Ñ/Ô/Ð;ÝÔ$×/Ò/Ø à¥¤Ø#Õ%5Ô%<ÝÔ'¨JÐ)IÐ)I¸Ð)IÐ)Iðð 0ñ ô ˆDð ×Ò Ñ/Ô/Ð/àŒ~Ð)Ø×"Ò"¥8Ô#?ÀÄÑPÔPÐPùåÔ$ÝŒ~ØÝ#Ô*ð
ñ 
ô 
ˆð ð 
	Ø�MŠMÐ+¨Z¬^Ñ<Ô<Ð<Ø�MŠM�(Ô-¨zÔ/?Ñ@Ô@Ð@Ø�MŠM�(Ô0°*Ô2EÑFÔFÐFØ×Òà% z¤~ÝÔ'¨Ô)9ÝÔ*¨JÔ,?ðñô ð ð 	�ŠÐ% z×';Ò';Ñ'=Ô'=Ñ>Ô>Ð>Ø�ŠÐ)¨>Ñ:Ô:Ð:ØŒ>Ð%Ø�MŠM�(Ô.°´Ñ?Ô?Ð?Ø/6¬~ˆJ•xÔ+Ñ,ð 	�ŠÑÔÐå˜˜jÑ)Ô)Ð)àÐð .2ˆŒÐ)Ñ*Ð*Ð*ð Ðs   Á!BÂBÂBÚsignature_versionc           	      óN  — t          j        ¦   «         }|                     t          ¦  «        €d S t	          ¦   «         5  t          |t          ¦  «        r#|                     d¦  «        r	 d d d ¦  «         d S | j        �t          || j        ¦  «        s	 d d d ¦  «         d S dddt          dt          dd fd„}| j
                             d¦  «        }t          j        ¦   «                              |¬	¦  «        }|D ]‘\  }}|t          k    r || ||¦  «         Œ| j                             t          g ¦  «        }	t          d
                     d„ |	D ¦   «         ¦  «        i}
t%          |
|¦  «          || t          |
t                   ¦  «         Œ’	 d d d ¦  «         d S # 1 swxY w Y   d S )N)z-queryz-presign-postrB   r   ÚkeyÚvaluer"   c                 ó<   — || j         v r| j         |= || j         |<   dS )a1  
            Botocore's `HTTPHeaders` inherits from `email.message.Message`, where:
                headers["foo"] = "old"
                headers["foo"] = "new"
            produces two fields: {"foo": "old", "foo": "new"}. So delete existing
            fields before assigning replacement.
            N)Úheaders)rB   rq   rr   s      r4   Ú_replace_headerz,_sentry_before_sign.<locals>._replace_headerŸ   s-   € ð �g”oÐ%Ð%Ø”O CÐ(Ø#(ˆGŒO˜CÑ Ð Ð r6   rN   )rm   ú,c              3   ó4   K  — | ]}t          |¦  «        V — Œd S ©N)Ústr)Ú.0rr   s     r4   ú	<genexpr>z&_sentry_before_sign.<locals>.<genexpr>º   s(   è è € Ð-VÐ-V¸U­c°%©j¬jÐ-VÐ-VÐ-VÐ-VÐ-VÐ-Vr6   )rP   rQ   rR   r    r   Ú
isinstancery   ÚendswithrS   r   rg   ÚgetÚget_current_scopeÚiter_trace_propagation_headersr   rt   Úget_allÚjoinr   )rB   ro   r'   ri   ru   rm   rt   Úheader_nameÚheader_valueÚexisting_valuesÚcombined_baggages              r4   r0   r0   �   sj  € õ Ô"Ñ$Ô$€FØ×ÒÕ.Ñ/Ô/Ð7Øˆå	$Ñ	&Ô	&ð ,ð ,õ Ð'­Ñ-Ô-ð 	Ð2C×2LÒ2LØ'ñ3
ô 3
ð 	ð ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð Œ;ÐÕ&<¸VÀWÄ[Ñ&QÔ&QÐØð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð
	) \ð 
	)½ð 
	)ÅCð 
	)ÈDð 
	)ð 
	)ð 
	)ð 
	)ð Œ×"Ò"Ð#4Ñ5Ô5ˆåÔ.Ñ0Ô0×OÒOØð Pñ 
ô 
ˆð *1ð 	ð 	Ñ%ˆK˜ØÕ1Ò1Ð1à� ¨°lÑCÔCÐCØð &œo×5Ò5Õ6IÈ2ÑNÔNˆOå# S§X¢XÐ-VÐ-VÀoÐ-VÑ-VÔ-VÑ%VÔ%Vð Ðõ *Ð*:¸LÑIÔIÐIØˆOØÕ,Ð.>Õ?RÔ.Sñô ð ð ð	ð;,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,s   ¾,FÁ7FÂ!C+FÆFÆ!Frg   úDict[str, Any]Úparsedc                 ó:  ‡‡‡	— |                       dd ¦  «        }|€d S |                     d d d ¦  «         |                     d¦  «        }t          |t          ¦  «        sd S t          |t
          ¦  «        r?t          j                             |j	        |t          j        t          j        dœ¬¦  «        Š	n1|                     t          j        |j        t          j        ¬¦  «        Š	|j        Š|j        Šddddd	t$          fˆˆ	fd
„}||_        dˆˆ	fd„}||_        d S )NrN   ÚBody)rG   rH   )rJ   Úparent_spanrK   rL   r&   r   r'   r"   c                  ó8  •— 	  ‰| i |¤Ž}|r|S t          ‰t          ¦  «        r‰                     ¦   «          n‰                     ¦   «          |S # t          $ r@ t          ‰t          ¦  «        r‰                     ¦   «          n‰                     ¦   «          ‚ w xY wrx   )r|   r
   ÚendÚfinishÚ	Exception)r&   r'   ÚretÚ	orig_readÚstreaming_spans      €€r4   Úsentry_streaming_body_readz6_sentry_after_call.<locals>.sentry_streaming_body_readæ   s¾   ø€ ð	Ø�)˜TÐ, VÐ,Ð,ˆCØð Ø�
å˜.­,Ñ7Ô7ð (Ø×"Ò"Ñ$Ô$Ð$Ð$à×%Ò%Ñ'Ô'Ð'ØˆJøÝð 	ð 	ð 	Ý˜.­,Ñ7Ô7ð (Ø×"Ò"Ñ$Ô$Ð$Ð$à×%Ò%Ñ'Ô'Ð'Øð	øøøs   ƒA �?A ÁA
Bc                  ó”   •— t          ‰t          ¦  «        r‰                     ¦   «          n‰                     ¦   «           ‰| i |¤Ž d S rx   )r|   r
   r�   rŽ   )r&   r'   Ú
orig_closer’   s     €€r4   Úsentry_streaming_body_closez7_sentry_after_call.<locals>.sentry_streaming_body_closeú   sW   ø€ Ý�n¥lÑ3Ô3ð 	$Ø×ÒÑ Ô Ð Ð à×!Ò!Ñ#Ô#Ð#Øˆ
�DÐ#˜FÐ#Ð#Ð#Ð#Ð#r6   )r&   r   r'   r   r"   N)ÚpopÚ__exit__r~   r|   r   r
   rP   rX   rZ   rJ   r   ÚHTTP_CLIENT_STREAMr    r?   Ústart_childrh   ÚreadÚcloseÚbytes)
rg   rˆ   r'   rm   Úbodyr“   r–   r•   r‘   r’   s
          @@@r4   r1   r1   Ã   sf  øøø€ ð 3:·+²+Ð>OÐQUÑ2VÔ2V€Dð €|Øˆà‡M‚M�$˜˜dÑ#Ô#Ð#à�:Š:�fÑÔ€DÝ�d�MÑ*Ô*ð Øˆõ �$�Ñ%Ô%ð 
Ý#Ô*×5Ò5Ø”ØåÔ2Ý!1Ô!8ðð ð 6ñ 
ô 
ˆˆð ×)Ò)ÝÔ$ØÔ!Ý#Ô*ð *ñ 
ô 
ˆð ”	€IØ”€Jð¨%ð ¸5ð ÅUð ð ð ð ð ð ð ð$ +€D„Ið$ð $ð $ð $ð $ð $ð $ð -€D„J€J€Jr6   Ú	exceptionúType[BaseException]c                 ó‚   — |                       dd ¦  «        }|€d S |                     t          |¦  «        |d ¦  «         d S )NrN   )r—   r˜   Útype)rg   rŸ   r'   rm   s       r4   r2   r2     sG   € ð 3:·+²+Ð>OÐQUÑ2VÔ2V€Dð €|Øˆà‡M‚M•$�y‘/”/ 9¨dÑ3Ô3Ð3Ð3Ð3r6   )rB   r   ro   r   r'   r   r"   N)rg   r‡   rˆ   r‡   r'   r   r"   N)rg   r‡   rŸ   r    r'   r   r"   N)2Ú	functoolsr   Útypingr   rP   Úsentry_sdk.constsr   r   Úsentry_sdk.integrationsr   r   r	   Úsentry_sdk.tracesr
   Úsentry_sdk.tracingr   r   Úsentry_sdk.tracing_utilsr   r   r   r   r   Úsentry_sdk.utilsr   r   r   r   r   r   r   r   Úbotocore.modelr   r$   r   r7   Úbotocore.awsrequestr   Úbotocore.clientr   Úbotocore.responser   ÚImportErrorr    ry   r.   r0   r1   r2   rA   r6   r4   ú<module>r°      sç  ðØ Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UØ *Ð *Ð *Ð *Ð *Ð *Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8ðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð )Ø7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7à(Ð(Ð(Ð(Ð(Ð(ð4Ø8Ð8Ð8Ð8Ð8Ð8Ø.Ð.Ð.Ð.Ð.Ð.Ø*Ð*Ð*Ð*Ð*Ð*Ø/Ð/Ð/Ð/Ð/Ð/Ð/øØð 4ð 4ð 4Ø
ˆ,Ð2Ñ
3Ô
3Ð3ð4øøøð2ð 2ð 2ð 2ð 2�{ñ 2ô 2ð 2ð:H2ØðH2Ø&2ðH2ØDGðH2ØSXðH2à	ðH2ð H2ð H2ð H2ðV3Øð3Ø.3ð3Ø?Dð3à	ð3ð 3ð 3ð 3ðl>-Øð>-Ø'7ð>-ØCHð>-à	ð>-ð >-ð >-ð >-ðB	4Øð	4Ø*?ð	4ØKPð	4à	ð	4ð 	4ð 	4ð 	4ð 	4ð 	4s   Á A9 Á9B
