diff options
| author | David Wolfe | 2014-02-11 19:16:10 -0400 | 
|---|---|---|
| committer | David Wolfe | 2014-02-11 19:16:10 -0400 | 
| commit | 8d68d307af04166e7aa4fde915b95a41560b8f19 (patch) | |
| tree | 8791cb98f566f6045913b2ed11d8c94facbdc6c7 /debug_toolbar | |
| parent | eb7793807863a088cf7c67c34df7f31ad03cbc29 (diff) | |
| download | django-debug-toolbar-8d68d307af04166e7aa4fde915b95a41560b8f19.tar.bz2 | |
Color-code SQL: code review changes; fallback to black after 2**24 colors
Diffstat (limited to 'debug_toolbar')
| -rw-r--r-- | debug_toolbar/panels/sql/panel.py | 5 | ||||
| -rw-r--r-- | debug_toolbar/panels/sql/utils.py | 10 | 
2 files changed, 8 insertions, 7 deletions
| diff --git a/debug_toolbar/panels/sql/panel.py b/debug_toolbar/panels/sql/panel.py index b7a9e4c..f6ce954 100644 --- a/debug_toolbar/panels/sql/panel.py +++ b/debug_toolbar/panels/sql/panel.py @@ -2,6 +2,7 @@ from __future__ import absolute_import, unicode_literals  import uuid  from copy import copy +from collections import defaultdict  from django.conf.urls import patterns, url  from django.db import connections @@ -137,7 +138,7 @@ class SQLPanel(Panel):      def process_response(self, request, response):          colors = contrasting_color_generator() -        trace_colors = {} +        trace_colors = defaultdict(lambda: next(colors))          if self._queries:              width_ratio_tally = 0              factor = int(256.0 / (len(self._databases) * 2.5)) @@ -198,8 +199,6 @@ class SQLPanel(Panel):                  query['stacktrace'] = render_stacktrace(query['stacktrace'])                  i += 1 -                if query['stacktrace'] not in trace_colors: -                    trace_colors[query['stacktrace']] = colors.next()                  query['trace_color'] = trace_colors[query['stacktrace']]              if trans_id: diff --git a/debug_toolbar/panels/sql/utils.py b/debug_toolbar/panels/sql/utils.py index d6f0173..65d26bd 100644 --- a/debug_toolbar/panels/sql/utils.py +++ b/debug_toolbar/panels/sql/utils.py @@ -40,20 +40,22 @@ def swap_fields(sql):  def contrasting_color_generator():      """      Generate constrasting colors by varying most significant bit of RGB first, -    and then vary subsebequent bits systematically. +    and then vary subsequent bits systematically.      """      def rgb_to_hex(rgb):          return '#%02x%02x%02x' % tuple(rgb)      triples = [(1, 0, 0), (0, 1, 0), (0, 0, 1),                 (1, 1, 0), (0, 1, 1), (1, 0, 1), (1, 1, 1)] -    n = 128 +    n = 1 << 7      so_far = [[0, 0, 0]] -    while (1): +    while True: +        if n == 0:  # This happens after 2**24 colours; presumably, never +            yield "#000000"  # black          copy_so_far = list(so_far)          for triple in triples:              for previous in copy_so_far:                  rgb = [n * triple[i] + previous[i] for i in range(3)]                  so_far.append(rgb)                  yield rgb_to_hex(rgb) -        n = n / 2 +        n >>= 1 | 
