Ë
    S>{i®  ã                   ó°  — d dl Z d dlZd dlmZ d dlmZ d dlmZ d dl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 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 	 d dlm Z! d dl"m#Z#m$Z$ d dl%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(m0Z0  G d„ de«      Z1ejd                  d„ «       Z3d„ Z4d„ Z5 G d„ de«      Z6y# e'$ r	  ed«      ‚w xY w)é    N)Úiscoroutinefunction)Úcontinue_trace)ÚOP)ÚHubÚ_should_send_default_pii)ÚTRANSACTION_SOURCE_COMPONENTÚTRANSACTION_SOURCE_ROUTE)ÚHAS_REAL_CONTEXTVARSÚCONTEXTVARS_ERROR_MESSAGEÚevent_from_exceptionÚcapture_internal_exceptionsÚtransaction_from_function)ÚIntegrationÚDidNotEnable)ÚRequestExtractorÚ_filter_headersÚ_is_json_content_type)Úignore_logger)Ú	iteritems)Úversion_info)ÚRequestHandlerÚ	HTTPError)Ú	coroutinezTornado not installed)ÚTYPE_CHECKING)ÚAny)ÚOptional)ÚDict)ÚCallable)Ú	Generator)ÚEventProcessorc                   ó    — e Zd ZdZed„ «       Zy)ÚTornadoIntegrationÚtornadoc                  ó.  ‡‡— t         dk  rt        d«      ‚t        st        dt        z   «      ‚t	        d«       t
        j                  Št        ‰«      } | rˆfd„}nt        ˆfd„«       }|t
        _        t
        j                  Šˆfd„}|t
        _	        y )N)é   r   zTornado 5+ requiredzUThe tornado integration for Sentry requires Python 3.7+ or the aiocontextvars packageztornado.accessc              Ÿ   óz   •K  — t        | «      5   ‰| g|¢­i |¤Žƒ d {  –—† cd d d «       S 7 Œ# 1 sw Y   y xY w­w©N©Ú_handle_request_impl)ÚselfÚargsÚkwargsÚold_executes      €ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sentry_sdk/integrations/tornado.pyÚsentry_execute_request_handlerzETornadoIntegration.setup_once.<locals>.sentry_execute_request_handlerI   sF   øè ø€ ä)¨$Ó/ñ DÙ!,¨TÐ!C°DÒ!C¸FÑ!C×C÷Dñ DØCø÷Dð Düs    ƒ;�/Ÿ- /£
;­/¯8´;c              ?   ó~   •K  — t        | «      5   ‰| g|¢­i |¤ŽE d {  –—† }|cd d d «       S 7 Œ# 1 sw Y   y xY w­wr'   r(   )r*   r+   r,   Úresultr-   s       €r.   r/   zETornadoIntegration.setup_once.<locals>.sentry_execute_request_handlerP   sH   øè ø€ ô *¨$Ó/ñ "Ù(3°DÐ(J¸4Ò(JÀ6Ñ(J×J�FØ!÷"ñ "ØJø÷"ð "üs    ƒ=�1Ÿ/ 1¥
=¯1±:¶=c                 ó<   •— t        |||«        ‰| |||g|¢­i |¤ŽS r'   )Ú_capture_exception)r*   ÚtyÚvalueÚtbr+   r,   Úold_log_exceptions         €r.   Úsentry_log_exceptionz;TornadoIntegration.setup_once.<locals>.sentry_log_exception[   s*   ø€ ä˜r 5¨"Ô-Ù$ T¨2¨u°bÐJ¸4ÒJÀ6ÑJÐJó    )
ÚTORNADO_VERSIONr   r
   r   r   r   Ú_executer   r   Úlog_exception)Ú	awaitabler/   r8   r-   r7   s      @@r.   Ú
setup_oncezTornadoIntegration.setup_once2   sš   ù€ ô ˜VÒ#ÜÐ4Ó5Ð5å#ô ØgÜ+ñ,óð ô
 	Ð&Ô'ä$×-Ñ-ˆä'¨Ó4ˆ	áõDô ó"ó ð"ð #AŒÔä*×8Ñ8Ðô	Kð
 (<ŒÕ$r9   N)Ú__name__Ú
