diff options
| -rw-r--r-- | debug_toolbar/panels/signals.py | 13 | ||||
| -rw-r--r-- | debug_toolbar/panels/version.py | 4 | ||||
| -rw-r--r-- | debug_toolbar/toolbar/loader.py | 5 |
3 files changed, 11 insertions, 11 deletions
diff --git a/debug_toolbar/panels/signals.py b/debug_toolbar/panels/signals.py index 2d38b1f..984b064 100644 --- a/debug_toolbar/panels/signals.py +++ b/debug_toolbar/panels/signals.py @@ -1,5 +1,3 @@ -import sys - from django.conf import settings from django.core.signals import (request_started, request_finished, got_request_exception) @@ -7,6 +5,8 @@ from django.db.models.signals import (class_prepared, pre_init, post_init, pre_save, post_save, pre_delete, post_delete, post_syncdb) from django.dispatch.dispatcher import WEAKREF_TYPES from django.utils.translation import ugettext_lazy as _, ungettext +from django.utils.importlib import import_module + try: from django.db.backends.signals import connection_created @@ -60,6 +60,7 @@ class SignalDebugPanel(DebugPanel): def url(self): return '' + @property def signals(self): signals = self.SIGNALS.copy() if hasattr(settings, 'DEBUG_TOOLBAR_CONFIG'): @@ -67,12 +68,10 @@ class SignalDebugPanel(DebugPanel): else: extra_signals = [] for signal in extra_signals: - parts = signal.split('.') - path = '.'.join(parts[:-1]) - __import__(path) - signals[parts[-1]] = getattr(sys.modules[path], parts[-1]) + mod_path, signal_name = signal.rsplit('.', 1) + signals_mod = import_module(mod_path) + signals[signal_name] = getattr(signals_mod, signal_name) return signals - signals = property(signals) def process_response(self, request, response): signals = [] diff --git a/debug_toolbar/panels/version.py b/debug_toolbar/panels/version.py index 7ed9716..ccb0ad8 100644 --- a/debug_toolbar/panels/version.py +++ b/debug_toolbar/panels/version.py @@ -4,6 +4,7 @@ import django from django.conf import settings from django.utils.translation import ugettext_lazy as _ from django.utils.datastructures import SortedDict +from django.utils.importlib import import_module from debug_toolbar.panels import DebugPanel @@ -32,8 +33,7 @@ class VersionDebugPanel(DebugPanel): versions = [('Python', '%d.%d.%d' % sys.version_info[:3])] for app in list(settings.INSTALLED_APPS) + ['django']: name = app.split('.')[-1].replace('_', ' ').capitalize() - __import__(app) - app = sys.modules[app] + app = import_module(app) if hasattr(app, 'get_version'): get_version = app.get_version if callable(get_version): diff --git a/debug_toolbar/toolbar/loader.py b/debug_toolbar/toolbar/loader.py index 4d09a27..02a558d 100644 --- a/debug_toolbar/toolbar/loader.py +++ b/debug_toolbar/toolbar/loader.py @@ -7,6 +7,7 @@ import os.path from django.conf import settings from django.template.loader import render_to_string from django.utils.datastructures import SortedDict +from django.utils.importlib import import_module from django.utils.safestring import mark_safe @@ -91,10 +92,10 @@ def load_panel_classes(): dot = panel_path.rindex('.') except ValueError: raise ImproperlyConfigured( - '%s isn\'t a debug panel module' % panel_path) + "%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, {}, {}, ['']) + mod = import_module(panel_module) except ImportError, e: raise ImproperlyConfigured( 'Error importing debug panel %s: "%s"' % |
