0iddlZddlZddlZddlZddlZddlmZmZddlm Z ddl m Z ddl m Z ddlmZddlmZmZmZmZ ddlmZdd lmZdd lmZer>dd lmZdd lmZddl mZddlm Z ddlm!Z!ddlm"Z"ddl#m$Z$ddl%m&Z&ddlm'Z'ddl(m)Z)m*Z*e+eddrdZ,nddl-m,Z,dZ.GddeZ/ee/dZ0dZ1Gdde Z2d Z3y#e$r ed wxYw)!N) Integration DidNotEnable)RequestExtractor)SentryWsgiMiddleware)should_send_default_pii)SOURCE_FOR_STYLE)capture_internal_exceptionsensure_integration_enabledevent_from_exceptionreraise) HTTPException)RequestzPyramid not installed) TYPE_CHECKING)Response)Any)_ScopedResponse)Callable)Dict)Optional)RequestCookies)_FieldStorageWithFile)ExcInfo)EventEventProcessorauthenticated_useridc|jSNr)requests N/opt/hc_python/lib/python3.12/site-packages/sentry_sdk/integrations/pyramid.pyrr+s+++r route_name route_patternc6eZdZdZdeZdZddZedZy)PyramidIntegrationpyramidz auto.http.cN|tvrtd|dtd||_y)Nz%Invalid value for transaction_style: z (must be in ))TRANSACTION_STYLE_VALUES ValueErrortransaction_style)selfr-s r __init__zPyramidIntegration.__init__=s. $< <$&>@ "3r!cTddlm}|jtjfd}||_t t dr t jfd}|t _|jjttfd}||j_ y)Nr)routerc`tjjt}| ||g|i|St tj |j |tj}|jttj||||g|i|Sr) sentry_sdk get_clientget_integrationr& _set_transaction_name_and_sourceget_current_scoper-get_isolation_scopeadd_event_processor_make_event_processorweakrefref)registryrargskwargs integrationscope old_call_views r sentry_patched_call_viewz?PyramidIntegration.setup_once..sentry_patched_call_viewMs%//1AABTUK"$XwHHHH ,,,. 0M0Mw 224E  % %%gkk'&:KH !7DTDVD Dr!invoke_exception_viewc|g|i|}|jrat|jrL|jdk(r=tjj t  t|j|S)Ni)exc_infoall status_intr3r4r5r&_capture_exception)r.r>r?rvold_invoke_exception_views r $sentry_patched_invoke_exception_viewzKPyramidIntegration.setup_once..sentry_patched_invoke_exception_viewcsk.tEdEfEMMDMM* ,"--/??@RS 't}}5 r!cZfd}t|tj}|||S)Nc ||S#t$r*tj}t|t |YywxYwr) ExceptionsysrFrIr )environstart_responseeinfo old_wsgi_callr.s r sentry_patched_inner_wsgi_callzgPyramidIntegration.setup_once..sentry_patched_wsgi_call..sentry_patched_inner_wsgi_callys@$(wGG $LLNE&u-UO$s 0AA) span_origin)rr&origin)r.rQrRrU middlewarerTs` r sentry_patched_wsgi_callz?PyramidIntegration.setup_once..sentry_patched_wsgi_callvs/ $...55Jg~6 6r!) r'r1 _call_view functoolswrapshasattrrrDRouter__call__r r&)r1rCrLrYrBrKrTs @@@r setup_oncezPyramidIntegration.setup_onceFs #))  ' E ( E 5 73 4(/(E(E % -QG ) .. #$6 F 7 G 7"": r!N)r#) __name__ __module__ __qualname__ identifierrWr-r/ staticmethodr`r!r r&r&7s4J* &F3A:A:r!r&c|dt|dtryt|tjj ddd\}}tj ||y)Nrr'F)typehandled)client_options mechanism)hint) issubclassr r r3r4options capture_event)rFeventrls r rIrIs[{j!mD&!,,.66$7KE4 U.r!c |jj|jjd}|j||t|y#t $rYywxYw)Nr")source) matched_routenamepatternset_transaction_namerrO)rAr-rname_for_styles r r6r6sg  !//44$22::  "" , -#$56 #     sA A AAc6eZdZdZdZdZdZdZdZdZ y) PyramidRequestExtractorc.|jjSr)rpath_urlr.s r urlzPyramidRequestExtractor.urls||$$$r!c.|jjSr)rrQr|s r envzPyramidRequestExtractor.env||###r!c.|jjSr)rcookiesr|s r rzPyramidRequestExtractor.cookiesrr!c.|jjSr)rtextr|s r raw_dataz PyramidRequestExtractor.raw_datas||   r!c |jjjDcic]\}}t|dds||c}}Scc}}wNfilenamerPOSTitemsgetattrr.keyvalues r formzPyramidRequestExtractor.formsP#ll//557 7 U5*d3 J7   Ac |jjjDcic]\}}t|ddr||c}}Scc}}wrrrs r fileszPyramidRequestExtractor.filessP#ll//557 7 Uuj$/ J7   rc|j} tj|jjS#t $rYywxYw)Nr)fileosfstatfilenost_sizerO)r.postdatars r size_of_filez$PyramidRequestExtractor.size_of_files=}} 88DKKM*22 2  s,; AAN) rarbrcr}rrrrrrrfr!r ryrys%%$$!  r!rycfd}|S)NcB}||St5t|j|dddtrBt5|j di}|j dt |ddd|S|S#1swYWxYw#1swY|SxYw)Nuserid)r ryextract_into_eventr setdefaultr)rprlr user_info weak_requests r pyramid_event_processorz6_make_event_processor..pyramid_event_processors. ?L ( * #G , ? ? F+ # $,.!,,VR8 $$T+?+HI/ u + */ sB.BBBrf)rr@rs` r r:r:s #"r!)4r[rrPr;r3sentry_sdk.integrationsrr$sentry_sdk.integrations._wsgi_commonrsentry_sdk.integrations.wsgirsentry_sdk.scopersentry_sdk.tracingrsentry_sdk.utilsr r r r pyramid.httpexceptionsr pyramid.requestr ImportErrortypingrpyramid.responserrrrrr webob.cookiesr webob.requestrrsentry_sdk._typesrrrrpyramid.securityr+r&rIr6ryr:rfr!r rs =A=4/04'!)<,3(7 7*D1, 6;Q:Q:h./ /0 /  '.'T#{0 . //0s  CC#