
    fi                        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 Z,nd dl-m,Z, dZ. G d de          Z/ ee/          d             Z0d Z1 G d de	          Z2d  Z3dS )!    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                     | j         S Nr   )requests    o/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/sentry_sdk/integrations/pyramid.pyr   r   +   s    ++    r   
route_nameroute_patternc                   >    e Zd ZdZde ZdZddZed             ZdS )	PyramidIntegrationpyramidz
auto.http. r#   c                 \    |t           vrt          d|dt           d          || _        d S )Nz%Invalid value for transaction_style: z (must be in ))TRANSACTION_STYLE_VALUES
ValueErrortransaction_style)selfr-   s     r    __init__zPyramidIntegration.__init__=   sJ    $<<<*$$$&>&>&>@   "3r!   c                  F   ddl m}  | j        t          j                  fd            }|| _        t          t          d          rt          j        fd}|t          _        | j        j	        t          t                    fd            }|| j        _	        d S )Nr   )routerc                 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)registryr   argskwargsintegrationscopeold_call_views         r    sentry_patched_call_viewz?PyramidIntegration.setup_once.<locals>.sentry_patched_call_viewM   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_viewc                      | g|R i |}| j         r_t          | j                   rK|j        dk    r@t          j                                        t                    	 t          | j                    |S )Ni  )exc_infoall
status_intr3   r4   r5   r&   _capture_exception)r.   r>   r?   rvold_invoke_exception_views       r    $sentry_patched_invoke_exception_viewzKPyramidIntegration.setup_once.<locals>.sentry_patched_invoke_exception_viewc   s    ..tEdEEEfEE M6DM**6 ,,"-//??@RSS  't}555	r!   c                 `      fd}t          |t          j                  } |||          S )Nc                     	  | |          S # t           $ r/ t          j                    }t          |           t	          |  Y d S w xY wr   )	ExceptionsysrF   rI   r   )environstart_responseeinfoold_wsgi_callr.   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)r   r&   origin)r.   rQ   rR   rU   
middlewarerT   s   `    r    sentry_patched_wsgi_callz?PyramidIntegration.setup_once.<locals>.sentry_patched_wsgi_callv   sU    $ $ $ $ $ $ ...5  J :g~666r!   )r'   r1   
_call_view	functoolswrapshasattrr   rD   Router__call__r
   r&   )r1   rC   rL   rY   rB   rK   rT   s       @@@r    
setup_oncezPyramidIntegration.setup_onceF   s     	#""""")		'	'	E 	E 	E 	E 
(	'	E  57344 	Q(/(E%     -QG).	#$6	F	F	7 	7 	7 	7 
G	F	7" ":r!   N)r#   )	__name__
__module____qualname__
identifierrW   r-   r/   staticmethodr`    r!   r    r&   r&   7   s`        J&*&&F3 3 3 3 A: A: \A: A: A:r!   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   r3   r4   optionscapture_event)rF   eventrl   s      r    rI   rI      sy     {j!mDD&!,..6$77  KE4 U......r!   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   rO   )rA   r-   r   name_for_styles       r    r6   r6      s    
!/4$2:
 
 	"",-#$56 	# 	
 	
 	
 	
 	
    s   AA 
AAc                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	PyramidRequestExtractorc                     | j         j        S r   )r   path_urlr.   s    r    urlzPyramidRequestExtractor.url   s    |$$r!   c                     | j         j        S r   )r   rQ   r|   s    r    envzPyramidRequestExtractor.env       |##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!   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!   c                     |j         }	 t          j        |                                          j        S # t
          $ r Y dS w xY w)Nr   )fileosfstatfilenost_sizerO   )r.   postdatar   s      r    size_of_filez$PyramidRequestExtractor.size_of_file   sK    }	8DKKMM**22 	 	 	11	s   *4 
AAN)
ra   rb   rc   r}   r   r   r   r   r   r   rf   r!   r    ry   ry      s}        % % %$ $ $$ $ $! ! !
 
 

 
 
    r!   ry   c                       fd}|S )Nc                                 }|| 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	   ry   extract_into_eventr   
setdefaultr   )rp   rl   r   	user_infoweak_requests       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>rf   )r   r@   r   s   `  r    r:   r:      s$          #"r!   )4r[   r   rP   r;   r3   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&   rI   r6   ry   r:   rf   r!   r    <module>r      s       				 



      = = = = = = = = 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 ; Q: Q: Q: Q: Q: Q: Q: Q:h ./// / 0//  ' ' ' ' '. ' ' 'T# # # # #s   A A 