Ë
    S>{iG  ã                   óT  — d dl 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mZmZ d dlmZ d dlmZ d dlmZ er0d 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mZmZ d dlmZmZ 	 d dlm Z m!Z!m"Z#m$Z$m%Z& dZ( G d„ de«      Z) G d„ de«      Z*d„ Z+d„ Z,y# e'$ r	  ed«      ‚w xY w)é    )Úabsolute_import)ÚHub)ÚSOURCE_FOR_STYLE)Úcapture_internal_exceptionsÚevent_from_exceptionÚparse_versionÚtransaction_from_function)ÚIntegrationÚDidNotEnable)ÚSentryWsgiMiddleware)ÚRequestExtractor)ÚTYPE_CHECKING)Ú_ScopedResponse)ÚAny)ÚDict)ÚCallable)ÚOptional)Ú
FileUploadÚ	FormsDictÚLocalRequest)ÚEventProcessorÚEvent)ÚBottleÚRouteÚrequestÚHTTPResponseÚ__version__zBottle not installed)ÚendpointÚurlc                   ó,   — e Zd ZdZdZdd„Zed„ «       Zy)ÚBottleIntegrationÚbottleÚ c                 óN   — |t         vrt        d|›dt         ›d�«      ‚|| _        y )Nz%Invalid value for transaction_style: z (must be in ú))ÚTRANSACTION_STYLE_VALUESÚ
ValueErrorÚtransaction_style)Úselfr(   s     ú\/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sentry_sdk/integrations/bottle.pyÚ__init__zBottleIntegration.__init__/   s0   € ð Ô$<Ñ<Ýâ$Ö&>ð@óð ð "3ˆÕó    c                  óH  ‡‡‡— t        t        «      } | €t        dj                  t        «      «      ‚| dk  rt        d«      ‚t        j
                  Šˆfd„}|t        _        t        j                  Šˆfd„}|t        _        t        j                  Šˆfd„}|t        _        y )NzUnparsable Bottle version: {})r   é   zBottle 0.12 or newer required.c                 ó”   •‡ — t         j                  }|j                  t        «      }|€
 ‰‰ ||«      S  t	        ˆˆ fd„«      ||«      S )Nc                  ó   •—  ‰‰g| ¢­i |¤ŽS ©N© )ÚaÚkwÚold_appr)   s     €€r*   ú<lambda>zOBottleIntegration.setup_once.<locals>.sentry_patched_wsgi_app.<locals>.<lambda>P   s   ø€ ¹ÀÐ9PÈÒ9PÈRÑ9P€ r,   )r   ÚcurrentÚget_integrationr!   r   )r)   ÚenvironÚstart_responseÚhubÚintegrationr5   s   `    €r*   Úsentry_patched_wsgi_appz=BottleIntegration.setup_once.<locals>.sentry_patched_wsgi_appH   sO   ù€ ô —+‘+ˆCØ×-Ñ-Ô.?Ó@ˆKØÐ"Ù˜t W¨nÓ=Ð=àQÔ'Ô(PÓQØ˜óð r,   c           	      óf  •— t         j                  }|j                  t        «      }|€	 ‰| |«      S |j	                  «       }|5  | }|j                  «       5 }d|_        |j                  t        |t        |«      «       d d d «        ‰| |«      }d d d «       |S # 1 sw Y   ŒxY w# 1 sw Y   S xY w)Nr"   )
r   r7   r8   r!   Ú
push_scopeÚconfigure_scopeÚ_nameÚadd_event_processorÚ_make_request_event_processorÚbottle_request)	r)   r9   r;   r<   Úscope_managerÚappÚscopeÚresÚ
old_handles	           €r*   Ú_patched_handlez5BottleIntegration.setup_once.<locals>._patched_handleY   s¶   ø€ ä—+‘+ˆCØ×-Ñ-Ô.?Ó@ˆKØÐ"Ù! $¨Ó0Ð0ð  ŸN™NÓ,ˆMàñ 0Ø�Ø×(Ñ(Ó*ð ¨eØ"*�E”KØ×-Ñ-Ü5°c¼>È;ÓWô÷ñ
 !  wÓ/�÷0ð ˆJ÷ð ú÷0ð ˆJús$   ÁB&Á(BÁ?B&ÂB#	ÂB&Â&B0c                 óž   •‡‡‡— t         j                  Š‰j                  t        «      } ‰| g|¢­i |¤ŽŠ|€‰S ‰j                  Šˆˆˆfd„}|S )Nc                  ó´   •— 	  ‰| i |¤Ž}|S # t         $ r ‚ t        $ r8}t        |‰j                  dddœ¬«      \  }}‰j	                  ||¬«       |‚d }~ww xY w)Nr"   F)ÚtypeÚhandled)Úclient_optionsÚ	mechanism)Úhint)r   Ú	Exceptionr   ÚoptionsÚcapture_event)	ÚargsÚkwargsrH   Ú	exceptionÚeventrQ   Úclientr;   Úprepared_callbacks	         €€€r*   Úwrapped_callbackzUBottleIntegration.setup_once.<locals>.patched_make_callback.<locals>.wrapped_callback   su   ø€ ð$Ù+¨TÐ<°VÑ<�Cð �
øô $ò ØÜ ò $Ü"6Ø!Ø'-§~¡~Ø+3ÀÑ"Fô#‘K�E˜4ð
 ×%Ñ% e°$Ð%Ô7Ø#�Oûð$ús   ƒ �AŸ3AÁA)r   r7   r8   r!   rY   )	r)   rU   rV   r<   r[   rY   r;   rZ   Úold_make_callbacks	        @@@€r*   Úpatched_make_callbackz;BottleIntegration.setup_once.<locals>.patched_make_callbackt   sV   û€ ä—+‘+ˆCØ×-Ñ-Ô.?Ó@ˆKÙ 1°$Ð H¸Ò HÀÑ HÐØÐ"Ø(Ð(ð —Z‘ZˆFöð$ $Ð#r,   )	r   ÚBOTTLE_VERSIONr   Úformatr   Ú__call__Ú_handler   Ú_make_callback)Úversionr=   rJ   r]   r5   rI   r\   s       @@@r*   Ú
setup_oncezBottleIntegration.setup_once9   sŽ   ú€ ô  ¤Ó/ˆàˆ?ÜÐ>×EÑEÄnÓUÓVÐVà�WÒÜÐ?Ó@Ð@ô —/‘/ˆô
	ð 2ŒŒô —^‘^ˆ
ô	ð, )ŒŒô "×0Ñ0Ðô	$ð>  5ŒÕr,   N)r   )Ú__name__Ú
__module__Ú__qualname__Ú
identifierr(   r+   Ústaticmethodrd   r2   r,   r*   r!   r!   *   s(   „ Ø€JàÐó3ð ñY5ó ñY5r,   r!   c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚBottleRequestExtractorc                 ó.   — | j                   j                  S r1   )r   r9   ©r)   s    r*   ÚenvzBottleRequestExtractor.env—   ó   € à�|‰|×#Ñ#Ð#r,   c                 ó.   — | j                   j                  S r1   )r   Úcookiesrm   s    r*   rq   zBottleRequestExtractor.cookies›   ro   r,   c                 óJ   — | j                   j                  j                  «       S r1   )r   ÚbodyÚreadrm   s    r*   Úraw_datazBottleRequestExtractor.raw_dataŸ   s   € à�|‰|× Ñ ×%Ñ%Ó'Ð'r,   c                 ól   — | j                  «       ry | j                  j                  j                  «       S r1   )Úis_jsonr   ÚformsÚdecoderm   s    r*   ÚformzBottleRequestExtractor.form£   s'   € à�<‰<Œ>ØØ�|‰|×!Ñ!×(Ñ(Ó*Ð*r,   c                 óP   — | j                  «       ry | j                  j                  S r1   )rw   r   Úfilesrm   s    r*   r|   zBottleRequestExtractor.files©   s   € à�<‰<Œ>Øà�|‰|×!Ñ!Ð!r,   c                 ó   — |j                   S r1   )Úcontent_length)r)   Úfiles     r*   Úsize_of_filez#BottleRequestExtractor.size_of_file°   s   € à×"Ñ"Ð"r,   N)	re   rf   rg   rn   rq   ru   rz   r|   r€   r2   r,   r*   rk   rk   –   s    „ ò$ò$ò(ò+ò"ó#r,   rk   c                 óî   — d}|dk(  r|j                   j                  xs d}n@|dk(  r;|j                   j                  xs# t        |j                   j                  «      xs d}|| d<   dt
        |   i| d<   y )Nr#   r   r   ÚtransactionÚsourceÚtransaction_info)ÚrouteÚruleÚnamer	   Úcallbackr   )rX   r(   r   r‡   s       r*   Ú _set_transaction_name_and_sourcer‰   µ   s   € à€Dà˜EÒ!Ø�}‰}×!Ñ!Ò' R‰à	˜jÒ	(à�M‰M×Ñò Ü(¨¯©×)?Ñ)?Ó@òàð 	ð  €Eˆ-ÑØ!)Ô+;Ð<MÑ+NÐ O€EÐ
Òr,   c                 ó   ‡‡— ˆˆfd„}|S )Nc                 óª   •— t        | ‰j                  ‰«       t        «       5  t        ‰«      j	                  | «       d d d «       | S # 1 sw Y   | S xY wr1   )r‰   r(   r   rk   Úextract_into_event)rX   rQ   r<   r   s     €€r*   Úevent_processorz6_make_request_event_processor.<locals>.event_processorÊ   sO   ø€ ä(¨°×0MÑ0MÈwÔWä(Ó*ñ 	FÜ" 7Ó+×>Ñ>¸uÔE÷	Fð ˆ÷	Fð ˆús   £AÁAr2   )rF   r   r<   r�   s    `` r*   rC   rC   Ç   s   ù€ õð Ðr,   N)-Ú
__future__r   Úsentry_sdk.hubr   Úsentry_sdk.tracingr   Úsentry_sdk.utilsr   r   r   r	   Úsentry_sdk.integrationsr
   r   Úsentry_sdk.integrations.wsgir   Ú$sentry_sdk.integrations._wsgi_commonr   Úsentry_sdk._typesr   r   Útypingr   r   r   r   r"   r   r   r   r   r   r   r   r   rD   r   r   r^   ÚImportErrorr&   r!   rk   r‰   rC   r2   r,   r*   ú<module>r˜      s�   ðÝ &å Ý /÷ó ÷ >Ý =Ý Aå +áÝ<ÝÝÝÝß:Ñ:ç7ð	/÷õ ð /Ð ôi5˜ô i5ôX#Ð-ô #ò>Pó$øðI ò /Ù
Ð-Ó
.Ð.ð/ús   Á,B ÂB'