__module__Ú__qualname__Ú
identifierÚstaticmethodr>   © r9   r.   r"   r"   /   s   „ Ø€Jàñ-<ó ñ-<r9   r"   c              #   óL  K  — t         j                  }|j                  t        «      }|€d –— t	        j
                  | «      }t        |«      5 }| j                  j                  }|j                  «       5 }|j                  «        t        |«      }|j                  |«       d d d «       t        |t        j                  dt        ¬«      }|j!                  |d| j                  i¬«      5  d –— d d d «       d d d «       y # 1 sw Y   Œ_xY w# 1 sw Y   ŒxY w# 1 sw Y   y xY w­w)Nzgeneric Tornado request)ÚopÚnameÚsourceÚtornado_request)Úcustom_sampling_context)r   ÚcurrentÚget_integrationr"   ÚweakrefÚrefÚrequestÚheadersÚconfigure_scopeÚclear_breadcrumbsÚ_make_event_processorÚadd_event_processorr   r   ÚHTTP_SERVERr	   Ústart_transaction)r*   ÚhubÚintegrationÚweak_handlerrP   ÚscopeÚ	processorÚtransactions           r.   r)   r)   c   s  è ø€ ô �+‰+€CØ×%Ñ%Ô&8Ó9€KàÐÛä—;‘;˜tÓ$€Lä	ˆS‹ð �SØ—,‘,×&Ñ&ˆà× Ñ Ó"ð 	1 eØ×#Ñ#Ô%Ü-¨lÓ;ˆIØ×%Ñ% iÔ0÷	1ô
 %ØÜ�~‰~ð
 +Ü+ô	
ˆð ×"Ñ"ØÐ2CÀTÇ\Á\Ð1Rð #ó 
ñ 	ó ÷	÷'ð ÷	1ð 	1ú÷ 	ð 	ú÷'ð üsO   ‚AD$Á'DÁ5-D Â"ADÃ*DÃ/DÃ7	D$Ä D		ÄDÄD	ÄDÄD!ÄD$c                 óò   — t         j                  }|j                  t        «      €y t	        |t
        «      ry |j                  }t        | ||f|j                  dddœ¬«      \  }}|j                  ||¬«       y )Nr#   F)ÚtypeÚhandled)Úclient_optionsÚ	mechanism)Úhint)
r   rK   rL   r"   Ú
isinstancer   Úclientr   ÚoptionsÚcapture_event)r4   r5   r6   rW   rd   Úeventrb   s          r.   r3   r3   ‡   ss   € ä
�+‰+€CØ
×ÑÔ-Ó.Ð6ØÜ�%œÔ#Øð �Z‰Z€Fä&Ø	ˆU�BˆØ—~‘~Ø$°Ñ7ô�K€Eˆ4ð ×Ñ�e $ÐÕ'r9   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó(  •—  ‰«       }|€| S |j                   }t        «       5  t        ||j                   j                  j	                  «       «      }t        |«      | d<   dt        i| d<   d d d «       t        «       5  t        |«      }|j                  | «       | d   }|j                  ›d|j                  ›|j                  ›�|d<   |j                  |d<   |j                  |d<   d	|j                  i|d
<   t        t        |j                   «      «      |d<   d d d «       t        «       5  |j"                  r,t%        «       r"| j'                  di «      j'                  dd«       d d d «       | S # 1 sw Y   �ŒxY w# 1 sw Y   ŒcxY w# 1 sw Y   | S xY w)Nr\   rH   Útransaction_inforO   z://ÚurlÚquery_stringÚmethodÚREMOTE_ADDRÚenvrP   ÚuserÚis_authenticatedT)rO   r   Úgetattrrm   Úlowerr   r   ÚTornadoRequestExtractorÚextract_into_eventÚprotocolÚhostÚpathÚqueryÚ	remote_ipr   ÚdictrP   Úcurrent_userr   Ú
setdefault)rg   rb   ÚhandlerrO   rm   Ú	extractorÚrequest_inforY   s          €r.   Útornado_processorz0_make_event_processor.<locals>.tornado_processor�   s„  ø€ á“.ˆØˆ?ØˆLà—/‘/ˆä(Ó*ñ 	QÜ˜W g§o¡o×&<Ñ&<×&BÑ&BÓ&DÓEˆFÜ#<¸VÓ#DˆE�-Ñ Ø)1Ô3OÐ(PˆEÐ$Ñ%÷	Qô
 )Ó*ñ 	MÜ/°Ó8ˆIØ×(Ñ(¨Ô/à  Ñ+ˆLð × Ó Ø—’Ø—’ð#ˆL˜Ñð ,3¯=©=ˆL˜Ñ(Ø%,§^¡^ˆL˜Ñ"Ø#0°'×2CÑ2CÐ"DˆL˜ÑÜ&5´d¸7¿?¹?Ó6KÓ&LˆL˜Ñ#÷	Mô" )Ó*ñ 	RØ×#Ò#Ô(@Ô(BØ× Ñ  ¨Ó,×7Ñ7Ð8JÈDÔQ÷	Rð ˆ÷5	Qñ 	Qú÷
	Mð 	Mú÷"	Rð ˆús%   £AE.Á=BE;Ä+9FÅ.E8Å;FÆFrD   )rY   r�   s   ` r.   rS   rS   ›   s   ø€ ô"ðH Ðr9   c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	rt   c                 ón   — | j                   j                  €yt        | j                   j                  «      S ©Nr   )rO   ÚbodyÚlen©r*   s    r.   Úcontent_lengthz&TornadoRequestExtractor.content_lengthÅ   s*   € à�<‰<×ÑÐ$ØÜ�4—<‘<×$Ñ$Ó%Ð%r9   c                 óˆ   — t        | j                  j                  «      D ��ci c]  \  }}||j                  “Œ c}}S c c}}w r'   )r   rO   Úcookiesr5   ©r*   ÚkÚvs      r.   rŠ   zTornadoRequestExtractor.cookiesË   s1   € ä'0°·±×1EÑ1EÓ'F×G™t˜q !��1—7‘7‘
