
    tni(                        d dl Z d dl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 d dlmZ d dlmZmZ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 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)m*Z*  e+edd          rd.dZ,nd dl-m,Z, dZ. G d de          Z/ ee/          d/d"            Z0d#d$d%e1ddddfd&Z2 G d' d(e	          Z3	 	 	 	 	 	 d0d-Z4dS )1    N)IntegrationDidNotEnable)RequestExtractor)SentryWsgiMiddleware)should_send_default_pii)SOURCE_FOR_STYLE)capture_internal_exceptionsensure_integration_enabledevent_from_exceptionreraise)HTTPException)RequestzPyramid not installed)TYPE_CHECKING)Response)Any)_ScopedResponse)Callable)Dict)Optional)RequestCookies)_FieldStorageWithFile)ExcInfo)EventEventProcessorauthenticated_useridrequestr   returnOptional[Any]c                     | j         S Nr   )r   s    \/var/www/html/gpu-tools/venv/lib/python3.11/site-packages/sentry_sdk/integrations/pyramid.pyr   r   +   s    ++    r!   
route_nameroute_patternc                   J    e Zd ZdZde ZdZd
deddfdZedd	            Z	dS )PyramidIntegrationpyramidz
auto.http. r%   transaction_styler   Nc                 \    |t           vrt          d|dt           d          || _        d S )Nz%Invalid value for transaction_style: z (must be in ))TRANSACTION_STYLE_VALUES
ValueErrorr+   )selfr+   s     r"   __init__zPyramidIntegration.__init__<   sJ    $<<<*$$$&>&>&>@   "3r#   c                     ddl m}  | j        t          j                  	 	 	 	 	 	 	 	 	 	 dfd            }|| _        t          t          d          r&t          j        	 	 	 	 	 	 	 	 dfd}|t          _        | j        j	        t          t                    	 	 	 	 	 	 	 	 dfd            }|| j        _	        d S )Nr   )routerregistryr   r   r   argskwargsr   r   c                 p   t          j                                        t                    }| | |g|R i |S t	          t          j                    |j        |           t          j                    }|                    t          t          j        |          |                      | |g|R i |S r    )
sentry_sdk
get_clientget_integrationr(    _set_transaction_name_and_sourceget_current_scoper+   get_isolation_scopeadd_event_processor_make_event_processorweakrefref)r4   r   r5   r6   integrationscopeold_call_views         r"   sentry_patched_call_viewz?PyramidIntegration.setup_once.<locals>.sentry_patched_call_viewJ   s     %/11AABTUUK"$}XwHHHHHHH,,..0Mw   244E%%%gk'&:&:KHH   !=7DTDDDVDDDr#   invoke_exception_viewr0   c                      | g|R i |}| j         r_t          | j                   rK|j        dk    r@t          j                                        t                    	 t          | j                    |S )Ni  )exc_infoall
status_intr8   r9   r:   r(   _capture_exception)r0   r5   r6   rvold_invoke_exception_views       r"   $sentry_patched_invoke_exception_viewzKPyramidIntegration.setup_once.<locals>.sentry_patched_invoke_exception_viewa   s     /.tEdEEEfEE M6DM**6 ,,"-//??@RSS  't}555	r#   environDict[str, str]start_responseCallable[..., Any]r   c                 n     	 	 	 	 	 	 d	 fd}t          |t          j                  } |||          S )
NrO   Dict[str, Any]rQ   rR   r   r   c                     	  | |          S # t           $ r/ t          j                    }t          |           t	          |  Y d S w xY wr    )	ExceptionsysrH   rK   r   )rO   rQ   einfoold_wsgi_callr0   s      r"   sentry_patched_inner_wsgi_callzgPyramidIntegration.setup_once.<locals>.sentry_patched_wsgi_call.<locals>.sentry_patched_inner_wsgi_cally   s_    $(=wGGG  $ $ $LNNE&u---UOOOOO$s    5A	A	)span_origin)rO   rT   rQ   rR   r   r   )r   r(   origin)r0   rO   rQ   rZ   
middlewarerY   s   `    r"   sentry_patched_wsgi_callz?PyramidIntegration.setup_once.<locals>.sentry_patched_wsgi_callu   sr    $)$;O$$ $ $ $ $ $ $ ...5  J :g~666r#   )
r4   r   r   r   r5   r   r6   r   r   r   )r0   r   r5   r   r6   r   r   r   )r0   r   rO   rP   rQ   rR   r   r   )r)   r3   
_call_view	functoolswrapshasattrr   rF   Router__call__r
   r(   )r3   rE   rN   r^   rD   rM   rY   s       @@@r"   
setup_oncezPyramidIntegration.setup_onceD   sf   """""")		'	'	E	E&/	E8=	EIN	E	E 	E 	E 	E 	E 
(	'	E" 57344 	Q(/(E%(-9>       -QG).	#$6	F	F	7	7"2	7DX	7	7 	7 	7 	7 	7 
G	F	7& ":r#   )r%   )r   N)
__name__
__module____qualname__
identifierr\   r+   strr1   staticmethodre    r#   r"   r(   r(   6   sy        J&*&&F3 3# 3 3 3 3 3 D: D: D: \D: D: D:r#   r(   rH   r   c                     | d         t          | d         t                    rd S t          | t          j                    j        ddd          \  }}t          j        ||           d S )Nr   r)   F)typehandled)client_options	mechanism)hint)
issubclassr   r   r8   r9   optionscapture_event)rH   eventrr   s      r"   rK   rK      sw    {j!mDD&!,..6$77  KE4 U......r#   rC   zsentry_sdk.Scoper+   c                     	 |j         j        |j         j        d}|                     ||         t          |                    d S # t
          $ r Y d S w xY w)Nr$   )source)matched_routenamepatternset_transaction_namer   rV   )rC   r+   r   name_for_styles       r"   r;   r;      s    
!/4$2:
 
 	"",-#$56 	# 	
 	
 	
 	
 	
    s   AA 
AAc                   V    e Zd ZdefdZddZddZdefdZddZdd
Z	ddde
fdZdS )PyramidRequestExtractorr   c                     | j         j        S r    )r   path_urlr0   s    r"   urlzPyramidRequestExtractor.url   s    |$$r#   rP   c                     | j         j        S r    )r   rO   r   s    r"   envzPyramidRequestExtractor.env       |##r#   r   c                     | j         j        S r    )r   cookiesr   s    r"   r   zPyramidRequestExtractor.cookies   r   r#   c                     | j         j        S r    )r   textr   s    r"   raw_dataz PyramidRequestExtractor.raw_data   s    |  r#   c                 R    d | j         j                                        D             S )Nc                 <    i | ]\  }}t          |d d          ||S filenameNgetattr.0keyvalues      r"   
<dictcomp>z0PyramidRequestExtractor.form.<locals>.<dictcomp>   s@     
 
 
U5*d33

 
 
r#   r   POSTitemsr   s    r"   formzPyramidRequestExtractor.form   4    
 
"l/5577
 
 
 	
r#    Dict[str, _FieldStorageWithFile]c                 R    d | j         j                                        D             S )Nc                 <    i | ]\  }}t          |d d          ||S r   r   r   s      r"   r   z1PyramidRequestExtractor.files.<locals>.<dictcomp>   s@     
 
 
Uuj$//

 
 
r#   r   r   s    r"   fileszPyramidRequestExtractor.files   r   r#   postdatar   c                     |j         }	 t          j        |                                          j        S # t
          $ r Y dS w xY w)Nr   )fileosfstatfilenost_sizerV   )r0   r   r   s      r"   size_of_filez$PyramidRequestExtractor.size_of_file   sK    }	8DKKMM**22 	 	 	11	s   *4 
AAN)r   rP   )r   r   )r   r   )rf   rg   rh   rj   r   r   r   r   r   r   intr   rl   r#   r"   r   r      s        %S % % % %$ $ $ $$ $ $ $!# ! ! ! !
 
 
 

 
 
 
%<       r#   r   weak_requestCallable[[], Request]rB   r   c                      d fd}|S )Nrv   r   rr   rT   r   c                                 }|| S t                      5  t          |                              |            d d d            n# 1 swxY w Y   t                      r_t                      5  |                     di           }|                    dt          |                     d d d            n# 1 swxY w Y   | S )Nuserid)r	   r   extract_into_eventr   
setdefaultr   )rv   rr   r   	user_infor   s       r"   pyramid_event_processorz6_make_event_processor.<locals>.pyramid_event_processor   sd   ,..?L(** 	G 	G#G,,??FFF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G #$$ 	J,.. J J!,,VR88	$$T+?+H+HIIIJ J J J J J J J J J J J J J J s#   #AAA4:B::B>B>)rv   r   rr   rT   r   r   rl   )r   rB   r   s   `  r"   r?   r?      s)          #"r#   )r   r   r   r   )rH   r   r   N)r   r   rB   r(   r   r   )5r`   r   rW   r@   r8   sentry_sdk.integrationsr   r   $sentry_sdk.integrations._wsgi_commonr   sentry_sdk.integrations.wsgir   sentry_sdk.scoper   sentry_sdk.tracingr   sentry_sdk.utilsr	   r
   r   r   pyramid.httpexceptionsr   pyramid.requestr   ImportErrortypingr   pyramid.responser   r   r   r   r   r   webob.cookiesr   webob.requestr   r   sentry_sdk._typesr   r   r   r   pyramid.securityr.   r(   rK   rj   r;   r   r?   rl   r#   r"   <module>r      sF       				 



      = = = = = = = = A A A A A A = = = = = = 4 4 4 4 4 4 / / / / / /           0444444''''''' 0 0 0
,.
/
//0 !           8))))))<<<<<<,,,,,,333333((((((77777777 77*D11 6, , , , ,
 655555 ; S: S: S: S: S: S: S: S:l .//
/ 
/ 
/ 0/
/25@I	             .      F#)#8L## # # # # #s   A A 