Ë
    S>{i  ã                   óÆ  — d dl mZ d dlZd dl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 d dl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 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"m'Z' d dl(m)Z) d dl*m+Z+ d dlm,Z, d dlm-Z-  e.edd«      rd„ Z/nd dl0m/Z/ dZ1 G d„ de«      Z2d„ Z3d „ Z4 G d!„ d"e«      Z5d#„ Z6y# e$ r	  ed«      ‚w xY w)$é    )Úabsolute_importN)ÚHubÚ_should_send_default_pii)ÚScope)ÚSOURCE_FOR_STYLE)Úcapture_internal_exceptionsÚevent_from_exception)ÚreraiseÚ	iteritems)ÚIntegrationÚDidNotEnable)ÚRequestExtractor)ÚSentryWsgiMiddleware)ÚHTTPException)ÚRequestzPyramid not installed)ÚTYPE_CHECKING)ÚResponse)ÚAny)Ú_ScopedResponse)ÚCallable)ÚDict)ÚOptional)ÚRequestCookies)Úcgi_FieldStorage)ÚExcInfo)ÚEventProcessorÚauthenticated_useridc                 ó   — | j                   S ©N©r   )Úrequests    ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sentry_sdk/integrations/pyramid.pyr   r   ,   s   € à×+Ñ+Ð+ó    r    ©Ú
route_nameÚroute_patternc                   ó,   — e Zd ZdZdZdd„Zed„ «       Zy)ÚPyramidIntegrationÚpyramidÚ 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     r"   Ú__init__zPyramidIntegration.__init__=   s.   € àÔ$<Ñ<Ýâ$Ö&>ð@óð ð "3ˆÕr#   c                  óþ   ‡‡‡— ddl m}  | j                  Šˆfd„}|| _        t        t        d«      r t        j
                  Šˆfd„}|t        _        | j                  j                  Šˆfd„}|| j                  _        y )Nr   )Úrouterc                 ó@  •— t         j                  }|j                  t        «      }|�^|j	                  «       5 }t        ||j                  |«       |j                  t        t        j                  |«      |«      «       d d d «        ‰| |g|¢­i |¤ŽS # 1 sw Y   ŒxY wr   )r   ÚcurrentÚget_integrationr(   Úconfigure_scopeÚ _set_transaction_name_and_sourcer/   Úadd_event_processorÚ_make_event_processorÚweakrefÚref)Úregistryr!   ÚargsÚkwargsÚhubÚintegrationÚscopeÚold_call_views          €r"   Úsentry_patched_call_viewz?PyramidIntegration.setup_once.<locals>.sentry_patched_call_viewM   s—   ø€ ä—+‘+ˆCØ×-Ñ-Ô.@ÓAˆKàÐ&Ø×(Ñ(Ó*ð ¨eÜ4Ø˜{×<Ñ<¸gôð ×-Ñ-Ü-¬g¯k©k¸'Ó.BÀKÓPô÷	ñ ! ¨7ÐD°TÒD¸VÑDÐD÷ð ús   ¹ABÂBÚinvoke_exception_viewc                 óð   •—  ‰| g|¢­i |¤Ž}| j                   r\t        | j                   «      rG|j                  dk(  r8t        j                  j                  t        «      �t        | j                   «       |S )Niô  )Úexc_infoÚallÚ