ÓGÐGùÓGs   £>c                 ó.   — | j                   j                  S r'   )rO   r…   r‡   s    r.   Úraw_dataz TornadoRequestExtractor.raw_dataÏ   s   € à�|‰|× Ñ Ð r9   c                 óÀ   — t        | j                  j                  «      D ���ci c]&  \  }}||D �cg c]  }|j                  dd«      ‘Œ c}“Œ( c}}}S c c}w c c}}}w )NÚlatin1Úreplace)r   rO   Úbody_argumentsÚdecode)r*   rŒ   Úvsr�   s       r.   ÚformzTornadoRequestExtractor.formÓ   sZ   € ô # 4§<¡<×#>Ñ#>Ó?÷
ð 
á��2ð °rÖ:°!�—‘˜ 9Õ-Ò:Ñ:ô
ð 	
ùÚ:ùô
s   ¤A±AÁ
AÁAc                 ó^   — t        | j                  j                  j                  d«      «      S )Nzcontent-type)r   rO   rP   Úgetr‡   s    r.   Úis_jsonzTornadoRequestExtractor.is_jsonÚ   s"   € ä$ T§\¡\×%9Ñ%9×%=Ñ%=¸nÓ%MÓNÐNr9   c                 ó€   — t        | j                  j                  «      D ��ci c]  \  }}|sŒ	||d   “Œ c}}S c c}}w r„   )r   rO   Úfilesr‹   s      r.   r›   zTornadoRequestExtractor.filesÞ   s3   € ä$-¨d¯l©l×.@Ñ.@Ó$A×G™D˜A˜qÂQ��1�Q‘4‘ÓGÐGùÓGs   £
:®:c                 ó4   — t        |j                  xs d«      S )NrD   )r†   r…   )r*   Úfiles     r.   Úsize_of_filez$TornadoRequestExtractor.size_of_fileâ   s   € ä�4—9‘9’? Ó#Ð#r9   N)
r?   r@   rA   rˆ   rŠ   r�   r–   r™   r›   rž   rD   r9   r.   rt   rt   Ä   s(   „ ò&òHò!ò
òOòHó$r9   rt   )7rM   Ú
contextlibÚinspectr   Úsentry_sdk.apir   Úsentry_sdk.constsr   Úsentry_sdk.hubr   r   Úsentry_sdk.tracingr   r	   Úsentry_sdk.utilsr
   r   r   r   r   Úsentry_sdk.integrationsr   r   Ú$sentry_sdk.integrations._wsgi_commonr   r   r   Úsentry_sdk.integrations.loggingr   Úsentry_sdk._compatr   r#   r   r:   Útornado.webr   r   Útornado.genr   ÚImportErrorÚsentry_sdk._typesr   Útypingr   r   r   r   r   r    r"   Úcontextmanagerr)   r3   rS   rt   rD   r9   r.   ú<module>r°      sÃ   ðÛ Û Ý 'å )Ý  ß 8÷÷õ ÷ >÷ñ õ
 :Ý (ð0Ý7ß5Ý%õ ,áÝÝÝÝÝ å0ô1<˜ô 1<ðh ×Ññ ó ð òF(ò(&ôR $Ð.õ  $øðI ò 0Ù
Ð.Ó
/Ð/ð0ús   ÁC ÃC