§
    xÅjS  ã                   óŒ  — 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 d dlmZ d d	lmZmZmZmZ 	 d dlZd d
lmZmZ d dlmZ d dlmZ n# e $ r  ed¦  «        ‚w xY wd dl!m"Z" e"r!d dl!m#Z#m$Z$m%Z%m&Z&  e&de$de#f         ¬¦  «        Z' G d„ de¦  «        Z	 	 	 	 	 	 	 	 dd„Z( G d„ de¦  «        Z)dS )é    N©Úwraps)ÚDidNotEnableÚIntegration)Ú_filter_headers)Ú_make_request_event_processor)Ú
SpanStatusÚStreamedSpanÚget_current_span)ÚTransactionSource)Úhas_span_streaming_enabled)Úcapture_internal_exceptionsÚevent_from_exceptionÚparse_versionÚreraise)ÚChaliceÚChaliceViewError)Ú__version__)ÚEventSourceHandlerzChalice is not installed)ÚTYPE_CHECKING)ÚAnyÚCallableÚDictÚTypeVarÚF.)Úboundc                   ó   — e Zd Zdd„ZdS )r   Úeventr   ÚcontextÚreturnc           	      ón  — t          j        ¦   «         }t          j        ¦   «         5 }t          ¦   «         5  |                     ¦   «         }|                     t          |||¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   	 t          j        | ||¦  «        cd d d ¦  «         S # t          $ rf t          j        ¦   «         }t          ||j        dddœ¬¦  «        \  }}t          j        ||¬¦  «         |                     ¦   «          t!          |Ž  Y nw xY w	 d d d ¦  «         d S # 1 swxY w Y   d S )NÚchaliceF©ÚtypeÚhandled©Úclient_optionsÚ	mechanism©Úhint)Ú
sentry_sdkÚ
get_clientÚisolation_scoper   Úget_remaining_time_in_millisÚadd_event_processorr   ÚChaliceEventSourceHandlerÚ__call__Ú	ExceptionÚsysÚexc_infor   ÚoptionsÚcapture_eventÚflushr   )Úselfr   r   ÚclientÚscopeÚconfigured_timer4   r*   s           úPC:\Projects\Historical\venv\Lib\site-packages\sentry_sdk/integrations/chalice.pyr1   zEventSourceHandler.__call__)   sæ  € ÝÔ&Ñ(Ô(ˆåÔ'Ñ)Ô)ð 	#¨UÝ,Ñ.Ô.ð ð Ø")×"FÒ"FÑ"HÔ"H�Ø×)Ò)Ý1°%¸À/ÑRÔRñô ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð
#Ý0Ô9¸$ÀÀwÑOÔOð	#ð 	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#øõ ð 	#ð 	#ð 	#Ýœ<™>œ>�Ý2ØØ#)¤>Ø'0¸UÐCÐCðñ ô ‘��tõ
 Ô(¨°TÐ:Ñ:Ô:Ð:Ø—’‘”�Ý˜Ð"Ð"Ð"Ð"ð	#øøøð #ð#	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	#ð 	#sS   §D*¶9A;Á/D*Á;A?	Á?D*ÂA?	ÂD*ÂB)Â)A-DÄD*ÄDÄD*Ä*D.Ä1D.N)r   r   r   r   r    r   )Ú__name__Ú
__module__Ú__qualname__r1   © ó    r<   r   r   (   s(   € € € € € ð#ð #ð #ð #ð #ð #rA   r   Úappr   Úview_functionÚfunction_argsr    c                 óB   ‡ ‡— t          ‰¦  «        dˆ ˆfd„¦   «         }|S )NrD   r   r    c            	      ó0  •— t          j        ¦   «         }t          j        ¦   «         5 }t          ¦   «         5  ‰j                             ¦   «         }|                     t          ‰j         	                    ¦   «         ‰j        |¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        ¦  «        �r‹t          ¦   «         }d }t          |¦  «        t          u r³‰j         	                    ¦   «         }|                     di ¦  «        }i }t!          |d¬¦  «                             ¦   «         D ]\  }	}
|
|d|	                     ¦   «         › �<   Œ i }d|v r|d         |d<   dt&          j        i|¥|¥}|j        }|                     |¦  «         	  ‰di | ¤Žcd d d ¦  «         S # t.          $ r�}t1          |t2          ¦  «        r‚ t5          j        ¦   «         }|rt8          j        j        |_        tA          ||j        ddd	œ¬
¦  «        \  }}t          j!        ||¬¦  «         |€| "                    ¦   «          ‚ d }~ww xY w| #                    ‰j        j$        tJ          j&        ¬¦  «         	  ‰di | ¤Žcd d d ¦  «         S # t.          $ rv}t1          |t2          ¦  «        r‚ t5          j        ¦   «         }tA          ||j        ddd	œ¬
¦  «        \  }}t          j!        ||¬¦  «         | "                    ¦   «          ‚ d }~ww xY w# 1 swxY w Y   d S )NÚheadersF)Úuse_annotated_valuezhttp.request.header.Úmethodzhttp.request.methodzsentry.originr"   r#   r&   r)   )Úsourcer@   )'r+   r,   r-   r   Úlambda_contextr.   r/   r   Úcurrent_requestÚto_dictr   r5   r   r$   r
   Úgetr   ÚitemsÚlowerÚChaliceIntegrationÚoriginÚ_segmentÚset_attributesr2   Ú
