本文整理汇总了Python中raven.utils.encoding.transform函数的典型用法代码示例。如果您正苦于以下问题:Python transform函数的具体用法?Python transform怎么用?Python transform使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了transform函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_int_subclass
def test_int_subclass(self):
class X(int):
pass
result = transform(X())
self.assertEquals(type(result), int)
self.assertEquals(result, 0)
开发者ID:Lothiraldan,项目名称:raven,代码行数:7,代码来源:tests.py
示例2: get_stack_info
def get_stack_info(frames):
results = []
for frame in frames:
# Support hidden frames
if frame.f_locals.get('__traceback_hide__'):
continue
filename = frame.f_code.co_filename
function = frame.f_code.co_name
lineno = frame.f_lineno - 1
loader = frame.f_globals.get('__loader__')
module_name = frame.f_globals.get('__name__')
pre_context_lineno, pre_context, context_line, post_context = get_lines_from_file(filename, lineno, 7, loader, module_name)
if pre_context_lineno is not None:
results.append({
'filename': filename,
'module': module_name,
'function': function,
'lineno': lineno + 1,
# TODO: vars need to be references
'vars': transform(frame.f_locals.items()),
'pre_context': pre_context,
'context_line': context_line,
'post_context': post_context,
'pre_context_lineno': pre_context_lineno + 1,
})
return results
开发者ID:d1on,项目名称:raven,代码行数:27,代码来源:stacks.py
示例3: get_stack_info
def get_stack_info(frames):
results = []
for frame in frames:
# Support hidden frames
if frame.f_locals.get("__traceback_hide__"):
continue
filename = frame.f_code.co_filename
function = frame.f_code.co_name
lineno = frame.f_lineno - 1
loader = frame.f_globals.get("__loader__")
module_name = frame.f_globals.get("__name__")
pre_context_lineno, pre_context, context_line, post_context = get_lines_from_file(
filename, lineno, 7, loader, module_name
)
if pre_context_lineno is not None:
results.append(
{
"id": id(frame),
"filename": filename,
"module": module_name,
"function": function,
"lineno": lineno + 1,
# TODO: vars need to be references
"vars": transform(frame.f_locals.items()),
"pre_context": pre_context,
"context_line": context_line,
"post_context": post_context,
"pre_context_lineno": pre_context_lineno + 1,
}
)
return results
开发者ID:rslinckx,项目名称:raven,代码行数:32,代码来源:stacks.py
示例4: test_uuid
def test_uuid(self):
import uuid
uuid = uuid.uuid4()
result = transform(uuid)
self.assertEquals(result, repr(uuid))
self.assertTrue(type(result), str)
开发者ID:Lothiraldan,项目名称:raven,代码行数:7,代码来源:tests.py
示例5: test_dict_keys
def test_dict_keys(self):
x = {u'foo': 'bar'}
result = transform(x)
keys = result.keys()
self.assertEquals(len(keys), 1)
self.assertEquals(keys[0], 'foo')
self.assertTrue(isinstance(keys[0], str))
开发者ID:markon,项目名称:raven,代码行数:8,代码来源:tests.py
示例6: test_dict_keys_utf8_as_unicode
def test_dict_keys_utf8_as_unicode(self):
x = {u"רונית מגן": "bar"}
result = transform(x)
keys = result.keys()
self.assertEquals(len(keys), 1)
self.assertTrue(isinstance(keys[0], str))
self.assertEquals(keys[0], "רונית מגן")
开发者ID:Kronuz,项目名称:raven,代码行数:8,代码来源:tests.py
示例7: test_dict_keys
def test_dict_keys(self):
x = {u"foo": "bar"}
result = transform(x)
keys = result.keys()
self.assertEquals(len(keys), 1)
self.assertTrue(isinstance(keys[0], str))
self.assertEquals(keys[0], "foo")
开发者ID:Kronuz,项目名称:raven,代码行数:8,代码来源:tests.py
示例8: test_dict_keys_utf8_as_unicode
def test_dict_keys_utf8_as_unicode(self):
x = {u'רונית מגן': 'bar'}
result = transform(x)
keys = result.keys()
self.assertEquals(len(keys), 1)
self.assertTrue(type(keys[0]), str)
self.assertEquals(keys[0], 'רונית מגן')
开发者ID:Lothiraldan,项目名称:raven,代码行数:8,代码来源:tests.py
示例9: test_custom_repr
def test_custom_repr(self):
class Foo(object):
def __sentry__(self):
return 'example'
x = Foo()
result = transform(x)
self.assertEquals(result, 'example')
开发者ID:JackLeo,项目名称:raven,代码行数:9,代码来源:tests.py
示例10: test_broken_repr
def test_broken_repr(self):
class Foo(object):
def __repr__(self):
raise ValueError
x = Foo()
result = transform(x)
self.assertEquals(result, u"<BadRepr: <class 'tests.utils.encoding.tests.Foo'>>")
开发者ID:JackLeo,项目名称:raven,代码行数:9,代码来源:tests.py
示例11: test_dict_keys
def test_dict_keys(self):
x = {u'foo': 'bar'}
result = transform(x)
self.assertEquals(type(result), dict)
keys = result.keys()
self.assertEquals(len(keys), 1)
self.assertTrue(type(keys[0]), str)
self.assertEquals(keys[0], 'foo')
开发者ID:Lothiraldan,项目名称:raven,代码行数:9,代码来源:tests.py
示例12: 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)
开发者ID:d1on,项目名称:raven,代码行数:54,代码来源:base.py
示例13: get_stack_info
def get_stack_info(frames):
"""
Given a list of frames, returns a list of stack information
dictionary objects that are JSON-ready.
"""
results = []
for frame in frames:
# Support hidden frames
f_locals = frame.f_locals
if _getitem_from_frame(f_locals, '__traceback_hide__'):
continue
abs_path = frame.f_code.co_filename
function = frame.f_code.co_name
lineno = frame.f_lineno - 1
loader = frame.f_globals.get('__loader__')
module_name = frame.f_globals.get('__name__')
pre_context, context_line, post_context = get_lines_from_file(abs_path, lineno, 3, loader, module_name)
# Try to pull a relative file path
# This changes /foo/site-packages/baz/bar.py into baz/bar.py
try:
base_filename = sys.modules[module_name.split('.', 1)[0]].__file__
filename = abs_path.split(base_filename.rsplit('/', 2)[0], 1)[-1][1:]
except:
filename = abs_path
if context_line:
f_locals = frame.f_locals
if not isinstance(f_locals, dict):
# XXX: Genshi (and maybe others) have broken implementations of
# f_locals that are not actually dictionaries
try:
f_locals = to_dict(f_locals)
except Exception, e:
print e
f_locals = '<invalid local scope>'
results.append({
'abs_path': abs_path,
'filename': filename or abs_path,
'module': module_name,
'function': function,
'lineno': lineno + 1,
# TODO: vars need to be references
'vars': transform(f_locals),
'pre_context': pre_context,
'context_line': context_line,
'post_context': post_context,
})
开发者ID:mvantellingen,项目名称:raven,代码行数:49,代码来源:stacks.py
示例14: 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)
开发者ID:maximbo,项目名称:raven,代码行数:46,代码来源:base.py
示例15: get_stack_info
def get_stack_info(frames):
results = []
for frame in frames:
# Support hidden frames
if frame.f_locals.get('__traceback_hide__'):
continue
abs_path = frame.f_code.co_filename
function = frame.f_code.co_name
lineno = frame.f_lineno - 1
loader = frame.f_globals.get('__loader__')
module_name = frame.f_globals.get('__name__')
pre_context, context_line, post_context = get_lines_from_file(abs_path, lineno, 3, loader, module_name)
# Try to pull a relative file path
# This changes /foo/site-packages/baz/bar.py into baz/bar.py
try:
base_filename = sys.modules[module_name.split('.', 1)[0]].__file__
filename = abs_path.split(base_filename.rsplit('/', 2)[0], 1)[-1][1:]
except:
filename = abs_path
if context_line:
results.append({
'abs_path': abs_path,
'filename': filename or abs_path,
'module': module_name,
'function': function,
'lineno': lineno + 1,
# TODO: vars need to be references
'vars': transform(frame.f_locals),
'pre_context': pre_context,
'context_line': context_line,
'post_context': post_context,
})
return results
开发者ID:Kronuz,项目名称:raven,代码行数:36,代码来源:stacks.py
示例16: test_bad_string
def test_bad_string(self):
x = "The following character causes problems: \xd4"
result = transform(x)
self.assertEquals(result, "<type 'str'>")
开发者ID:Kronuz,项目名称:raven,代码行数:5,代码来源:tests.py
示例17: test_bad_string
def test_bad_string(self):
x = 'The following character causes problems: \xd4'
result = transform(x)
self.assertEquals(type(result), str)
self.assertEquals(result, '<type \'str\'>')
开发者ID:Lothiraldan,项目名称:raven,代码行数:6,代码来源:tests.py
示例18: test_correct_unicode
def test_correct_unicode(self):
x = 'רונית מגן'.decode('utf-8')
result = transform(x)
self.assertEquals(type(result), unicode)
self.assertEquals(result, x)
开发者ID:Lothiraldan,项目名称:raven,代码行数:6,代码来源:tests.py
示例19: test_incorrect_unicode
def test_incorrect_unicode(self):
x = 'רונית מגן'
result = transform(x)
self.assertEquals(type(result), str)
self.assertEquals(result, 'רונית מגן')
开发者ID:Lothiraldan,项目名称:raven,代码行数:6,代码来源:tests.py
示例20: capture
#.........这里部分代码省略.........
: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():
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
# create ID client-side so that it can be passed to application
event_id = uuid.uuid4().hex
# 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,
})
data.setdefault('project', self.project)
data.setdefault('site', self.site)
self.send(**data)
return (event_id, checksum)
开发者ID:andymccurdy,项目名称:raven,代码行数:101,代码来源:base.py
注:本文中的raven.utils.encoding.transform函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论