status_intr   r5   r6   r(   Ú_capture_exception)r0   r>   r?   ÚrvÚold_invoke_exception_views       €r"   Ú$sentry_patched_invoke_exception_viewzKPyramidIntegration.setup_once.<locals>.sentry_patched_invoke_exception_viewb   s_   ø€ á.¨tÐE°dÒE¸fÑE�ð —M’MÜ˜DŸM™MÔ*ØŸ™¨Ò,ÜŸ™×3Ñ3Ô4FÓGÐSä& t§}¡}Ô5à�	r#   c                 ó˜   •‡ — t         j                  }|j                  t        «      }|€
 ‰‰ ||«      S ˆˆ fd„} t	        |«      ||«      S )Nc                 ó†   •— 	  ‰‰| |«      S # t         $ r* t        j                  «       }t        |«       t	        |Ž  Y y w xY wr   )Ú	ExceptionÚsysrG   rJ   r
   )ÚenvironÚstart_responseÚeinfoÚold_wsgi_callr0   s      €€r"   Úsentry_patched_inner_wsgi_callzgPyramidIntegration.setup_once.<locals>.sentry_patched_wsgi_call.<locals>.sentry_patched_inner_wsgi_call{   s@   ø€ ð$Ù(¨¨w¸ÓGÐGøÜ ò $ÜŸL™L›N�EÜ& uÔ-Ü˜U“Oð$ús   ƒ	 �0A ¿A )r   r5   r6   r(   r   )r0   rR   rS   r@   rA   rV   rU   s   `     €r"   Úsentry_patched_wsgi_callz?PyramidIntegration.setup_once.<locals>.sentry_patched_wsgi_callt   sU   ù€ ä—+‘+ˆCØ×-Ñ-Ô.@ÓAˆKØÐ"Ù$ T¨7°NÓCÐCõ$ð HÔ'Ð(FÓGØ˜óð r#   )r)   r3   Ú
_call_viewÚhasattrr   rE   ÚRouterÚ__call__)r3   rD   rM   rW   rC   rL   rU   s       @@@r"   Ú
setup_oncezPyramidIntegration.setup_onceF   sl   ú€ õ 	#à×)Ñ)ˆô	Eð  5ˆÔä”7Ð3Ô4Ü(/×(EÑ(EÐ%ôð -QŒGÔ)àŸ™×.Ñ.ˆô	ð( ":ˆ�‰Õr#   N)r%   )Ú__name__Ú
__module__Ú__qualname__Ú
identifierr/   r1   Ústaticmethodr\   © r#   r"   r(   r(   8   s(   „ Ø€JàÐó3ð ñA:ó ñA:r#   r(   c                 óü   — | d   �t        | d   t        «      ry t        j                  }|j	                  t
        «      €y |j                  }t        | |j                  dddœ¬«      \  }}|j                  ||¬«       y )Nr   r)   F)ÚtypeÚhandled)Úclient_optionsÚ	mechanism)Úhint)
Ú
issubclassr   r   r5   r6   r(   Úclientr	   ÚoptionsÚcapture_event)rG   r@   rj   Úeventrh   s        r"   rJ   rJ   ‹   sz   € à��{Ðœj¨°!©´mÔDØÜ
�+‰+€CØ
×ÑÔ-Ó.Ð6Øð �Z‰Z€Fä&ØØ—~‘~Ø$°Ñ7ô�K€Eˆ4ð ×Ñ�e $ÐÕ'r#   c                 ó¸   — 	 |j                   j                  |j                   j                  dœ}| j                  ||   t        |   ¬«       y # t
        $ r Y y w xY w)Nr$   )Úsource)Úmatched_routeÚnameÚpatternÚset_transaction_namer   rP   )rB   r/   r!   Úname_for_styles       r"   r8   r8   Ÿ   sg   € ð
