File: settings.py

package info (click to toggle)
python-django-debug-toolbar 1%3A1.6-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 1,456 kB
  • ctags: 534
  • sloc: python: 3,073; makefile: 191; sh: 1
file content (157 lines) | stat: -rw-r--r-- 6,167 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
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': set(['debug_toolbar.panels.redirects.RedirectsPanel']),
    'INSERT_BEFORE': '</body>',
    'JQUERY_URL': '//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js',
    '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',
    ),
    'PROFILER_MAX_DEPTH': 10,
    'SHOW_TEMPLATE_CONTEXT': True,
    '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