Remove submodule, just put Dependencies in ./libs
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
werkzeug.debug.render
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Render the traceback debugging page.
|
||||
|
||||
:copyright: (c) 2010 by the Werkzeug Team, see AUTHORS for more details.
|
||||
:license: BSD, see LICENSE for more details.
|
||||
"""
|
||||
import pprint
|
||||
from os.path import dirname, join
|
||||
|
||||
from werkzeug.templates import Template
|
||||
|
||||
|
||||
def get_template(name):
|
||||
return Template.from_file(join(dirname(__file__), 'shared', name),
|
||||
unicode_mode=False, errors='ignore')
|
||||
|
||||
|
||||
def load_resource(res):
|
||||
try:
|
||||
f = file(join(dirname(__file__), 'shared', res))
|
||||
except IOError:
|
||||
return ''
|
||||
try:
|
||||
return f.read()
|
||||
finally:
|
||||
f.close()
|
||||
|
||||
|
||||
t_body = get_template('body.tmpl')
|
||||
t_codetable = get_template('codetable.tmpl')
|
||||
t_vartable = get_template('vartable.tmpl')
|
||||
|
||||
|
||||
def code_table(frame):
|
||||
from werkzeug.debug.util import Namespace
|
||||
lines = []
|
||||
lineno = frame['context_lineno']
|
||||
if lineno is not None:
|
||||
lineno += 1
|
||||
for l in frame['pre_context']:
|
||||
lines.append(Namespace(mode='pre', lineno=lineno, code=l))
|
||||
lineno += 1
|
||||
lines.append(Namespace(mode='cur', lineno=lineno,
|
||||
code=frame['context_line']))
|
||||
lineno += 1
|
||||
for l in frame['post_context']:
|
||||
lines.append(Namespace(mode='post', lineno=lineno, code=l))
|
||||
lineno += 1
|
||||
else:
|
||||
lines.append(Namespace(mode='cur', lineno=1,
|
||||
code='Sourcecode not available'))
|
||||
|
||||
return t_codetable.render(lines=lines)
|
||||
|
||||
|
||||
def var_table(var):
|
||||
def safe_pformat(x):
|
||||
try:
|
||||
lines = pprint.pformat(x).splitlines()
|
||||
except Exception:
|
||||
return '?'
|
||||
tmp = []
|
||||
for line in lines:
|
||||
if len(line) > 79:
|
||||
line = line[:79] + '...'
|
||||
tmp.append(line)
|
||||
return '\n'.join(tmp)
|
||||
|
||||
# dicts
|
||||
if isinstance(var, dict) or hasattr(var, 'items'):
|
||||
value = var.items()
|
||||
if not value:
|
||||
typ = 'empty'
|
||||
else:
|
||||
typ = 'dict'
|
||||
value.sort()
|
||||
value = [(repr(key), safe_pformat(val)) for key, val in value]
|
||||
|
||||
# lists
|
||||
elif isinstance(var, list):
|
||||
if not var:
|
||||
typ = 'empty'
|
||||
else:
|
||||
typ = 'list'
|
||||
value = [safe_pformat(item) for item in var]
|
||||
|
||||
# others
|
||||
else:
|
||||
typ = 'simple'
|
||||
value = repr(var)
|
||||
|
||||
return t_vartable.render(type=typ, value=value)
|
||||
|
||||
|
||||
def debug_page(context):
|
||||
tc = context.to_dict()
|
||||
tc['var_table'] = var_table
|
||||
tc['code_table'] = code_table
|
||||
return t_body.render(tc)
|
||||
Reference in New Issue
Block a user