à!×/Ñ/×4Ñ4Ø$×2Ñ2×:Ñ:ñ
ˆð 	×"Ñ"ØÐ,Ñ-Ü#Ð$5Ñ6ð 	#õ 	
øô ò Ùðús   ‚A
A Á	AÁAc                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚPyramidRequestExtractorc                 ó.   — | j                   j                  S r   )r!   Úpath_url©r0   s    r"   ÚurlzPyramidRequestExtractor.url¯   s   € à�|‰|×$Ñ$Ð$r#   c                 ó.   — | j                   j                  S r   )r!   rR   ry   s    r"   ÚenvzPyramidRequestExtractor.env³   ó   € à�|‰|×#Ñ#Ð#r#   c                 ó.   — | j                   j                  S r   )r!   Úcookiesry   s    r"   r   zPyramidRequestExtractor.cookies·   r}   r#   c                 ó.   — | j                   j                  S r   )r!   Útextry   s    r"   Úraw_dataz PyramidRequestExtractor.raw_data»   s   € à�|‰|× Ñ Ð r#   c           	      óŽ   — t        | j                  j                  «      D ��ci c]  \  }}t        |dd «      s||“Œ c}}S c c}}w ©NÚfilename©r   r!   ÚPOSTÚgetattr©r0   ÚkeyÚvalues      r"   ÚformzPyramidRequestExtractor.form¿   sG   € ô (¨¯©×(9Ñ(9Ó:÷
á��UÜ˜5 *¨dÔ3ð �‰Jó
ð 	
ùó 
ó   £Ac           	      óŽ   — t        | j                  j                  «      D ��ci c]  \  }}t        |dd «      r||“Œ c}}S c c}}w r„   r†   r‰   s      r"   ÚfileszPyramidRequestExtractor.filesÇ   sG   € ô (¨¯©×(9Ñ(9Ó:÷
á��UÜ�u˜j¨$Ô/ð �‰Jó
ð 	
ùó 
r�   c                 ó”   — |j                   }	 t        j                  |j                  «       «      j                  S # t
        $ r Y yw xY w)Nr   )ÚfileÚosÚfstatÚfilenoÚst_sizerP   )r0   Úpostdatar‘   s      r"   Úsize_of_filez$PyramidRequestExtractor.size_of_fileÏ   s=   € à�}‰}ˆð	Ü—8‘8˜DŸK™K›MÓ*×2Ñ2Ð2øÜò 	Ùð	ús   Ž,; »	AÁAN)
r]   r^   r_   rz   r|   r   r‚   rŒ   r�   r—   rb   r#   r"   rv   rv   ®   s%   „ ò%ò$ò$ò!ò
ò
ór#   rv   c                 ó   ‡ — ˆ fd„}|S )Nc                 óB  •—  ‰«       }|€| S t        «       5  t        |«      j                  | «       d d d «       t        «       rBt        «       5  | j	                  di «      }|j	                  dt        |«      «       d d d «       | S | S # 1 sw Y   ŒWxY w# 1 sw Y   | S xY w)NÚuserÚid)r   rv   Úextract_into_eventr   Ú
setdefaultr   )rm   rh   r!   Ú	user_infoÚweak_requests       €r"   Úevent_processorz._make_event_processor.<locals>.event_processorÚ   s¡   ø€ á“.ˆØˆ?ØˆLä(Ó*ñ 	GÜ# GÓ,×?Ñ?ÀÔF÷	Gô $Ô%Ü,Ó.ñ JØ!×,Ñ,¨V°RÓ8�	Ø×$Ñ$ TÔ+?ÀÓ+HÔI÷Jð ˆˆuˆ÷	Gð 	Gú÷Jð ˆús   —BÁ.BÂBÂBrb   )rŸ   rA   r    s   `  r"   r:   r:   Ø   s   ø€ ôð  Ðr#   )7Ú
__future__r   r’   rQ   r;   Úsentry_sdk.hubr   r   Úsentry_sdk.scoper   Úsentry_sdk.tracingr   Úsentry_sdk.utilsr   r	   Úsentry_sdk._compatr
   r   Úsentry_sdk.integrationsr   r   Ú$sentry_sdk.integrations._wsgi_commonr   Úsentry_sdk.integrations.wsgir   Úpyramid.httpexceptionsr   Úpyramid.requestr   ÚImportErrorÚsentry_sdk._typesr   Úpyramid.responser   Útypingr   r   r   r   r   Úwebob.cookiesr   Úwebob.compatr   r   r   rˆ   r   Úpyramid.securityr-   r(   rJ   r8   rv   r:   rb   r#   r"   ú<module>r³      sÉ   ðÝ &ã 	Û 
Û ç 8Ý "Ý /÷÷ 2ç =Ý AÝ =ð0Ý4Ý'õ ,áÝ)ÝÝ<ÝÝÝÝ,Ý-å(Ý0ñ ˆ7Ð*¨DÔ1ó,õ 6ð ;Ð ôP:˜ô P:òf(ò(ô'Ð.ô 'óTøðC ò 0Ù
Ð.Ó
/Ð/ð0ús   ÁC ÃC 