isinstancer   r3   r4   r	   ÚERRORÚvalueÚstatusr   r6   r7   Úset_transaction_nameÚfunction_namer   Ú	COMPONENT)rD   r9   r:   r;   Úcurrent_spanÚsegmentÚrequest_dictrG   Úheader_attrsÚheaderrW   Úadditional_attrsÚ
attributesÚexcr4   Úsentry_eventr*   rB   rC   s                    €€r<   Úwrapped_view_functionz:_get_view_function_response.<locals>.wrapped_view_functionC   sC  ø€ åÔ&Ñ(Ô(ˆÝÔ'Ñ)Ô)ð M	¨UÝ,Ñ.Ô.ð ð Ø"%Ô"4×"QÒ"QÑ"SÔ"S�Ø×)Ò)Ý1ØÔ+×3Ò3Ñ5Ô5ØÔ*Ø'ñô ñô ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ *¨&¬.Ñ9Ô9ñ BÝ/Ñ1Ô1�Ø�Ý˜Ñ%Ô%­Ð5Ð5ð $'Ô#6×#>Ò#>Ñ#@Ô#@�LØ*×.Ò.¨y¸"Ñ=Ô=�Gà57�LÝ)8Ø°Uð*ñ *ô *ç’e‘g”gðVð V™˜ ð QV˜Ð%L¸F¿LºL¹N¼NÐ%LÐ%LÑMÐMà9;Ð$Ø <Ð/Ð/ØBNÈxÔBXÐ(Ð)>Ñ?ð (Õ);Ô)Bð"à&ð"ð +ð"�Jð +Ô3�GØ×*Ò*¨:Ñ6Ô6Ð6ðØ(˜=Ð9Ð9¨=Ð9Ð9ðWM	ð M	ð M	ð M	ñ M	ô M	ð M	ð M	øõX !ð ð ð Ý! #Õ'7Ñ8Ô8ð ØÝ"œ|™~œ~�HØð @Ý)3Ô)9Ô)?˜œÝ)=Ø Ø'-¤~Ø+4ÀÐ"GÐ"Gð*ñ *ô *Ñ&�L $õ
 Ô,¨\ÀÐEÑEÔEÐEØ�ØŸš™œ˜Øøøøøðøøøð  ×*Ò*ØÔ&Ô4Ý,Ô6ð +ñ ô ð ðØ(˜=Ð9Ð9¨=Ð9Ð9ðCM	ð M	ð M	ð M	ñ M	ô M	ð M	ð M	øõD !ð ð ð Ý! #Õ'7Ñ8Ô8ð ØÝ"œ|™~œ~�HÝ)=Ø Ø'-¤~Ø+4ÀÐ"GÐ"Gð*ñ *ô *Ñ&�L $õ
 Ô,¨\ÀÐEÑEÔEÐEØ—L’L‘N”N�NØøøøøðøøøðEM	ð M	ð M	ð M	øøøð M	ð M	ð M	ð M	ð M	ð M	st   ¨L·ABÂLÂB!	Â!LÂ$B!	Â%C1LÆF+Æ+
IÆ5BI É IÉ.LÉ4JÊ
LÊA1LÌLÌLÌLÌL)rD   r   r    r   r   )rB   rC   rD   re   s   ``  r<   Ú_get_view_function_responserf   @   sL   øø€ õ ˆ=ÑÔðOð Oð Oð Oð Oð Oñ ÔðOðb !Ð rA   c                   ó4   — e Zd ZdZde› �Zedd„¦   «         ZdS )rQ   r"   zauto.function.r    Nc                  ó>  ‡— t          t          ¦  «        } | €'t          d                     t          ¦  «        ¦  «        ‚| dk     rt          j        Šnddlm} |j        Š	 	 	 	 	 	 	 	 dˆfd„}| dk     r|t          _        n||_        t          t          j
        _        d S )NzUnparsable Chalice version: {})é   é   r   )ÚRestAPIEventHandlerrB   r   rC   r   rD   úDict[str, Any]r    c                 ó@   •— t          | ||¦  «        } ‰| ||¦  «        S )N)rf   )rB   rC   rD   re   Úold_get_view_function_responses       €r<   Úsentry_event_responsez<ChaliceIntegration.setup_once.<locals>.sentry_event_response¬   s<   ø€ õ %@Ø�] Mñ%ô %Ð!ð 2Ð1ØÐ*¨Mñô ð rA   )rB   r   rC   r   rD   rl   r    r   )r   ÚCHALICE_VERSIONr   Úformatr   rf   Úchalice.apprk   r   r"   rB   )Úversionrk   ro   rn   s      @r<   Ú
