From 918519f8540cca98fee96eec0f3e2f9afb2e3073 Mon Sep 17 00:00:00 2001
From: Vladislav Poluhin
Date: Tue, 23 Apr 2013 14:17:55 +0800
Subject: Form for SQL validation
---
debug_toolbar/utils/tracking/db.py | 3 ---
1 file changed, 3 deletions(-)
(limited to 'debug_toolbar/utils')
diff --git a/debug_toolbar/utils/tracking/db.py b/debug_toolbar/utils/tracking/db.py
index 0dc22a6..68408c3 100644
--- a/debug_toolbar/utils/tracking/db.py
+++ b/debug_toolbar/utils/tracking/db.py
@@ -139,9 +139,6 @@ class NormalCursorWrapper(object):
'duration': duration,
'raw_sql': sql,
'params': _params,
- 'hash': sha1(settings.SECRET_KEY \
- + smart_str(sql) \
- + _params).hexdigest(),
'stacktrace': stacktrace,
'start_time': start,
'stop_time': stop,
--
cgit v1.2.3
From 3d0467d9a4394c4b994a802e6e861ff2562dbb2b Mon Sep 17 00:00:00 2001
From: Vladislav Poluhin
Date: Wed, 24 Apr 2013 11:14:34 +0800
Subject: Got rid of the circular imports
---
debug_toolbar/utils/sql.py | 15 +++++++++++++++
debug_toolbar/utils/sqlparse/filters.py | 14 ++++++++++++++
2 files changed, 29 insertions(+)
create mode 100644 debug_toolbar/utils/sql.py
(limited to 'debug_toolbar/utils')
diff --git a/debug_toolbar/utils/sql.py b/debug_toolbar/utils/sql.py
new file mode 100644
index 0000000..909edf7
--- /dev/null
+++ b/debug_toolbar/utils/sql.py
@@ -0,0 +1,15 @@
+import re
+from debug_toolbar.utils import sqlparse
+from debug_toolbar.utils.sqlparse.filters import BoldKeywordFilter
+
+
+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 swap_fields(''.join(stack.run(sql)))
+
+
+def swap_fields(sql):
+ return re.sub('SELECT (.*?) FROM', 'SELECT ••• ' +
+ '\g<1> FROM', sql)
diff --git a/debug_toolbar/utils/sqlparse/filters.py b/debug_toolbar/utils/sqlparse/filters.py
index 897cc90..6443a3c 100644
--- a/debug_toolbar/utils/sqlparse/filters.py
+++ b/debug_toolbar/utils/sqlparse/filters.py
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
import re
+from django.utils.html import escape
from debug_toolbar.utils.sqlparse import tokens as T
from debug_toolbar.utils.sqlparse import sql
@@ -423,3 +424,16 @@ class OutputPHPFilter(Filter):
varname = self.varname
stmt.tokens = tuple(self._process(stmt.tokens, varname))
return stmt
+
+
+class BoldKeywordFilter(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 T.Keyword
+ if is_keyword:
+ yield T.Text, ''
+ yield token_type, escape(value)
+ if is_keyword:
+ yield T.Text, ''
--
cgit v1.2.3
From 702f574461693efe0ea951254e2dcce7edb9a30f Mon Sep 17 00:00:00 2001
From: Vladislav Poluhin
Date: Wed, 24 Apr 2013 16:04:04 +0800
Subject: Fix tests for Django 1.3
---
debug_toolbar/utils/functional.py | 14 ++++++++++++++
1 file changed, 14 insertions(+)
create mode 100644 debug_toolbar/utils/functional.py
(limited to 'debug_toolbar/utils')
diff --git a/debug_toolbar/utils/functional.py b/debug_toolbar/utils/functional.py
new file mode 100644
index 0000000..1dbb734
--- /dev/null
+++ b/debug_toolbar/utils/functional.py
@@ -0,0 +1,14 @@
+try:
+ from django.utils.functional import cached_property
+except ImportError: # Django < 1.4
+ class cached_property(object):
+ """
+ Decorator that creates converts a method with a single
+ self argument into a property cached on the instance.
+ """
+ def __init__(self, func):
+ self.func = func
+
+ def __get__(self, instance, type):
+ res = instance.__dict__[self.func.__name__] = self.func(instance)
+ return res
--
cgit v1.2.3