""" The main DebugToolbar class that loads and renders the Toolbar. """ class DebugToolbar(object): def __init__(self): self.panels = [] self.panel_list = [] self.content_list = [] def load_panels(self): """ Populate debug panel lists from settings.DEBUG_TOOLBAR_PANELS. """ from django.conf import settings from django.core import exceptions for panel_path in settings.DEBUG_TOOLBAR_PANELS: try: dot = panel_path.rindex('.') except ValueError: raise exceptions.ImproperlyConfigured, '%s isn\'t a debug panel module' % panel_path panel_module, panel_classname = panel_path[:dot], panel_path[dot+1:] try: mod = __import__(panel_module, {}, {}, ['']) except ImportError, e: raise exceptions.ImproperlyConfigured, 'Error importing debug panel %s: "%s"' % (panel_module, e) try: panel_class = getattr(mod, panel_classname) except AttributeError: raise exceptions.ImproperlyConfigured, 'Toolbar Panel module "%s" does not define a "%s" class' % (panel_module, panel_classname) try: panel_instance = panel_class() except: continue # Some problem loading panel self.panels.append(panel_instance) def render_panels(self): """ Renders each panel. """ for panel in self.panels: div_id = 'djDebug%sPanel' % (panel.title().replace(' ', '')) self.panel_list.append('