setup_oncezChaliceIntegration.setup_onceœ   s×   ø€ å¥Ñ0Ô0ˆàˆ?ÝÐ?×FÒFÅÑWÔWÑXÔXÐXà�WÒÐÝ-4Ô-PÐ*Ð*à7Ð7Ð7Ð7Ð7Ð7ð $Ô?ð +ð		Øð		Ø'*ð		Ø;Kð		àð		ð 		ð 		ð 		ð 		ð 		ð �WÒÐØ2G�GÔ/Ð/à>SÐÔ;å);�ŒÔ&Ð&Ð&rA   )r    N)r=   r>   r?   Ú
identifierrR   Ústaticmethodrt   r@   rA   r<   rQ   rQ   ˜   sD   € € € € € Ø€JØ*˜jÐ*Ð*€Fàð<ð <ð <ñ „\ð<ð <ð <rA   rQ   )rB   r   rC   r   rD   r   r    r   )*r3   Ú	functoolsr   r+   Úsentry_sdk.integrationsr   r   Ú$sentry_sdk.integrations._wsgi_commonr   Ú"sentry_sdk.integrations.aws_lambdar   Úsentry_sdk.tracesr	   r
   r   Úsentry_sdk.tracingr   Úsentry_sdk.tracing_utilsr   Úsentry_sdk.utilsr   r   r   r   r"   r   r   r   rp   rr   r   r0   ÚImportErrorÚtypingr   r   r   r   r   r   rf   rQ   r@   rA   r<   ú<module>r�      s~  ðØ 
€
€
€
Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø @Ð @Ð @Ð @Ð @Ð @Ø LÐ LÐ LÐ LÐ LÐ Lðð ð ð ð ð ð ð ð ð ð
 1Ð 0Ð 0Ð 0Ð 0Ð 0Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?ðð ð ð ð ð ð ð ð ð ð ð ð3Ø€N€N€NØ1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ø6Ð6Ð6Ð6Ð6Ð6ðð ð ð ð ð ð øð ð 3ð 3ð 3Ø
ˆ,Ð1Ñ
2Ô
2Ð2ð3øøøð !Ð  Ð  Ð  Ð  Ð  àð /Ø3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3àˆ�˜8 C¨ HÔ-Ð.Ñ.Ô.€Að#ð #ð #ð #ð #Ð2ñ #ô #ð #ð0U!Ø	ðU!Ø"ðU!Ø38ðU!àðU!ð U!ð U!ð U!ðp$<ð $<ð $<ð $<ð $<˜ñ $<ô $<ð $<ð $<ð $<s   ÁA ÁA0