本文整理汇总了Python中raven.utils.encoding.shorten函数的典型用法代码示例。如果您正苦于以下问题:Python shorten函数的具体用法?Python shorten怎么用?Python shorten使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了shorten函数的17个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_shorten_string
def test_shorten_string(self):
result = shorten('hello world!', string_length=5)
self.assertEquals(len(result), 8)
self.assertEquals(result, 'hello...')
# Don't shorten on string_length of 0
result = shorten('hello world!', string_length=0)
self.assertEquals(result, 'hello world!')
开发者ID:maykinmedia,项目名称:raven,代码行数:8,代码来源:tests.py
示例2: test_shorten_lists
def test_shorten_lists(self):
result = shorten(range(500), list_length=50)
self.assertEquals(len(result), 52)
self.assertEquals(result[-2], '...')
self.assertEquals(result[-1], '(450 more elements)')
# Don't shorten on list_length of 0
result = shorten(range(500), list_length=0)
self.assertEquals(len(result), 500)
开发者ID:maykinmedia,项目名称:raven,代码行数:9,代码来源:tests.py
示例3: 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
开发者ID:crankycoder,项目名称:metlog-raven,代码行数:30,代码来源:raven_plugin.py
示例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),
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)
开发者ID:huoxudong125,项目名称:socorro,代码行数:34,代码来源:events.py
示例5: 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)
开发者ID:AstromechZA,项目名称:raven-python,代码行数:27,代码来源:events.py
示例6: 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)
开发者ID:Ender27182818,项目名称:raven,代码行数:26,代码来源:events.py
示例7: _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
开发者ID:ronaldevers,项目名称:snitch,代码行数:34,代码来源:log2json.py
示例8: 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 as e:
self.logger.exception(e)
return {
'level': logging.ERROR,
'sentry.interfaces.Exception': {
'value': to_unicode(exc_value),
'type': str(exc_type),
'module': exc_module,
},
'sentry.interfaces.Stacktrace': {
'frames': frames
},
}
开发者ID:MyCollege,项目名称:raven,代码行数:41,代码来源:events.py
示例9: metlog_exceptor
def metlog_exceptor(self, logger=default_str_length, msg=default_msg,
str_length=default_str_length,
list_length=default_list_length,
exc_info=None):
if exc_info is None:
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}
self.metlog(type='stacktrace',
logger=logger,
fields=metlog_blob)
开发者ID:crankycoder,项目名称:metlog-raven,代码行数:22,代码来源:raven_plugin.py
示例10: _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, _ = record.exc_info
data[SENTRY_INTERFACES_EXCEPTION] = {"type": str(type_),
"value": str(value),
"module": record.module
}
# 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()))
# end of copied code
# filter out unwanted frames..
# don't know how to do this earlier, so we just do a
# post-processing step and filter out unwanted frames
frames = [frame for frame in frames
if frame['module'] not in self.EXCLUDE_MODULES]
data['sentry.interfaces.Stacktrace'] = {
'frames': frames }
return data
开发者ID:jakm,项目名称:snitch,代码行数:37,代码来源:log2json.py
示例11: test_shorten_tuple
def test_shorten_tuple(self):
result = shorten(tuple(range(500)), list_length=50)
self.assertEquals(len(result), 52)
self.assertEquals(result[-2], '...')
self.assertEquals(result[-1], '(450 more elements)')
开发者ID:Lothiraldan,项目名称:raven,代码行数:5,代码来源:tests.py
示例12: test_shorten_string
def test_shorten_string(self):
result = shorten("hello world!", string_length=5)
self.assertEquals(len(result), 8)
self.assertEquals(result, "hello...")
开发者ID:Kronuz,项目名称:raven,代码行数:4,代码来源:tests.py
示例13: capture
def capture(self, event_type, data=None, date=None, time_spent=None, event_id=None,
extra=None, stack=None, **kwargs):
"""
Captures and processes an event and pipes it off to SentryClient.send.
To use structured data (interfaces) with capture:
>>> capture('Message', message='foo', data={
>>> 'sentry.interfaces.Http': {
>>> 'url': '...',
>>> 'data': {},
>>> 'query_string': '...',
>>> 'method': 'POST',
>>> },
>>> 'logger': 'logger.name',
>>> 'site': 'site.name',
>>> }, extra={
>>> 'key': 'value',
>>> })
The finalized ``data`` structure contains the following (some optional) builtin values:
>>> {
>>> # the culprit and version information
>>> 'culprit': 'full.module.name', # or /arbitrary/path
>>>
>>> # all detectable installed modules
>>> 'modules': {
>>> 'full.module.name': 'version string',
>>> },
>>>
>>> # arbitrary data provided by user
>>> 'extra': {
>>> 'key': 'value',
>>> }
>>> }
:param event_type: the module path to the Event class. Builtins can use shorthand class
notation and exclude the full module path.
:param data: the data base, useful for specifying structured data interfaces. Any key which contains a '.'
will be assumed to be a data interface.
:param date: the datetime of this event
:param time_spent: a float value representing the duration of the event
:param event_id: a 32-length unique string identifying this event
:param extra: a dictionary of additional standard metadata
:param culprit: a string representing the cause of this event (generally a path to a function)
:return: a 32-length string identifying this event
"""
if data is None:
data = {}
if extra is None:
extra = {}
if not date:
date = datetime.datetime.utcnow()
if stack is None:
stack = self.auto_log_stacks
if '.' not in event_type:
# Assume it's a builtin
event_type = 'raven.events.%s' % event_type
handler = self.get_handler(event_type)
result = handler.capture(**kwargs)
# data (explicit) culprit takes over auto event detection
culprit = result.pop('culprit', None)
if data.get('culprit'):
culprit = data['culprit']
for k, v in result.iteritems():
if k not in data:
data[k] = v
if stack and 'sentry.interfaces.Stacktrace' not in data:
if stack is True:
frames = iter_stack_frames()
else:
frames = stack
data.update({
'sentry.interfaces.Stacktrace': {
'frames': varmap(lambda k, v: shorten(v,
string_length=self.string_max_length, list_length=self.list_max_length),
get_stack_info(frames))
},
})
if 'sentry.interfaces.Stacktrace' in data and not culprit:
culprit = get_culprit(data['sentry.interfaces.Stacktrace']['frames'], self.include_paths, self.exclude_paths)
if not data.get('level'):
data['level'] = logging.ERROR
data['modules'] = get_versions(self.include_paths)
data['server_name'] = self.name
data.setdefault('extra', {})
data.setdefault('level', logging.ERROR)
# Shorten lists/strings
for k, v in extra.iteritems():
#.........这里部分代码省略.........
开发者ID:andymccurdy,项目名称:raven,代码行数:101,代码来源:base.py
示例14: test_shorten_frozenset
def test_shorten_frozenset(self):
result = shorten(frozenset(range(500)), list_length=50)
self.assertEquals(len(result), 52)
self.assertEquals(result[-2], "...")
self.assertEquals(result[-1], "(450 more elements)")
开发者ID:Kronuz,项目名称:raven,代码行数:5,代码来源:tests.py
示例15: build_msg
def build_msg(
self, event_type, data=None, date=None, time_spent=None, extra=None, stack=None, public_key=None, **kwargs
):
"""
Captures, processes and serializes an event into a dict object
"""
# create ID client-side so that it can be passed to application
event_id = uuid.uuid4().hex
if data is None:
data = {}
if extra is None:
extra = {}
if not date:
date = datetime.datetime.utcnow()
if stack is None:
stack = self.auto_log_stacks
if "." not in event_type:
# Assume it's a builtin
event_type = "raven.events.%s" % event_type
handler = self.get_handler(event_type)
result = handler.capture(**kwargs)
# data (explicit) culprit takes over auto event detection
culprit = result.pop("culprit", None)
if data.get("culprit"):
culprit = data["culprit"]
for k, v in result.iteritems():
if k not in data:
data[k] = v
if stack and "sentry.interfaces.Stacktrace" not in data:
if stack is True:
frames = iter_stack_frames()
else:
frames = stack
data.update(
{
"sentry.interfaces.Stacktrace": {
"frames": varmap(
lambda k, v: shorten(
v, string_length=self.string_max_length, list_length=self.list_max_length
),
get_stack_info(frames),
)
}
}
)
if "sentry.interfaces.Stacktrace" in data and not culprit:
culprit = get_culprit(
data["sentry.interfaces.Stacktrace"]["frames"], self.include_paths, self.exclude_paths
)
if not data.get("level"):
data["level"] = logging.ERROR
data["modules"] = get_versions(self.include_paths)
data["server_name"] = self.name
data.setdefault("extra", {})
data.setdefault("level", logging.ERROR)
# Shorten lists/strings
for k, v in extra.iteritems():
data["extra"][k] = shorten(v, string_length=self.string_max_length, list_length=self.list_max_length)
if culprit:
data["culprit"] = culprit
if "checksum" not in data:
checksum_bits = handler.get_hash(data)
else:
checksum_bits = data["checksum"]
if isinstance(checksum_bits, (list, tuple)):
checksum = hashlib.md5()
for bit in checksum_bits:
checksum.update(to_string(bit))
checksum = checksum.hexdigest()
else:
checksum = checksum_bits
data["checksum"] = checksum
# Run the data through processors
for processor in self.get_processors():
data.update(processor.process(data))
# Make sure all data is coerced
data = transform(data)
if "message" not in data:
data["message"] = handler.to_string(data)
data.update({"timestamp": date, "time_spent": time_spent, "event_id": event_id})
#.........这里部分代码省略.........
开发者ID:moefang,项目名称:nacelle,代码行数:101,代码来源:base.py
示例16: build_msg
def build_msg(self, event_type, data=None, date=None,
time_spent=None, extra=None, stack=None, public_key=None,
tags=None, **kwargs):
"""
Captures, processes and serializes an event into a dict object
"""
# create ID client-side so that it can be passed to application
event_id = uuid.uuid4().hex
if data is None:
data = {}
if extra is None:
extra = {}
if not date:
date = datetime.datetime.utcnow()
if stack is None:
stack = self.auto_log_stacks
if '.' not in event_type:
# Assume it's a builtin
event_type = 'raven.events.%s' % event_type
handler = self.get_handler(event_type)
result = handler.capture(**kwargs)
# data (explicit) culprit takes over auto event detection
culprit = result.pop('culprit', None)
if data.get('culprit'):
culprit = data['culprit']
for k, v in result.iteritems():
if k not in data:
data[k] = v
if stack and 'sentry.interfaces.Stacktrace' not in data:
if stack is True:
frames = iter_stack_frames()
else:
frames = stack
data.update({
'sentry.interfaces.Stacktrace': {
'frames': varmap(lambda k, v: shorten(v,
string_length=self.string_max_length,
list_length=self.list_max_length),
get_stack_info(frames))
},
})
if 'sentry.interfaces.Stacktrace' in data and not culprit:
culprit = get_culprit(
data['sentry.interfaces.Stacktrace']['frames'],
self.include_paths, self.exclude_paths
)
if not data.get('level'):
data['level'] = kwargs.get('level') or logging.ERROR
data['modules'] = get_versions(self.include_paths)
data['server_name'] = self.name
data['tags'] = tags
data.setdefault('extra', {})
data.setdefault('level', logging.ERROR)
# Shorten lists/strings
for k, v in extra.iteritems():
data['extra'][k] = shorten(v, string_length=self.string_max_length,
list_length=self.list_max_length)
if culprit:
data['culprit'] = culprit
if 'checksum' not in data:
checksum_bits = handler.get_hash(data)
else:
checksum_bits = data['checksum']
if isinstance(checksum_bits, (list, tuple)):
checksum = hashlib.md5()
for bit in checksum_bits:
checksum.update(to_string(bit))
checksum = checksum.hexdigest()
else:
checksum = checksum_bits
data['checksum'] = checksum
# Run the data through processors
for processor in self.get_processors():
data.update(processor.process(data))
if 'message' not in data:
data['message'] = handler.to_string(data)
data.setdefault('project', self.project)
data.setdefault('site', self.site)
data.setdefault('public_key', self.public_key)
# Make sure all data is coerced
#.........这里部分代码省略.........
开发者ID:akbargumbira,项目名称:inasafe,代码行数:101,代码来源:base.py
示例17: process
def process(self, **kwargs):
"""
Processes the message before passing it on to the server.
This includes:
- extracting stack frames (for non exceptions)
- identifying module versions
- coercing data
- generating message identifiers
You may pass the ``stack`` parameter to specify an explicit stack,
or simply to tell Raven that you want to capture the stacktrace.
To automatically grab the stack from a non-exception:
>>> client.process(message='test', stack=True)
To capture an explicit stack (e.g. something from a different threadframe?):
>>> import inspect
>>> from raven.utils import iter_stack_frames
>>> client.process(message='test', stack=iter_stack_frames(inspect.stack()))
"""
if kwargs.get('data'):
# Ensure we're not changing the original data which was passed
# to Sentry
data = kwargs.get('data').copy()
else:
data = {}
if '__sentry__' not in data:
data['__sentry__'] = {}
get_stack = kwargs.pop('stack', self.auto_log_stacks)
if get_stack and not data['__sentry__'].get('frames'):
if get_stack is True:
stack = []
found = None
for frame in iter_stack_frames():
# There are initial frames from Sentry that need skipped
name = frame.f_globals.get('__name__')
if found is None:
if name == 'logging':
found = False
continue
elif not found:
if name != 'logging':
found = True
else:
continue
stack.append(frame)
stack.reverse()
else:
# assume stack was a list of frames
stack = get_stack or []
data['__sentry__']['frames'] = varmap(shorten, get_stack_info(stack))
kwargs.setdefault('level', logging.ERROR)
kwargs.setdefault('server_name', self.name)
kwargs.setdefault('site', self.site)
versions = get_versions(self.include_paths)
data['__sentry__']['versions'] = versions
# Shorten lists/strings
for k, v in data.iteritems():
if k == '__sentry__':
continue
data[k] = shorten(v, string_length=self.string_max_length, list_length=self.list_max_length)
# if we've passed frames, lets try to fetch the culprit
if not kwargs.get('view') and data['__sentry__'].get('frames'):
# We iterate through each frame looking for an app in INSTALLED_APPS
# When one is found, we mark it as last "best guess" (best_guess) and then
# check it against SENTRY_EXCLUDE_PATHS. If it isnt listed, then we
# use this option. If nothing is found, we use the "best guess".
view = get_culprit(data['__sentry__']['frames'], self.include_paths, self.exclude_paths)
if view:
kwargs['view'] = view
# try to fetch the current version
if kwargs.get('view'):
# get list of modules from right to left
parts = kwargs['view'].split('.')
module_list = ['.'.join(parts[:idx]) for idx in xrange(1, len(parts) + 1)][::-1]
version = None
module = None
for m in module_list:
if m in versions:
module = m
version = versions[m]
# store our "best guess" for application version
if version:
data['__sentry__'].update({
'version': version,
#.........这里部分代码省略.........
开发者ID:d1on,项目名称:raven,代码行数:101,代码来源:base.py
注:本文中的raven.utils.encoding.shorten函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论