bgddlmZddlmZddlmZmZddlmZm Z ddl m Z ddl m Z ddlmZddlmZdd lmZmZmZer dd lmZmZmZmZdd lmZdd l mZdd lmZmZ ddl Z n #e!$rdZ YnwxYw ddl"m#Z#m$Z$ddl"m%Z&ddl"m'Z(ddl)m*Z*m+Z+m,Z,ddl-m.Z.n#e!$r edwxYw ddl/Z/n#e!$r edwxYwdZ0Gdde Z1dZ2dZ3dZ4Gdde Z5dZ6dZ7d Z8dS)!)absolute_import) TYPE_CHECKING)Hub_should_send_default_pii) DidNotEnable Integration)RequestExtractor)SentryWsgiMiddleware)Scope)SOURCE_FOR_STYLE)capture_internal_exceptionsevent_from_exception parse_version)AnyCallableDictUnion)EventProcessor)_ScopedResponse) FileStorageImmutableMultiDictN)FlaskRequest) __version__)request)before_render_templategot_request_exceptionrequest_started)MarkupzFlask is not installedzblinker is not installed)endpointurlc4eZdZdZdZddZedZdS)FlaskIntegrationflaskr c\|tvrtd|dtd||_dS)Nz%Invalid value for transaction_style: z (must be in ))TRANSACTION_STYLE_VALUES ValueErrortransaction_style)selfr*s T/opt/cloudlinux/venv/lib64/python3.11/site-packages/sentry_sdk/integrations/flask.py__init__zFlaskIntegration.__init__7sJ $< < <*$$$&>&>&>@ "3c|tt}|'tdt|dkrtdt jt tjttjttj fd}|t_ dS)NzUnparsable Flask version: {})r z Flask 0.10 or newer is required.ctjt ||St fd||S)Ncg|Ri|SN)akwold_appr+s r,zNFlaskIntegration.setup_once..sentry_patched_wsgi_app..Ws!9P9P9P9PR9P9Pr.)rcurrentget_integrationr#r )r+environstart_responser7s` r,sentry_patched_wsgi_appz.sentry_patched_wsgi_appRs^{**+;<<DwtWn===Q'(P(P(P(P(PQQ r.) r FLASK_VERSIONrformatrconnect_add_sentry_tracer_request_startedr_capture_exceptionr__call__)versionr=r7s @r, setup_oncezFlaskIntegration.setup_once@s .. ?=DD]SSTT T W  ABB B&'8999 0111%&8999.     1r.N)r )__name__ __module__ __qualname__ identifierr*r- staticmethodrFr4r.r,r#r#2sNJ333311\111r.r#c d|vrdStj}t|}||d<||d<dS)N sentry_tracesentry_trace_meta)rr9rtrace_propagation_meta)sendertemplatecontextextrahub trace_metas r,rArA^sM   +C224455J(GN#-G    r.c |jj|jjd}|||t|dS#t $rYdSwxYw)N)r!r )source)url_ruleruler set_transaction_namer Exception)scoper*rname_for_styles r, _set_transaction_name_and_sourcer^is  #((1   "" , -#$56 #           sAA AAc Rtj}|t}|dS|5}t j}t||j|t|||}| |ddddS#1swxYwYdSr3) rr9r:r#configure_scope flask_request_get_current_objectr^r*_make_request_event_processoradd_event_processor)appkwargsrT integrationr\r evt_processors r,rBrBxs +C%%&677K    1% 355( 0MwWWW5c7KPP  !!-000 111111111111111111sABB #B c>eZdZdZdZdZdZdZdZdZ dZ d S) FlaskRequestExtractorc|jjSr3)rr;r+s r,envzFlaskRequestExtractor.env |##r.cRd|jjDS)Nczi|]8\}}|t|trt|dkr|dn|9S)r) isinstancelistlen).0kvs r, z1FlaskRequestExtractor.cookies..sS   1 z!T**As1vv{{qtt   r.)rcookiesitemsrls r,ryzFlaskRequestExtractor.cookiess4   ,2244    r.c4|jSr3)rget_datarls r,raw_datazFlaskRequestExtractor.raw_datas|$$&&&r.c|jjSr3)rformrls r,rzFlaskRequestExtractor.forms |  r.c|jjSr3)rfilesrls r,rzFlaskRequestExtractor.filess |!!r.c|jjSr3)ris_jsonrls r,rzFlaskRequestExtractor.is_jsonrnr.c8|jdS)NT)silent)rget_jsonrls r,jsonzFlaskRequestExtractor.jsons|$$D$111r.c|jSr3)content_length)r+files r, size_of_filez"FlaskRequestExtractor.size_of_files ""r.N) rGrHrIrmryr}rrrrrr4r.r,rjrjs$$$   '''!!!"""$$$222#####r.rjcfd}|S)Nc&|St5t|dddn #1swxYwYtr5t5t |dddn #1swxYwY|Sr3)r rjextract_into_eventr_add_user_to_event)eventhintrs r,innerz,_make_request_event_processor..inners# ?L ( * * E E !' * * = =e D D D E E E E E E E E E E E E E E E $ % % *,.. * *"5))) * * * * * * * * * * * * * * * s##AA A*BB  B r4)rerrgrs ` r,rcrcs#$ Lr.c tj}|tdS|j}t ||jddd\}}|||dS)Nr$F)typehandled)client_options mechanism)r)rr9r:r#clientroptions capture_event)rP exceptionrfrTrrrs r,rCrCsx +C +,,4ZF&~"u55KE4 e$'''''r.ctdStj}|dSt5|di} |d|n#t $rYnwxYw |d|jn#t$rYnwxYw |d|jn#t$rYnwxYwddddS#1swxYwYdS)Nuseridemailusername) flask_login current_userr setdefaultget_idAttributeErrorrr[r)rr user_infos r,rrsn  #D | $ & &$$VR00    t{{}} 5 5 5 5    D     $* 5 5 5 5    D    T] ; ; ; ;    D =s}C (A)(C ) A63C 5A66C :BC  B# C "B##C 'CC  C C CC  C$'C$)9 __future__rsentry_sdk._typesrsentry_sdk.hubrrsentry_sdk.integrationsrr$sentry_sdk.integrations._wsgi_commonr sentry_sdk.integrations.wsgir sentry_sdk.scoper sentry_sdk.tracingr sentry_sdk.utilsr rrtypingrrrrrrwerkzeug.datastructuresrrr ImportErrorr$rrrr>rra flask.signalsrrr markupsaferblinkerr(r#rAr^rBrjrcrCrr4r.r,rs+&&&&&&++++++88888888========AAAAAA======""""""////// H111111111111000000<<<<<<GGGGGGGGKKK 1$$$$$$$$222222...... "!!!!!!111 ,/ 0 0013NNNN333 ,1 2 223/)1)1)1)1)1{)1)1)1X...     1 1 1 "#"#"#"#"#,"#"#"#J0((($(((((s*"A''A10A15$BB+/B44C