
    lh                        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 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  Z3y# e$ r	  ed
      w xY w)!    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    q/var/www/pru.catia.catastroantioquia-mas.com/tasa/lib/python3.12/site-packages/sentry_sdk/integrations/pyramid.pyr   r   +   s    +++    r   
route_nameroute_patternc                   6    e Zd ZdZde ZdZddZed        Zy)PyramidIntegrationpyramidz
auto.http. 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                  T   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                  _	        y )Nr   )routerc                 `   t        j                         j                  t              }| | |g|i |S t	        t        j
                         |j                  |       t        j                         }|j                  t        t        j                  |      |              | |g|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AABTUK"$XwHHHH,,,.0M0Mw 224E%%%gkk'&:KH !7DTDVDDr!   invoke_exception_viewc                      | g|i |}| j                   rat        | j                         rL|j                  dk(  r=t        j                         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   sk    .tEdEfE MMDMM*,"--/??@RS  't}}5	r!   c                 Z      fd}t        |t        j                        } |||      S )Nc                     	  | |      S # t         $ r* t        j                         }t        |       t	        |  Y y 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  $LLNE&u-UO$s   	 0A 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   s/    $ ...55J g~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  5734(/(E(E% -QG)..	#$6	F	7 
G	7" ":r!   N)r#   )	__name__
__module____qualname__
identifierrW   r-   r/   staticmethodr`    r!   r    r&   r&   7   s4    J*&F3 A: A:r!   r&   c                     | d   t        | d   t              ry t        | t        j                         j
                  ddd      \  }}t        j                  ||       y )Nr   r'   F)typehandled)client_options	mechanism)hint)
issubclassr   r   r3   r4   optionscapture_event)rF   eventrl   s      r    rI   rI      s[     {j!mD&!,,.66$7KE4 U.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   rO   )rA   r-   r   name_for_styles       r    r6   r6      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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           	          | j                   j                  j                         D ci c]  \  }}t        |dd       s|| c}}S c c}}w Nfilenamer   POSTitemsgetattrr.   keyvalues      r    formzPyramidRequestExtractor.form   sK     #ll//557
U5*d3 J
 	
 
   Ac           	          | j                   j                  j                         D ci c]  \  }}t        |dd       r|| c}}S c c}}w r   r   r   s      r    fileszPyramidRequestExtractor.files   sK     #ll//557
Uuj$/ J
 	
 
r   c                     |j                   }	 t        j                  |j                               j                  S # t
        $ r Y yw xY w)Nr   )fileosfstatfilenost_sizerO   )r.   postdatar   s      r    size_of_filez$PyramidRequestExtractor.size_of_file   s=    }}	88DKKM*222 		s   ,; 	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                 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	   ry   extract_into_eventr   
setdefaultr   )rp   rl   r   	user_infoweak_requests       r    pyramid_event_processorz6_make_event_processor.<locals>.pyramid_event_processor   s    .?L(* 	G#G,??F	G #$,. J!,,VR8	$$T+?+HIJ u	G 	GJ s   B.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 = 4 / 04' !)<,3(7 7*D1, 6 ; Q: Q:h .// 0/'. 'T#{  0
.
//0s   C C#