diff options
| author | Alex Gaynor | 2009-09-23 10:00:59 -0400 |
|---|---|---|
| committer | Alex Gaynor | 2009-09-23 10:00:59 -0400 |
| commit | 776308429ec1ef227c9f3fbba5fd4f6819cb7bd4 (patch) | |
| tree | 724fb1ab91e90f764e91d1cb61e4056a8860fac7 /debug_toolbar/panels | |
| parent | 924361de6c1c87a5dd4db0e37b94380246d85790 (diff) | |
| parent | 1e772af367571bdd572d7308a76b7a1b32058d37 (diff) | |
| download | django-debug-toolbar-776308429ec1ef227c9f3fbba5fd4f6819cb7bd4.tar.bz2 | |
Merge commit 'rob/master'
Diffstat (limited to 'debug_toolbar/panels')
| -rw-r--r-- | debug_toolbar/panels/request_vars.py | 6 | ||||
| -rw-r--r-- | debug_toolbar/panels/sql.py | 65 |
2 files changed, 23 insertions, 48 deletions
diff --git a/debug_toolbar/panels/request_vars.py b/debug_toolbar/panels/request_vars.py index d0a8c19..4ee30a1 100644 --- a/debug_toolbar/panels/request_vars.py +++ b/debug_toolbar/panels/request_vars.py @@ -24,7 +24,9 @@ class RequestVarsDebugPanel(DebugPanel): context = { 'get': [(k, self.request.GET.getlist(k)) for k in self.request.GET.iterkeys()], 'post': [(k, self.request.POST.getlist(k)) for k in self.request.POST.iterkeys()], - 'session': [(k, self.request.session.get(k)) for k in self.request.session.iterkeys()], 'cookies': [(k, self.request.COOKIES.get(k)) for k in self.request.COOKIES.iterkeys()], } - return render_to_string('debug_toolbar/panels/request_vars.html', context)
\ No newline at end of file + if hasattr(self.request, 'session'): + context['session'] = [(k, self.request.session.get(k)) for k in self.request.session.iterkeys()], + + return render_to_string('debug_toolbar/panels/request_vars.html', context) diff --git a/debug_toolbar/panels/sql.py b/debug_toolbar/panels/sql.py index 0c9bc61..e1a2b7d 100644 --- a/debug_toolbar/panels/sql.py +++ b/debug_toolbar/panels/sql.py @@ -13,6 +13,7 @@ from django.utils.encoding import force_unicode from django.utils.hashcompat import sha_constructor from debug_toolbar.panels import DebugPanel +from debug_toolbar.utils import sqlparse # Figure out some paths django_path = os.path.realpath(os.path.dirname(django.__file__)) @@ -20,48 +21,8 @@ socketserver_path = os.path.realpath(os.path.dirname(SocketServer.__file__)) # TODO:This should be set in the toolbar loader as a default and panels should # get a copy of the toolbar object with access to its config dictionary -SQL_WARNING_THRESHOLD = getattr(settings, 'DEBUG_TOOLBAR_CONFIG', {}).get('SQL_WARNING_THRESHOLD', 500) - -# Note: This isn't intended to catch ALL possible SQL keywords, just a good common set. -# Note: Subsets are listed last to avoid matching a subset of a keyword. This -# whole thing could be greatly improved but for now this works. -SQL_KEYWORDS = ( - 'ALTER', - 'AND', - 'ASC', - 'AS', - 'AVG', - 'COUNT', - 'CREATE', - 'DESC', - 'DELETE', - 'DISTINCT', - 'DROP', - 'FROM', - 'GROUP BY', - 'HAVING', - 'INNER JOIN', - 'INSERT', - 'IN', - 'LEFT OUTER JOIN', - 'LIKE', - 'LIMIT', - 'MAX', - 'MIN', - 'OFFSET', - 'ON', - 'ORDER BY', - 'OR', - 'SELECT', - 'SET', - 'STDDEV_POP', - 'STDDEV_SAMP', - 'SUM', - 'UPDATE', - 'VAR_POP', - 'VAR_SAMP', - 'WHERE', -) +SQL_WARNING_THRESHOLD = getattr(settings, 'DEBUG_TOOLBAR_CONFIG', {}) \ + .get('SQL_WARNING_THRESHOLD', 500) def tidy_stacktrace(strace): """ @@ -170,8 +131,20 @@ def ms_from_timedelta(td): """ return (td.seconds * 1000) + (td.microseconds / 1000.0) -def reformat_sql(sql): - for kwd in SQL_KEYWORDS: - sql = sql.replace(kwd, '<strong>%s</strong>' % (kwd,)) - return sql +class BoldKeywordFilter(sqlparse.filters.Filter): + """sqlparse filter to bold SQL keywords""" + def process(self, stack, stream): + """Process the token stream""" + for token_type, value in stream: + is_keyword = token_type in sqlparse.tokens.Keyword + if is_keyword: + yield sqlparse.tokens.Text, '<strong>' + yield token_type, value + if is_keyword: + yield sqlparse.tokens.Text, '</strong>' +def reformat_sql(sql): + stack = sqlparse.engine.FilterStack() + stack.preprocess.append(BoldKeywordFilter()) # add our custom filter + stack.postprocess.append(sqlparse.filters.SerializerUnicode()) # tokens -> strings + return ''.join(stack.run(sql)) |
