本文整理汇总了Python中raven.utils.varmap函数的典型用法代码示例。如果您正苦于以下问题:Python varmap函数的具体用法?Python varmap怎么用?Python varmap使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了varmap函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _add_exception_info
def _add_exception_info(self, data, record):
"""Adds sentry interfaces Exception and Stacktrace.
See
http://sentry.readthedocs.org/en/latest/developer/interfaces/index.html
for more information on Sentry interfaces."""
type_, value, tb = record.exc_info
data[SENTRY_INTERFACES_EXCEPTION] = {"type": str(type_),
"value": str(value),
"module": record.module
}
stack = inspect.getinnerframes(tb)
# This next python statement copied pretty much verbatim from
# raven-python (https://github.com/getsentry/raven-python).
#
# raven-python is:
#
# Copyright (c) 2009 David Cramer and individual contributors.
# All rights reserved.
frames = varmap(
lambda k, v: shorten(
v,
string_length=self.string_max_length,
list_length=self.list_max_length),
get_stack_info(iter_stack_frames(stack)))
# end of copied code
data['sentry.interfaces.Stacktrace'] = {
'frames': frames }
return data
示例2: capture
def capture(self, exc_info=None, **kwargs):
new_exc_info = False
if not exc_info or exc_info is True:
new_exc_info = True
exc_info = sys.exc_info()
try:
exc_type, exc_value, exc_traceback = exc_info
frames = varmap(lambda k, v: shorten(v), get_stack_info(iter_traceback_frames(exc_traceback)))
culprit = get_culprit(frames, self.client.include_paths, self.client.exclude_paths)
if hasattr(exc_type, '__module__'):
exc_module = exc_type.__module__
exc_type = exc_type.__name__
else:
exc_module = None
exc_type = exc_type.__name__
finally:
if new_exc_info:
try:
del exc_info
del exc_traceback
except Exception, e:
self.logger.exception(e)
示例3: capture
def capture(self, exc_info=None, **kwargs):
new_exc_info = False
if not exc_info or exc_info is True:
new_exc_info = True
exc_info = sys.exc_info()
if not exc_info:
raise ValueError("No exception found")
try:
exc_type, exc_value, exc_traceback = exc_info
frames = varmap(
lambda k, v: shorten(
v, string_length=self.client.string_max_length, list_length=self.client.list_max_length
),
get_stack_info(
iter_traceback_frames(exc_traceback),
list_max_length=self.client.list_max_length,
string_max_length=self.client.string_max_length,
),
)
exc_module = getattr(exc_type, "__module__", None)
if exc_module:
exc_module = str(exc_module)
exc_type = getattr(exc_type, "__name__", "<unknown>")
finally:
if new_exc_info:
try:
del exc_info
del exc_traceback
except Exception, e:
self.logger.exception(e)
示例4: capture
def capture(self, exc_info=None, **kwargs):
new_exc_info = False
if not exc_info or exc_info is True:
new_exc_info = True
exc_info = sys.exc_info()
if not exc_info:
raise ValueError('No exception found')
try:
exc_type, exc_value, exc_traceback = exc_info
frames = varmap(lambda k, v: shorten(v,
string_length=self.client.string_max_length, list_length=self.client.list_max_length),
get_stack_info(iter_traceback_frames(exc_traceback)))
culprit = get_culprit(frames, self.client.include_paths, self.client.exclude_paths)
exc_module = getattr(exc_type, '__module__', None)
exc_type = getattr(exc_type, '__name__', '<unknown>')
finally:
if new_exc_info:
try:
del exc_info
del exc_traceback
except Exception, e:
self.logger.exception(e)
示例5: metlog_call
def metlog_call(self, *args, **kwargs):
if self.kwargs is None:
self.kwargs = {}
str_length = self.kwargs.pop('str_length', 200)
list_length = self.kwargs.pop('list_length', 50)
try:
result = self._fn(*args, **kwargs)
return result
except Exception, e:
exc_info = sys.exc_info()
exc_type, exc_value, exc_traceback = exc_info
frames = varmap(lambda k, v: shorten(v,
string_length=str_length,
list_length=list_length),
get_stack_info(iter_traceback_frames(exc_traceback)))
culprit = get_culprit(frames)
metlog_blob = {'culprit': culprit,
'frames': frames}
CLIENT_WRAPPER.client.metlog('stacktrace',
logger=self._fn_fq_name,
fields=metlog_blob)
# re-raise the exception so that callers up the call stack
# have a chance to do the right thing
raise
示例6: filter_stacktrace
def filter_stacktrace(self, data):
if "frames" not in data:
return
for frame in data["frames"]:
if "vars" not in frame:
continue
frame["vars"] = varmap(self.sanitize, frame["vars"])
示例7: process
def process(self, data):
super(SanitizeSecretsProcessor, self).process(data)
# sanitize anything else left unsanitized
for key in data:
if key in ('sentry.interfaces.Stacktrace',
'sentry.interfaces.Http',
'sentry.interfaces.User',
'modules'):
continue
data[key] = varmap(self.sanitize, data[key])
return data
示例8: create_from_exception
def create_from_exception(self, exc_info=None, **kwargs):
"""
Creates an event from an exception.
>>> try:
>>> exc_info = sys.exc_info()
>>> client.create_from_exception(exc_info)
>>> finally:
>>> del exc_info
If exc_info is not provided, or is set to True, then this method will
perform the ``exc_info = sys.exc_info()`` and the requisite clean-up
for you.
"""
new_exc = False
if not exc_info or exc_info is True:
new_exc = True
exc_info = sys.exc_info()
data = kwargs.pop('data', {}) or {}
try:
exc_type, exc_value, exc_traceback = exc_info
frames = varmap(shorten, get_stack_info(iter_traceback_frames(exc_traceback)))
if hasattr(exc_type, '__class__'):
exc_module = exc_type.__class__.__module__
else:
exc_module = None
data['__sentry__'] = {}
data['__sentry__']['frames'] = frames
data['__sentry__']['exception'] = [exc_module, exc_value.args]
tb_message = '\n'.join(traceback.format_exception(exc_type, exc_value, exc_traceback))
kwargs.setdefault('message', transform(force_unicode(exc_value)))
return self.process(
class_name=exc_type.__name__,
traceback=tb_message,
data=data,
**kwargs
)
finally:
# It's important that we cleanup the frames object (specifically exc_info[2])
# to ensure that GC can happen properly.
if new_exc:
try:
del exc_info
del exc_traceback
except Exception, e:
logger.exception(e)
示例9: filter_http
def filter_http(self, data):
for n in ('data', 'cookies', 'headers', 'env', 'query_string'):
if n not in data:
continue
if isinstance(data[n], basestring) and '=' in data[n]:
# at this point we've assumed it's a standard HTTP query
querystring = [c.split('=') for c in data[n].split('&')]
querystring = [(k, self.sanitize(k, v)) for k, v in querystring]
data[n] = '&'.join('='.join(k) for k in querystring)
else:
data[n] = varmap(self.sanitize, data[n])
示例10: filter_stacktrace
def filter_stacktrace(self, data):
if 'frames' not in data:
return
for frame in data['frames']:
if 'vars' not in frame:
continue
self_obj = frame['vars'].get('self', '').split(' ')[0][1:]
if (self_obj in ('netsvc.SimpleXMLRPCRequestHandler',
'netsvc.SecureXMLRPCRequestHandler',
'netsvc.LocalService')
and 'params' in frame['vars']):
if isinstance(frame['vars']['params'], tuple):
frame['vars']['params'] = list(frame['vars']['params'])
frame['vars']['params'][2] = self.MASK
else:
frame['vars'] = varmap(self.sanitize, frame['vars'])
示例11: create_from_exception
def create_from_exception(self, exc_info=None, **kwargs):
"""
Creates an event from an exception.
>>> try:
>>> exc_info = sys.exc_info()
>>> client.create_from_exception(exc_info)
>>> finally:
>>> del exc_info
"""
new_exc = bool(exc_info)
if not exc_info or exc_info is True:
exc_info = sys.exc_info()
data = kwargs.pop('data', {}) or {}
try:
exc_type, exc_value, exc_traceback = exc_info
frames = varmap(shorten, get_stack_info(iter_traceback_frames(exc_traceback)))
if hasattr(exc_type, '__class__'):
exc_module = exc_type.__class__.__module__
else:
exc_module = None
data['__sentry__'] = {}
data['__sentry__']['frames'] = frames
data['__sentry__']['exception'] = [exc_module, exc_value.args]
tb_message = '\n'.join(traceback.format_exception(exc_type, exc_value, exc_traceback))
kwargs.setdefault('message', transform(force_unicode(exc_value)))
return self.process(
class_name=exc_type.__name__,
traceback=tb_message,
data=data,
**kwargs
)
finally:
if new_exc:
try:
del exc_info
except Exception, e:
logger.exception(e)
示例12: filter_http
def filter_http(self, data):
for n in ("data", "cookies", "headers", "env", "query_string"):
if n not in data:
continue
if isinstance(data[n], six.string_types) and "=" in data[n]:
# at this point we've assumed it's a standard HTTP query
# or cookie
if n == "cookies":
delimiter = ";"
else:
delimiter = "&"
data[n] = self._sanitize_keyvals(data[n], delimiter)
else:
data[n] = varmap(self.sanitize, data[n])
if n == "headers" and "Cookie" in data[n]:
data[n]["Cookie"] = self._sanitize_keyvals(data[n]["Cookie"], ";")
示例13: filter_http
def filter_http(self, data):
for n in ('data', 'cookies', 'headers', 'env', 'query_string'):
if n not in data:
continue
if isinstance(data[n], basestring) and '=' in data[n]:
# at this point we've assumed it's a standard HTTP query
querybits = []
for bit in data[n].split('&'):
chunk = bit.split('=')
if len(chunk) == 2:
querybits.append((chunk[0], self.sanitize(*chunk)))
else:
querybits.append(chunk)
data[n] = '&'.join('='.join(k) for k in querybits)
else:
data[n] = varmap(self.sanitize, data[n])
示例14: filter_http
def filter_http(self, data):
for n in ("data", "cookies", "headers", "env", "query_string"):
if n not in data:
continue
if isinstance(data[n], six.string_types) and "=" in data[n]:
# at this point we've assumed it's a standard HTTP query
querybits = []
for bit in data[n].split("&"):
chunk = bit.split("=")
if len(chunk) == 2:
querybits.append((chunk[0], self.sanitize(*chunk)))
else:
querybits.append(chunk)
data[n] = "&".join("=".join(k) for k in querybits)
else:
data[n] = varmap(self.sanitize, data[n])
示例15: filter_http
def filter_http(self, data):
for n in ('data', 'cookies', 'headers', 'env', 'query_string'):
if n not in data:
continue
if isinstance(data[n], six.string_types) and '=' in data[n]:
# at this point we've assumed it's a standard HTTP query
# or cookie
if n == 'cookies':
delimiter = ';'
else:
delimiter = '&'
data[n] = self._sanitize_keyvals(data[n], delimiter)
else:
data[n] = varmap(self.sanitize, data[n])
if n == 'headers' and 'Cookie' in data[n]:
data[n]['Cookie'] = self._sanitize_keyvals(
data[n]['Cookie'], ';'
)