本文整理汇总了Python中sentry.utils.safe.trim函数的典型用法代码示例。如果您正苦于以下问题:Python trim函数的具体用法?Python trim怎么用?Python trim使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了trim函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: to_python
def to_python(cls, data):
name = data.get('name')
if not name:
raise InterfaceValidationError("No 'name' value")
version = data.get('version')
if not version:
raise InterfaceValidationError("No 'version' value")
integrations = data.get('integrations')
if integrations and not isinstance(integrations, list):
raise InterfaceValidationError("'integrations' must be a list")
packages = data.get('packages')
if packages and not isinstance(packages, list):
raise InterfaceValidationError("'packages' must be a list")
kwargs = {
'name': trim(name, 128),
'version': trim(version, 128),
'integrations': integrations,
'packages': packages,
}
return cls(**kwargs)
开发者ID:alexandrul,项目名称:sentry,代码行数:25,代码来源:sdk.py
示例2: normalize_crumb
def normalize_crumb(cls, crumb):
ty = crumb.get('type') or 'default'
ts = parse_new_timestamp(crumb.get('timestamp'))
if ts is None:
raise InterfaceValidationError('Unable to determine timestamp '
'for crumb')
rv = {
'type': ty,
'timestamp': to_timestamp(ts),
}
level = crumb.get('level')
if level not in (None, 'info'):
rv['level'] = level
msg = crumb.get('message')
if msg is not None:
rv['message'] = trim(unicode(msg), 4096)
category = crumb.get('category')
if category is not None:
rv['category'] = trim(unicode(category), 256)
event_id = crumb.get('event_id')
if event_id is not None:
rv['event_id'] = event_id
if 'data' in crumb:
rv['data'] = trim(crumb['data'], 4096)
return rv
开发者ID:E-LLP,项目名称:sentry,代码行数:32,代码来源:breadcrumbs.py
示例3: to_python
def to_python(cls, data, rust_renormalized=RUST_RENORMALIZED_DEFAULT):
if rust_renormalized:
for key in (
'name',
'version',
'integrations',
'packages',
):
data.setdefault(key, None)
return cls(**data)
name = data.get('name')
version = data.get('version')
integrations = data.get('integrations')
if integrations and not isinstance(integrations, list):
raise InterfaceValidationError("'integrations' must be a list")
packages = data.get('packages')
if packages and not isinstance(packages, list):
raise InterfaceValidationError("'packages' must be a list")
kwargs = {
'name': trim(name, 128),
'version': trim(version, 128),
'integrations': integrations,
'packages': packages,
}
return cls(**kwargs)
开发者ID:getsentry,项目名称:sentry,代码行数:31,代码来源:sdk.py
示例4: to_python
def to_python(cls, data):
data = data.copy()
extra_data = data.pop("data", data)
if not isinstance(extra_data, dict):
extra_data = {}
ident = trim(data.pop("id", None), 128)
if ident:
ident = unicode(ident)
try:
email = trim(validate_email(data.pop("email", None), False), 128)
except ValueError:
raise InterfaceValidationError("Invalid value for 'email'")
username = trim(data.pop("username", None), 128)
if username:
username = unicode(username)
try:
ip_address = validate_ip(data.pop("ip_address", None), False)
except ValueError:
raise InterfaceValidationError("Invalid value for 'ip_address'")
# TODO(dcramer): patch in fix to deal w/ old data but not allow new
# if not (ident or email or username or ip_address):
# raise ValueError('No identifying value')
kwargs = {"id": ident, "email": email, "username": username, "ip_address": ip_address}
kwargs["data"] = trim_dict(extra_data)
return cls(**kwargs)
开发者ID:pombredanne,项目名称:django-sentry,代码行数:31,代码来源:user.py
示例5: to_python
def to_python(cls, data, rust_renormalized=RUST_RENORMALIZED_DEFAULT):
if rust_renormalized:
for key in (
'abs_path',
'filename',
'context_line',
'lineno',
'pre_context',
'post_context',
):
data.setdefault(key, None)
return cls(**data)
is_valid, errors = validate_and_default_interface(data, cls.path)
if not is_valid:
raise InterfaceValidationError("Invalid template")
kwargs = {
'abs_path': trim(data.get('abs_path', None), 256),
'filename': trim(data.get('filename', None), 256),
'context_line': trim(data.get('context_line', None), 256),
'lineno': int(data['lineno']) if data.get('lineno', None) is not None else None,
# TODO(dcramer): trim pre/post_context
'pre_context': data.get('pre_context'),
'post_context': data.get('post_context'),
}
return cls(**kwargs)
开发者ID:getsentry,项目名称:sentry,代码行数:27,代码来源:template.py
示例6: to_python
def to_python(cls, data):
data = data.copy()
extra_data = data.pop('data', data)
if not isinstance(extra_data, dict):
extra_data = {}
try:
name = trim(data.pop('name'), 64)
except KeyError:
raise InterfaceValidationError("Missing or invalid value for 'name'")
try:
version = trim(data.pop('version'), 64)
except KeyError:
raise InterfaceValidationError("Missing or invalid value for 'version'")
build = trim(data.pop('build', None), 64)
kwargs = {
'name': name,
'version': version,
'build': build,
'data': trim_dict(data),
}
kwargs['data'] = trim_dict(data)
return cls(**kwargs)
开发者ID:Andy-hpliu,项目名称:sentry,代码行数:27,代码来源:device.py
示例7: normalize_crumb
def normalize_crumb(cls, crumb):
ty = crumb.get('type') or 'default'
ts = parse_timestamp(crumb.get('timestamp'))
if ts is None:
raise InterfaceValidationError('Unable to determine timestamp '
'for crumb')
rv = {
'type': ty,
'timestamp': to_timestamp(ts),
}
level = crumb.get('level')
if level not in (None, 'info'):
rv['level'] = level
msg = crumb.get('message')
if msg is not None:
rv['message'] = trim(six.text_type(msg), 4096)
category = crumb.get('category')
if category is not None:
rv['category'] = trim(six.text_type(category), 256)
event_id = crumb.get('event_id')
if event_id is not None:
rv['event_id'] = event_id
if crumb.get('data'):
for key, value in six.iteritems(crumb['data']):
if not isinstance(value, six.string_types):
crumb['data'][key] = json.dumps(value)
rv['data'] = trim(crumb['data'], 4096)
return rv
开发者ID:thierryxing,项目名称:sentry,代码行数:35,代码来源:breadcrumbs.py
示例8: to_python
def to_python(cls, data, has_system_frames=None):
if not (data.get('type') or data.get('value')):
raise InterfaceValidationError("No 'type' or 'value' present")
if data.get('stacktrace') and data['stacktrace'].get('frames'):
stacktrace = Stacktrace.to_python(
data['stacktrace'],
has_system_frames=has_system_frames,
)
else:
stacktrace = None
type = data.get('type')
value = data.get('value')
if not type and ':' in value.split(' ', 1)[0]:
type, value = value.split(':', 1)
# in case of TypeError: foo (no space)
value = value.strip()
if value is not None and not isinstance(value, basestring):
value = json.dumps(value)
value = trim(value, 4096)
kwargs = {
'type': trim(type, 128),
'value': value,
'module': trim(data.get('module'), 128),
'stacktrace': stacktrace,
}
return cls(**kwargs)
开发者ID:zhoupan,项目名称:sentry,代码行数:31,代码来源:exception.py
示例9: to_python
def to_python(cls, data):
formatted = stringify(data.get('formatted'))
message = stringify(data.get('message'))
if formatted is None and message is None:
raise InterfaceValidationError("No message present")
params = data.get('params')
if isinstance(params, (list, tuple)):
params = tuple(p for p in params)
elif isinstance(params, dict):
params = {k: v for k, v in six.iteritems(params)}
else:
params = ()
if formatted is None and params:
try:
if '%' in message:
formatted = message % params
elif '{}' in message and isinstance(params, tuple):
formatted = message.format(*params)
# NB: Named newstyle arguments were never supported
except Exception:
pass
if formatted is None or message == formatted:
formatted = message
message = None
return cls(
formatted=trim(formatted, settings.SENTRY_MAX_MESSAGE_LENGTH),
message=trim(message, settings.SENTRY_MAX_MESSAGE_LENGTH),
params=trim(params, 1024),
)
开发者ID:Kayle009,项目名称:sentry,代码行数:33,代码来源:message.py
示例10: merge_symbolicated_frame
def merge_symbolicated_frame(new_frame, sfrm, platform=None):
if sfrm.get('function'):
raw_func = trim(sfrm['function'], 256)
func = trim(trim_function_name(sfrm['function'], platform), 256)
# if function and raw function match, we can get away without
# storing a raw function
if func == raw_func:
new_frame['function'] = raw_func
# otherwise we store both
else:
new_frame['raw_function'] = raw_func
new_frame['function'] = func
if sfrm.get('instruction_addr'):
new_frame['instruction_addr'] = sfrm['instruction_addr']
if sfrm.get('symbol'):
new_frame['symbol'] = sfrm['symbol']
if sfrm.get('abs_path'):
new_frame['abs_path'] = sfrm['abs_path']
new_frame['filename'] = posixpath.basename(sfrm['abs_path'])
if sfrm.get('filename'):
new_frame['filename'] = sfrm['filename']
if sfrm.get('lineno'):
new_frame['lineno'] = sfrm['lineno']
if sfrm.get('colno'):
new_frame['colno'] = sfrm['colno']
if sfrm.get('package'):
new_frame['package'] = sfrm['package']
if sfrm.get('trust'):
new_frame['trust'] = sfrm['trust']
if sfrm.get('status'):
frame_meta = new_frame.setdefault('data', {})
frame_meta['symbolicator_status'] = sfrm['status']
开发者ID:getsentry,项目名称:sentry,代码行数:33,代码来源:utils.py
示例11: to_python
def to_python(cls, data):
abs_path = data.get('abs_path')
filename = data.get('filename')
if not abs_path:
abs_path = filename
if not filename:
filename = abs_path
if abs_path and is_url(abs_path):
urlparts = urlparse(abs_path)
if urlparts.path:
filename = urlparts.path
assert filename or data.get('function') or data.get('module')
context_locals = data.get('vars') or {}
if isinstance(context_locals, (list, tuple)):
context_locals = dict(enumerate(context_locals))
elif not isinstance(context_locals, dict):
context_locals = {}
context_locals = trim_dict(context_locals)
# extra data is used purely by internal systems,
# so we dont trim it
extra_data = data.get('data') or {}
if isinstance(extra_data, (list, tuple)):
extra_data = dict(enumerate(extra_data))
kwargs = {
'abs_path': trim(abs_path, 256),
'filename': trim(filename, 256),
'module': trim(data.get('module'), 256),
'function': trim(data.get('function'), 256),
'in_app': validate_bool(data.get('in_app'), False),
'context_line': trim(data.get('context_line'), 256),
# TODO(dcramer): trim pre/post_context
'pre_context': data.get('pre_context'),
'post_context': data.get('post_context'),
'vars': context_locals,
'data': extra_data,
'errors': data.get('errors'),
}
if data.get('lineno') is not None:
lineno = int(data['lineno'])
if lineno < 0:
lineno = None
kwargs['lineno'] = lineno
else:
kwargs['lineno'] = None
if data.get('colno') is not None:
kwargs['colno'] = int(data['colno'])
else:
kwargs['colno'] = None
return cls(**kwargs)
开发者ID:dragon788,项目名称:sentry,代码行数:59,代码来源:stacktrace.py
示例12: to_python
def to_python(cls, data):
if not data.get('url'):
raise InterfaceValidationError("No value for 'url'")
kwargs = {}
if data.get('method'):
method = data['method'].upper()
if method not in HTTP_METHODS:
raise InterfaceValidationError("Invalid value for 'method'")
kwargs['method'] = method
else:
kwargs['method'] = None
scheme, netloc, path, query_bit, fragment_bit = urlsplit(data['url'])
query_string = data.get('query_string') or query_bit
if query_string:
# if querystring was a dict, convert it to a string
if isinstance(query_string, dict):
query_string = urlencode([(to_bytes(k), to_bytes(v))
for k, v in query_string.items()])
else:
query_string = query_string
if query_string[0] == '?':
# remove '?' prefix
query_string = query_string[1:]
kwargs['query_string'] = trim(query_string, 4096)
else:
kwargs['query_string'] = ''
fragment = data.get('fragment') or fragment_bit
cookies = data.get('cookies')
# if cookies were [also] included in headers we
# strip them out
headers = data.get('headers')
if headers:
headers, cookie_header = format_headers(headers)
if not cookies and cookie_header:
cookies = cookie_header
else:
headers = ()
body = data.get('data')
if isinstance(body, dict):
body = json.dumps(body)
if body:
body = trim(body, settings.SENTRY_MAX_HTTP_BODY_SIZE)
kwargs['cookies'] = trim_pairs(format_cookies(cookies))
kwargs['env'] = trim_dict(data.get('env') or {})
kwargs['headers'] = trim_pairs(headers)
kwargs['data'] = body
kwargs['url'] = urlunsplit((scheme, netloc, path, '', ''))
kwargs['fragment'] = trim(fragment, 1024)
return cls(**kwargs)
开发者ID:derekey,项目名称:sentry,代码行数:59,代码来源:http.py
示例13: get_metadata
def get_metadata(self):
exception = self.data['sentry.interfaces.Exception']['values'][0]
# in some situations clients are submitting non-string data for these
return {
'type': trim(exception.get('type', 'Error'), 128),
'value': trim(exception.get('value', ''), 1024),
}
开发者ID:Akashguharoy,项目名称:sentry,代码行数:8,代码来源:error.py
示例14: to_python
def to_python(cls, data):
assert data.get('query')
kwargs = {
'query': trim(data['query'], 1024),
'engine': trim(data.get('engine'), 128),
}
return cls(**kwargs)
开发者ID:BlueMoebius,项目名称:sentry,代码行数:8,代码来源:query.py
示例15: to_python
def to_python(cls, data, slim_frames=True, rust_renormalized=RUST_RENORMALIZED_DEFAULT):
if not rust_renormalized:
is_valid, errors = validate_and_default_interface(data, cls.path)
if not is_valid:
raise InterfaceValidationError("Invalid exception")
if not (data.get('type') or data.get('value')):
raise InterfaceValidationError("No 'type' or 'value' present")
if get_path(data, 'stacktrace', 'frames', filter=True):
stacktrace = Stacktrace.to_python(
data['stacktrace'],
slim_frames=slim_frames,
rust_renormalized=rust_renormalized
)
else:
stacktrace = None
if get_path(data, 'raw_stacktrace', 'frames', filter=True):
raw_stacktrace = Stacktrace.to_python(
data['raw_stacktrace'], slim_frames=slim_frames, raw=True,
rust_renormalized=rust_renormalized
)
else:
raw_stacktrace = None
type = data.get('type')
value = data.get('value')
if not rust_renormalized:
if isinstance(value, six.string_types):
if type is None:
m = _type_value_re.match(value)
if m:
type = m.group(1)
value = m.group(2).strip()
elif value is not None:
value = json.dumps(value)
value = trim(value, 4096)
if data.get('mechanism'):
mechanism = Mechanism.to_python(data['mechanism'],
rust_renormalized=rust_renormalized)
else:
mechanism = None
kwargs = {
'type': trim(type, 128),
'value': value,
'module': trim(data.get('module'), 128),
'mechanism': mechanism,
'stacktrace': stacktrace,
'thread_id': trim(data.get('thread_id'), 40),
'raw_stacktrace': raw_stacktrace,
}
return cls(**kwargs)
开发者ID:getsentry,项目名称:sentry,代码行数:58,代码来源:exception.py
示例16: to_python
def to_python(cls, data):
if not data.get('query'):
raise InterfaceValidationError("No 'query' value")
kwargs = {
'query': trim(data['query'], 1024),
'engine': trim(data.get('engine'), 128),
}
return cls(**kwargs)
开发者ID:NuttasitBoonwat,项目名称:sentry,代码行数:9,代码来源:query.py
示例17: to_python
def to_python(cls, data):
abs_path = data.get("abs_path")
filename = data.get("filename")
if not abs_path:
abs_path = filename
if not filename:
filename = abs_path
if abs_path and is_url(abs_path):
urlparts = urlparse(abs_path)
if urlparts.path:
filename = urlparts.path
assert filename or data.get("function") or data.get("module")
context_locals = data.get("vars") or {}
if isinstance(context_locals, (list, tuple)):
context_locals = dict(enumerate(context_locals))
elif not isinstance(context_locals, dict):
context_locals = {}
context_locals = trim_dict(context_locals)
# extra data is used purely by internal systems,
# so we dont trim it
extra_data = data.get("data") or {}
if isinstance(extra_data, (list, tuple)):
extra_data = dict(enumerate(extra_data))
kwargs = {
"abs_path": trim(abs_path, 256),
"filename": trim(filename, 256),
"module": trim(data.get("module"), 256),
"function": trim(data.get("function"), 256),
"in_app": validate_bool(data.get("in_app"), False),
"context_line": trim(data.get("context_line"), 256),
# TODO(dcramer): trim pre/post_context
"pre_context": data.get("pre_context"),
"post_context": data.get("post_context"),
"vars": context_locals,
"data": extra_data,
}
if data.get("lineno") is not None:
kwargs["lineno"] = int(data["lineno"])
else:
kwargs["lineno"] = None
if data.get("colno") is not None:
kwargs["colno"] = int(data["colno"])
else:
kwargs["colno"] = None
return cls(**kwargs)
开发者ID:GrasIdevels,项目名称:sentry,代码行数:55,代码来源:stacktrace.py
示例18: to_python
def to_python(cls, data):
data = data.copy()
kwargs = {
'id': trim(data.pop('id', None), 128),
'email': trim(data.pop('email', None), 128),
'username': trim(data.pop('username', None), 128),
'ip_address': validate_ip(data.pop('ip_address', None), False),
}
kwargs['data'] = trim_dict(data.pop('data', data))
return cls(**kwargs)
开发者ID:alex-tools,项目名称:sentry,代码行数:11,代码来源:user.py
示例19: validate_query
def validate_query(payload):
rv = {}
for key in 'params', 'duration', 'classifier':
value = payload.get(key)
if value is not None:
rv[key] = trim(value, 1024)
if 'query' not in payload:
raise InterfaceValidationError("Query not provided for 'query' "
"breadcrumb.")
rv['query'] = trim(payload['query'], 4096)
return rv
开发者ID:Andy-hpliu,项目名称:sentry,代码行数:11,代码来源:breadcrumbs.py
示例20: to_python
def to_python(cls, data):
name = data.get("name")
if not name:
raise InterfaceValidationError("No 'name' value")
version = data.get("version")
if not version:
raise InterfaceValidationError("No 'version' value")
kwargs = {"name": trim(name, 128), "version": trim(version, 128)}
return cls(**kwargs)
开发者ID:mitsuhiko,项目名称:sentry,代码行数:11,代码来源:sdk.py
注:本文中的sentry.utils.safe.trim函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论