eN~lFdZddlmZddlZddlmZGddeZdS)z raven.contrib.zerorpc ~~~~~~~~~~~~~~~~~~~~~ :copyright: (c) 2010-2013 by the Sentry Team, see AUTHORS for more details. :license: BSD, see LICENSE for more details. )absolute_importN)Clientc eZdZdZddZdZdS)SentryMiddlewarealSentry/Raven middleware for ZeroRPC. >>> import zerorpc >>> from raven.contrib.zerorpc import SentryMiddleware >>> sentry = SentryMiddleware(dsn='udp://..../') >>> zerorpc.Context.get_instance().register_middleware(sentry) Exceptions detected server-side in ZeroRPC will be submitted to Sentry (and propagated to the client as well). TNc :|p tdi||_||_dS)a Create a middleware object that can be injected in a ZeroRPC server. - hide_zerorpc_frames: modify the exception stacktrace to remove the internal zerorpc frames (True by default to make the stacktrace as readable as possible); - client: use an existing raven.Client object, otherwise one will be instantiated from the keyword arguments. N)r_sentry_client_hide_zerorpc_frames)selfhide_zerorpc_framesclientkwargss p/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/raven/contrib/zerorpc/__init__.py__init__zSentryMiddleware.__init__s-%8(8(8(8(8$7!!!c|jrO|d}|rE|j}d|jd<tj|}|jdks |jdkrn |j}|E|j||dS)zU Called when an exception has been raised in the code run by ZeroRPC T__traceback_hide____call__ _receiver)extraN) r tb_framef_localsinspect getframeinfofunctiontb_nextr captureException)r req_event rep_eventtask_ctxexc_info traceback zerorpc_frame frame_infos rserver_inspect_exceptionz)SentryMiddleware.server_inspect_exception(s  $ .  I . ) 2 ?C &';<$1-@@ &*44%.+==%-  . ,,  -     r)TN)__name__ __module__ __qualname____doc__rr&rrrrrsA   8 8 8 8     rr)r* __future__rr raven.baserobjectrrrrr.sr'&&&&&6 6 6 6 6 v6 6 6 6 6 r