
    gh                        S SK r S SKrS SKrS SKrS SKrS SKJrJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJr  S SKJrJrJrJr   S SKJr  S S	KJr  S SKJr  \(       a>  S SKJr  S SKJr  S SK
Jr  S SKJ r   S SKJ!r!  S SKJ"r"  S SK#J$r$  S SK%J&r&  S SKJ'r'  S SK(J)r)J*r*  \+" \SS5      (       a  S r,OS SK-J,r,  Sr. " S S\5      r/\" \/5      S 5       r0S r1 " S S\	5      r2S  r3g! \ a	    \" S
5      ef = f)!    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_useridc                     U R                   $ Nr   )requests    b/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/sentry_sdk/integrations/pyramid.pyr   r   +   s    +++    r   
route_nameroute_patternc                   @    \ rS rSrSrS\ 3rSrS	S jr\S 5       r	Sr
g)
PyramidIntegration7   pyramidz
auto.http. c                 T    U[         ;  a  [        SU< S[         < S35      eXl        g )Nz%Invalid value for transaction_style: z (must be in ))TRANSACTION_STYLE_VALUES
ValueErrortransaction_style)selfr.   s     r    __init__PyramidIntegration.__init__=   s,    $<<$&>@  "3r!   c                  b  ^^^ SSK Jn   U R                  m[        R                  " T5      U4S j5       nXl        [        [        S5      (       a!  [        R                  mU4S jnU[        l        U R                  R                  m[        [        T5      U4S j5       nX0R                  l	        g )Nr   )routerc                 f  > [         R                  " 5       R                  [        5      nUc  T" X/UQ70 UD6$ [	        [         R
                  " 5       UR                  U5        [         R                  " 5       nUR                  [        [        R                  " U5      U5      5        T" X/UQ70 UD6$ 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)registryr   argskwargsintegrationscopeold_call_views         r    sentry_patched_call_view?PyramidIntegration.setup_once.<locals>.sentry_patched_call_viewM   s     %//1AABTUK"$XHHHH,,,.0M0Mw 224E%%%gkk'&:KH !DTDVDDr!   invoke_exception_viewc                   > T" U /UQ70 UD6nU R                   (       ai  [        U R                   5      (       aO  UR                  S:X  a?  [        R                  " 5       R                  [        5       b  [        U R                   5        U$ )Ni  )exc_infoall
status_intr5   r6   r7   r&   _capture_exception)r/   r@   rA   rvold_invoke_exception_views       r    $sentry_patched_invoke_exception_viewKPyramidIntegration.setup_once.<locals>.sentry_patched_invoke_exception_viewc   sn    .tEdEfE MMDMM**,"--/??@RS  't}}5	r!   c                 T   >^  UU 4S jn[        U[        R                  S9nU" X5      $ )Nc                    >  T" TX5      $ ! [          a+    [        R                  " 5       n[        U5        [	        U6    g f = fr   )	ExceptionsysrI   rL   r   )environstart_responseeinfoold_wsgi_callr/   s      r    sentry_patched_inner_wsgi_callgPyramidIntegration.setup_once.<locals>.sentry_patched_wsgi_call.<locals>.sentry_patched_inner_wsgi_cally   s>    $(wGG  $LLNE&u-UO$s    2A A)span_origin)r   r&   origin)r/   rU   rV   rY   
middlewarerX   s   `    r    sentry_patched_wsgi_call?PyramidIntegration.setup_once.<locals>.sentry_patched_wsgi_callv   s-    $ ...55J g66r!   )r(   r3   
_call_view	functoolswrapshasattrr   rG   Router__call__r
   r&   )r3   rE   rO   r^   rD   rN   rX   s       @@@r    
setup_oncePyramidIntegration.setup_onceF   s     	#))		'	E 
(	E  57344(/(E(E% -QG)..	#$6	F	7 
G	7" ":r!   )r.   N)r#   )__name__
__module____qualname____firstlineno__
identifierr\   r.   r0   staticmethodrf   __static_attributes__ r!   r    r&   r&   7   s4    J*&F3 A: A:r!   r&   c                     U S   b  [        U S   [        5      (       a  g [        U [        R                  " 5       R
                  SSS.S9u  p[        R                  " XS9  g )Nr   r(   F)typehandled)client_options	mechanism)hint)
issubclassr   r   r5   r6   optionscapture_event)rI   eventru   s      r    rL   rL      sZ     {j!mDD&!,,.66$7KE U.r!   c                      UR                   R                  UR                   R                  S.nU R                  X1   [        U   S9  g ! [
         a     g f = f)Nr"   )source)matched_routenamepatternset_transaction_namer   rS   )rC   r.   r   name_for_styles       r    r8   r8      sd    
!//44$22::
 	""-#$56 	# 	
  s   AA	 	
AAc                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)PyramidRequestExtractor   c                 .    U R                   R                  $ r   )r   path_urlr/   s    r    urlPyramidRequestExtractor.url   s    ||$$$r!   c                 .    U R                   R                  $ r   )r   rU   r   s    r    envPyramidRequestExtractor.env       ||###r!   c                 .    U R                   R                  $ r   )r   cookiesr   s    r    r   PyramidRequestExtractor.cookies   r   r!   c                 .    U R                   R                  $ r   )r   textr   s    r    raw_data PyramidRequestExtractor.raw_data   s    ||   r!   c           	          U R                   R                  R                  5        VVs0 s H  u  p[        USS 5      (       a  M  X_M     snn$ s  snnf Nfilenamer   POSTitemsgetattrr/   keyvalues      r    formPyramidRequestExtractor.form   sN     #ll//557
7
5*d3 CJ7
 	
 
   AAc           	          U R                   R                  R                  5        VVs0 s H  u  p[        USS 5      (       d  M  X_M     snn$ s  snnf r   r   r   s      r    filesPyramidRequestExtractor.files   sN     #ll//557
7
uj$/ CJ7
 	
 
r   c                     UR                   n [        R                  " UR                  5       5      R                  $ ! [
         a     gf = f)Nr   )fileosfstatfilenost_sizerS   )r/   postdatar   s      r    size_of_file$PyramidRequestExtractor.size_of_file   s=    }}	88DKKM*222 		s   -< 
A	A	ro   N)rh   ri   rj   rk   r   r   r   r   r   r   r   rn   ro   r!   r    r   r      s%    %$$!

r!   r   c                    ^  U 4S jnU$ )Nc                 b  > T" 5       nUc  U $ [        5          [        U5      R                  U 5        S S S 5        [        5       (       aB  [        5          U R	                  S0 5      nUR	                  S[        U5      5        S S S 5        U $ U $ ! , (       d  f       Na= f! , (       d  f       U $ = f)Nuserid)r	   r   extract_into_eventr   
setdefaultr   )ry   ru   r   	user_infoweak_requests       r    pyramid_event_processor6_make_event_processor.<locals>.pyramid_event_processor   s    .?L(*#G,??F + #$$,.!,,VR8	$$T+?+HI / u +* /. s   B.B
B
B.ro   )r   rB   r   s   `  r    r<   r<      s      #"r!   )4ra   r   rT   r=   r5   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&   rL   r8   r   r<   ro   r!   r    <module>r      s     	 
   = A = 4 / 04' !)<,3(7 7*D11, 6 ; Q: Q:h .// 0/'. 'T#{  0
.
//0s   C C.