|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- from __future__ import absolute_import, unicode_literals
-
- import warnings
-
- from django.conf import settings
- from django.utils import six
- from django.utils.lru_cache import lru_cache
-
- # Always import this module as follows:
- # from debug_toolbar import settings [as dt_settings]
-
- # Don't import directly CONFIG or PANELs, or you will miss changes performed
- # with override_settings in tests.
-
-
- CONFIG_DEFAULTS = {
- # Toolbar options
- 'DISABLE_PANELS': {'debug_toolbar.panels.redirects.RedirectsPanel'},
- 'INSERT_BEFORE': '</body>',
- 'RENDER_PANELS': None,
- 'RESULTS_CACHE_SIZE': 10,
- 'ROOT_TAG_EXTRA_ATTRS': '',
- 'SHOW_COLLAPSED': False,
- 'SHOW_TOOLBAR_CALLBACK': 'debug_toolbar.middleware.show_toolbar',
- # Panel options
- 'EXTRA_SIGNALS': [],
- 'ENABLE_STACKTRACES': True,
- 'HIDE_IN_STACKTRACES': (
- 'socketserver' if six.PY3 else 'SocketServer',
- 'threading',
- 'wsgiref',
- 'debug_toolbar',
- 'django.db',
- 'django.core.handlers',
- 'django.core.servers',
- 'django.utils.decorators',
- 'django.utils.deprecation',
- 'django.utils.functional',
- ),
- 'PROFILER_MAX_DEPTH': 10,
- 'SHOW_TEMPLATE_CONTEXT': True,
- 'SKIP_TEMPLATE_PREFIXES': (
- 'django/forms/widgets/',
- 'admin/widgets/',
- ),
- 'SQL_WARNING_THRESHOLD': 500, # milliseconds
- }
-
-
- @lru_cache()
- def get_config():
- USER_CONFIG = getattr(settings, 'DEBUG_TOOLBAR_CONFIG', {})
-
- # Backward-compatibility for 1.0, remove in 2.0.
- _RENAMED_CONFIG = {
- 'RESULTS_STORE_SIZE': 'RESULTS_CACHE_SIZE',
- 'ROOT_TAG_ATTRS': 'ROOT_TAG_EXTRA_ATTRS',
- 'HIDDEN_STACKTRACE_MODULES': 'HIDE_IN_STACKTRACES'
- }
- for old_name, new_name in _RENAMED_CONFIG.items():
- if old_name in USER_CONFIG:
- warnings.warn(
- "%r was renamed to %r. Update your DEBUG_TOOLBAR_CONFIG "
- "setting." % (old_name, new_name), DeprecationWarning)
- USER_CONFIG[new_name] = USER_CONFIG.pop(old_name)
-
- if 'HIDE_DJANGO_SQL' in USER_CONFIG:
- warnings.warn(
- "HIDE_DJANGO_SQL was removed. Update your "
- "DEBUG_TOOLBAR_CONFIG setting.", DeprecationWarning)
- USER_CONFIG.pop('HIDE_DJANGO_SQL')
-
- if 'TAG' in USER_CONFIG:
- warnings.warn(
- "TAG was replaced by INSERT_BEFORE. Update your "
- "DEBUG_TOOLBAR_CONFIG setting.", DeprecationWarning)
- USER_CONFIG['INSERT_BEFORE'] = '</%s>' % USER_CONFIG.pop('TAG')
-
- CONFIG = CONFIG_DEFAULTS.copy()
- CONFIG.update(USER_CONFIG)
-
- if 'INTERCEPT_REDIRECTS' in USER_CONFIG:
- warnings.warn(
- "INTERCEPT_REDIRECTS is deprecated. Please use the "
- "DISABLE_PANELS config in the "
- "DEBUG_TOOLBAR_CONFIG setting.", DeprecationWarning)
- if USER_CONFIG['INTERCEPT_REDIRECTS']:
- if 'debug_toolbar.panels.redirects.RedirectsPanel' \
- in CONFIG['DISABLE_PANELS']:
- # RedirectsPanel should be enabled
- try:
- CONFIG['DISABLE_PANELS'].remove(
- 'debug_toolbar.panels.redirects.RedirectsPanel'
- )
- except KeyError:
- # We wanted to remove it, but it didn't exist. This is fine
- pass
- elif 'debug_toolbar.panels.redirects.RedirectsPanel' \
- not in CONFIG['DISABLE_PANELS']:
- # RedirectsPanel should be disabled
- CONFIG['DISABLE_PANELS'].add(
- 'debug_toolbar.panels.redirects.RedirectsPanel'
- )
-
- return CONFIG
-
-
- PANELS_DEFAULTS = [
- 'debug_toolbar.panels.versions.VersionsPanel',
- 'debug_toolbar.panels.timer.TimerPanel',
- 'debug_toolbar.panels.settings.SettingsPanel',
- 'debug_toolbar.panels.headers.HeadersPanel',
- 'debug_toolbar.panels.request.RequestPanel',
- 'debug_toolbar.panels.sql.SQLPanel',
- 'debug_toolbar.panels.staticfiles.StaticFilesPanel',
- 'debug_toolbar.panels.templates.TemplatesPanel',
- 'debug_toolbar.panels.cache.CachePanel',
- 'debug_toolbar.panels.signals.SignalsPanel',
- 'debug_toolbar.panels.logging.LoggingPanel',
- 'debug_toolbar.panels.redirects.RedirectsPanel',
- ]
-
-
- @lru_cache()
- def get_panels():
- try:
- PANELS = list(settings.DEBUG_TOOLBAR_PANELS)
- except AttributeError:
- PANELS = PANELS_DEFAULTS
- else:
- # Backward-compatibility for 1.0, remove in 2.0.
- _RENAMED_PANELS = {
- 'debug_toolbar.panels.version.VersionDebugPanel':
- 'debug_toolbar.panels.versions.VersionsPanel',
- 'debug_toolbar.panels.timer.TimerDebugPanel':
- 'debug_toolbar.panels.timer.TimerPanel',
- 'debug_toolbar.panels.settings_vars.SettingsDebugPanel':
- 'debug_toolbar.panels.settings.SettingsPanel',
- 'debug_toolbar.panels.headers.HeaderDebugPanel':
- 'debug_toolbar.panels.headers.HeadersPanel',
- 'debug_toolbar.panels.request_vars.RequestVarsDebugPanel':
- 'debug_toolbar.panels.request.RequestPanel',
- 'debug_toolbar.panels.sql.SQLDebugPanel':
- 'debug_toolbar.panels.sql.SQLPanel',
- 'debug_toolbar.panels.template.TemplateDebugPanel':
- 'debug_toolbar.panels.templates.TemplatesPanel',
- 'debug_toolbar.panels.cache.CacheDebugPanel':
- 'debug_toolbar.panels.cache.CachePanel',
- 'debug_toolbar.panels.signals.SignalDebugPanel':
- 'debug_toolbar.panels.signals.SignalsPanel',
- 'debug_toolbar.panels.logger.LoggingDebugPanel':
- 'debug_toolbar.panels.logging.LoggingPanel',
- 'debug_toolbar.panels.redirects.InterceptRedirectsDebugPanel':
- 'debug_toolbar.panels.redirects.RedirectsPanel',
- 'debug_toolbar.panels.profiling.ProfilingDebugPanel':
- 'debug_toolbar.panels.profiling.ProfilingPanel',
- }
- for index, old_panel in enumerate(PANELS):
- new_panel = _RENAMED_PANELS.get(old_panel)
- if new_panel is not None:
- warnings.warn(
- "%r was renamed to %r. Update your DEBUG_TOOLBAR_PANELS "
- "setting." % (old_panel, new_panel), DeprecationWarning)
- PANELS[index] = new_panel
- return PANELS
|