django-debug-toolbar 6.0.0__tar.gz → 6.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/.editorconfig +3 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/.github/PULL_REQUEST_TEMPLATE.md +3 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/.github/dependabot.yml +2 -0
- django_debug_toolbar-6.2.0/.github/release.yml +6 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/.github/workflows/coverage.yml +2 -2
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/.github/workflows/release.yml +15 -11
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/.github/workflows/test.yml +118 -24
- django_debug_toolbar-6.2.0/.github/workflows/zizmor.yml +26 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/.gitignore +2 -1
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/.pre-commit-config.yaml +6 -6
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/PKG-INFO +5 -5
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/README.rst +1 -1
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/biome.json +4 -1
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/__init__.py +1 -1
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/_compat.py +10 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/_stubs.py +7 -2
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/apps.py +29 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/forms.py +2 -1
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/en/LC_MESSAGES/django.po +101 -43
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/middleware.py +18 -10
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/__init__.py +3 -2
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/cache.py +22 -13
- django_debug_toolbar-6.2.0/debug_toolbar/panels/community.py +13 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/history/__init__.py +1 -1
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/history/panel.py +16 -14
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/history/views.py +11 -7
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/redirects.py +12 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/settings.py +10 -2
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/sql/tracking.py +16 -7
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/templates/panel.py +1 -1
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/timer.py +2 -0
- django_debug_toolbar-6.2.0/debug_toolbar/sanitize.py +12 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/settings.py +7 -5
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/static/debug_toolbar/css/toolbar.css +41 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/store.py +1 -5
- django_debug_toolbar-6.2.0/debug_toolbar/templates/debug_toolbar/panels/community.html +48 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/panels/settings.html +1 -1
- django_debug_toolbar-6.2.0/debug_toolbar/templates/debug_toolbar/redirect.html +75 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/toolbar.py +52 -31
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/utils.py +15 -1
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/views.py +8 -5
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/docs/architecture.rst +3 -1
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/docs/changes.rst +46 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/docs/conf.py +1 -1
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/docs/configuration.rst +16 -4
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/docs/contributing.rst +72 -1
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/docs/installation.rst +5 -3
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/docs/panels.rst +16 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/docs/spelling_wordlist.txt +2 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/settings.py +1 -1
- django_debug_toolbar-6.2.0/example/templates/cache.html +11 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/templates/index.html +1 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/urls.py +2 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/views.py +8 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/pyproject.toml +5 -4
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/base.py +1 -2
- django_debug_toolbar-6.2.0/tests/panels/__init__.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/panels/test_cache.py +4 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/panels/test_history.py +4 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/panels/test_redirects.py +18 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/panels/test_settings.py +21 -2
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/panels/test_sql.py +120 -1
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/settings.py +4 -0
- django_debug_toolbar-6.2.0/tests/test_apps.py +47 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/test_csp_rendering.py +32 -10
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/test_integration_async.py +24 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/test_middleware.py +8 -3
- django_debug_toolbar-6.2.0/tests/test_sanitize.py +18 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/test_store.py +9 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/views.py +3 -1
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tox.ini +11 -10
- django_debug_toolbar-6.0.0/debug_toolbar/templates/debug_toolbar/redirect.html +0 -15
- /django_debug_toolbar-6.0.0/debug_toolbar/management/__init__.py → /django_debug_toolbar-6.2.0/.git-blame-ignore-revs +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/.readthedocs.yaml +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/.tx/config +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/CODE_OF_CONDUCT.md +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/CONTRIBUTING.md +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/LICENSE +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/Makefile +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/SECURITY.md +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/decorators.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/bg/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/bg/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/ca/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/ca/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/cs/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/cs/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/de/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/de/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/en/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/es/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/es/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/fa/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/fa/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/fi/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/fi/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/fr/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/fr/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/he/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/he/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/id/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/id/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/it/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/it/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/ja/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/ja/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/ko/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/ko/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/nl/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/nl/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/pl/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/pl/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/pt/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/pt/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/pt_BR/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/ru/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/ru/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/sk/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/sk/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/sv_SE/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/sv_SE/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/uk/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/uk/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/zh_CN/LC_MESSAGES/django.mo +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/locale/zh_CN/LC_MESSAGES/django.po +0 -0
- {django_debug_toolbar-6.0.0/debug_toolbar/management/commands → django_debug_toolbar-6.2.0/debug_toolbar/management}/__init__.py +0 -0
- {django_debug_toolbar-6.0.0/debug_toolbar/migrations → django_debug_toolbar-6.2.0/debug_toolbar/management/commands}/__init__.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/management/commands/debugsqlshell.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/migrations/0001_initial.py +0 -0
- {django_debug_toolbar-6.0.0/debug_toolbar/templatetags → django_debug_toolbar-6.2.0/debug_toolbar/migrations}/__init__.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/models.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/alerts.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/headers.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/history/forms.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/profiling.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/request.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/signals.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/sql/__init__.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/sql/forms.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/sql/panel.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/sql/utils.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/sql/views.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/staticfiles.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/templates/__init__.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/templates/jinja2.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/templates/views.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/panels/versions.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/static/debug_toolbar/css/print.css +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/static/debug_toolbar/js/history.js +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/static/debug_toolbar/js/redirect.js +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/static/debug_toolbar/js/timer.js +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/static/debug_toolbar/js/toolbar.js +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/static/debug_toolbar/js/utils.js +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/base.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/includes/panel_button.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/includes/panel_content.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/includes/theme_selector.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/panels/alerts.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/panels/cache.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/panels/headers.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/panels/history.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/panels/history_tr.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/panels/profiling.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/panels/request.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/panels/request_variables.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/panels/signals.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/panels/sql.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/panels/sql_explain.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/panels/sql_profile.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/panels/sql_select.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/panels/staticfiles.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/panels/template_source.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/panels/templates.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/panels/timer.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/templates/debug_toolbar/panels/versions.html +0 -0
- {django_debug_toolbar-6.0.0/example → django_debug_toolbar-6.2.0/debug_toolbar/templatetags}/__init__.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/debug_toolbar/urls.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/docs/Makefile +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/docs/checks.rst +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/docs/commands.rst +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/docs/index.rst +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/docs/make.bat +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/docs/resources.rst +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/docs/tips.rst +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/README.rst +0 -0
- {django_debug_toolbar-6.0.0/example/async_ → django_debug_toolbar-6.2.0/example}/__init__.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/asgi.py +0 -0
- {django_debug_toolbar-6.0.0/tests → django_debug_toolbar-6.2.0/example/async_}/__init__.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/async_/settings.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/async_/urls.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/async_/views.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/django-debug-toolbar.png +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/example.db +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/manage.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/screenshot.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/static/test.css +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/templates/async_db.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/templates/bad_form.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/templates/htmx/boost.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/templates/jinja2/index.jinja +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/templates/jquery/index.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/templates/mootools/index.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/templates/prototype/index.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/templates/turbo/index.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/test_views.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/example/wsgi.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/requirements_dev.txt +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/setup.py +0 -0
- {django_debug_toolbar-6.0.0/tests/commands → django_debug_toolbar-6.2.0/tests}/__init__.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/additional_static/base.css +0 -0
- {django_debug_toolbar-6.0.0/tests/panels → django_debug_toolbar-6.2.0/tests/commands}/__init__.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/commands/test_debugsqlshell.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/context_processors.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/forms.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/loaders.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/middleware.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/models.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/panels/test_alerts.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/panels/test_async_panel_compatibility.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/panels/test_custom.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/panels/test_profiling.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/panels/test_request.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/panels/test_staticfiles.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/panels/test_template.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/panels/test_versions.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/sync.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/templates/ajax/ajax.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/templates/base.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/templates/basic.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/templates/jinja2/base.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/templates/jinja2/basic.jinja +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/templates/registration/login.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/templates/sql/flat.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/templates/sql/included.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/templates/sql/nested.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/templates/staticfiles/async_static.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/templates/staticfiles/path.html +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/test_checks.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/test_decorators.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/test_forms.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/test_integration.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/test_login_not_required.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/test_models.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/test_settings.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/test_toolbar.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/test_utils.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/urls.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/urls_invalid.py +0 -0
- {django_debug_toolbar-6.0.0 → django_debug_toolbar-6.2.0}/tests/urls_use_package_urls.py +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: Post coverage comment
|
|
3
3
|
|
|
4
4
|
on:
|
|
5
|
-
workflow_run:
|
|
5
|
+
workflow_run: # zizmor: ignore[dangerous-triggers] - This follows GitHub's recommended pattern for posting PR comments from untrusted forks
|
|
6
6
|
workflows: ["Test"]
|
|
7
7
|
types:
|
|
8
8
|
- completed
|
|
@@ -27,7 +27,7 @@ jobs:
|
|
|
27
27
|
# DO NOT run actions/checkout here, for security reasons
|
|
28
28
|
# For details, refer to https://securitylab.github.com/research/github-actions-preventing-pwn-requests/
|
|
29
29
|
- name: Post comment
|
|
30
|
-
uses: py-cov-action/python-coverage-comment-action@v3
|
|
30
|
+
uses: py-cov-action/python-coverage-comment-action@e623398c19eb3853a5572d4a516e10b15b5cefbc # v3.39
|
|
31
31
|
with:
|
|
32
32
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
33
33
|
GITHUB_PR_RUN_ID: ${{ github.event.workflow_run.id }}
|
|
@@ -2,6 +2,8 @@ name: Publish Python 🐍 distribution 📦 to PyPI and TestPyPI
|
|
|
2
2
|
|
|
3
3
|
on: push
|
|
4
4
|
|
|
5
|
+
permissions: {}
|
|
6
|
+
|
|
5
7
|
env:
|
|
6
8
|
PYPI_URL: https://pypi.org/p/django-debug-toolbar
|
|
7
9
|
PYPI_TEST_URL: https://test.pypi.org/p/django-debug-toolbar
|
|
@@ -13,9 +15,11 @@ jobs:
|
|
|
13
15
|
runs-on: ubuntu-latest
|
|
14
16
|
|
|
15
17
|
steps:
|
|
16
|
-
- uses: actions/checkout@
|
|
18
|
+
- uses: actions/checkout@v5
|
|
19
|
+
with:
|
|
20
|
+
persist-credentials: false
|
|
17
21
|
- name: Set up Python
|
|
18
|
-
uses: actions/setup-python@
|
|
22
|
+
uses: actions/setup-python@v6
|
|
19
23
|
with:
|
|
20
24
|
python-version: "3.x"
|
|
21
25
|
- name: Install pypa/build
|
|
@@ -24,7 +28,7 @@ jobs:
|
|
|
24
28
|
- name: Build a binary wheel and a source tarball
|
|
25
29
|
run: python3 -m build
|
|
26
30
|
- name: Store the distribution packages
|
|
27
|
-
uses: actions/upload-artifact@
|
|
31
|
+
uses: actions/upload-artifact@v5
|
|
28
32
|
with:
|
|
29
33
|
name: python-package-distributions
|
|
30
34
|
path: dist/
|
|
@@ -43,12 +47,12 @@ jobs:
|
|
|
43
47
|
id-token: write # IMPORTANT: mandatory for trusted publishing
|
|
44
48
|
steps:
|
|
45
49
|
- name: Download all the dists
|
|
46
|
-
uses: actions/download-artifact@
|
|
50
|
+
uses: actions/download-artifact@v6
|
|
47
51
|
with:
|
|
48
52
|
name: python-package-distributions
|
|
49
53
|
path: dist/
|
|
50
54
|
- name: Publish distribution 📦 to PyPI
|
|
51
|
-
uses: pypa/gh-action-pypi-publish@release/v1.
|
|
55
|
+
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # release/v1.13
|
|
52
56
|
|
|
53
57
|
github-release:
|
|
54
58
|
name: >-
|
|
@@ -64,12 +68,12 @@ jobs:
|
|
|
64
68
|
|
|
65
69
|
steps:
|
|
66
70
|
- name: Download all the dists
|
|
67
|
-
uses: actions/download-artifact@
|
|
71
|
+
uses: actions/download-artifact@v6
|
|
68
72
|
with:
|
|
69
73
|
name: python-package-distributions
|
|
70
74
|
path: dist/
|
|
71
75
|
- name: Sign the dists with Sigstore
|
|
72
|
-
uses: sigstore/gh-action-sigstore-python@v3.0
|
|
76
|
+
uses: sigstore/gh-action-sigstore-python@f832326173235dcb00dd5d92cd3f353de3188e6c # v3.1.0
|
|
73
77
|
with:
|
|
74
78
|
inputs: >-
|
|
75
79
|
./dist/*.tar.gz
|
|
@@ -79,7 +83,7 @@ jobs:
|
|
|
79
83
|
GITHUB_TOKEN: ${{ github.token }}
|
|
80
84
|
run: >-
|
|
81
85
|
gh release create
|
|
82
|
-
|
|
86
|
+
"${GITHUB_REF_NAME}"
|
|
83
87
|
--repo '${{ github.repository }}'
|
|
84
88
|
--notes ""
|
|
85
89
|
- name: Upload artifact signatures to GitHub Release
|
|
@@ -90,7 +94,7 @@ jobs:
|
|
|
90
94
|
# sigstore-produced signatures and certificates.
|
|
91
95
|
run: >-
|
|
92
96
|
gh release upload
|
|
93
|
-
|
|
97
|
+
"${GITHUB_REF_NAME}" dist/**
|
|
94
98
|
--repo '${{ github.repository }}'
|
|
95
99
|
|
|
96
100
|
publish-to-testpypi:
|
|
@@ -109,12 +113,12 @@ jobs:
|
|
|
109
113
|
|
|
110
114
|
steps:
|
|
111
115
|
- name: Download all the dists
|
|
112
|
-
uses: actions/download-artifact@
|
|
116
|
+
uses: actions/download-artifact@v6
|
|
113
117
|
with:
|
|
114
118
|
name: python-package-distributions
|
|
115
119
|
path: dist/
|
|
116
120
|
- name: Publish distribution 📦 to TestPyPI
|
|
117
|
-
uses: pypa/gh-action-pypi-publish@release/v1.
|
|
121
|
+
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # release/v1.13
|
|
118
122
|
with:
|
|
119
123
|
repository-url: https://test.pypi.org/legacy/
|
|
120
124
|
skip-existing: true
|
|
@@ -2,11 +2,22 @@ name: Test
|
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
tags:
|
|
8
|
+
- '**'
|
|
5
9
|
pull_request:
|
|
6
10
|
schedule:
|
|
7
11
|
# Run weekly on Saturday
|
|
8
12
|
- cron: '37 3 * * SAT'
|
|
9
13
|
|
|
14
|
+
concurrency:
|
|
15
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
16
|
+
cancel-in-progress: true
|
|
17
|
+
|
|
18
|
+
permissions:
|
|
19
|
+
contents: read
|
|
20
|
+
|
|
10
21
|
jobs:
|
|
11
22
|
mysql:
|
|
12
23
|
runs-on: ubuntu-latest
|
|
@@ -14,11 +25,11 @@ jobs:
|
|
|
14
25
|
fail-fast: false
|
|
15
26
|
max-parallel: 5
|
|
16
27
|
matrix:
|
|
17
|
-
python-version: ['3.
|
|
28
|
+
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
|
|
18
29
|
|
|
19
30
|
services:
|
|
20
31
|
mariadb:
|
|
21
|
-
image: mariadb
|
|
32
|
+
image: mariadb:11.8
|
|
22
33
|
env:
|
|
23
34
|
MARIADB_ROOT_PASSWORD: debug_toolbar
|
|
24
35
|
options: >-
|
|
@@ -30,10 +41,12 @@ jobs:
|
|
|
30
41
|
- 3306:3306
|
|
31
42
|
|
|
32
43
|
steps:
|
|
33
|
-
- uses: actions/checkout@
|
|
44
|
+
- uses: actions/checkout@v5
|
|
45
|
+
with:
|
|
46
|
+
persist-credentials: false
|
|
34
47
|
|
|
35
48
|
- name: Set up Python ${{ matrix.python-version }}
|
|
36
|
-
uses: actions/setup-python@
|
|
49
|
+
uses: actions/setup-python@v6
|
|
37
50
|
with:
|
|
38
51
|
python-version: ${{ matrix.python-version }}
|
|
39
52
|
allow-prereleases: true
|
|
@@ -51,6 +64,7 @@ jobs:
|
|
|
51
64
|
${{ matrix.python-version }}-v1-${{ hashFiles('**/pyproject.toml') }}-${{ hashFiles('**/tox.ini') }}
|
|
52
65
|
restore-keys: |
|
|
53
66
|
${{ matrix.python-version }}-v1-
|
|
67
|
+
lookup-only: true
|
|
54
68
|
|
|
55
69
|
- name: Install dependencies
|
|
56
70
|
run: |
|
|
@@ -65,6 +79,14 @@ jobs:
|
|
|
65
79
|
DB_PASSWORD: debug_toolbar
|
|
66
80
|
DB_HOST: 127.0.0.1
|
|
67
81
|
DB_PORT: 3306
|
|
82
|
+
COVERAGE_FILE: ".coverage.mysql.${{ matrix.python-version }}"
|
|
83
|
+
|
|
84
|
+
- name: Store coverage file
|
|
85
|
+
uses: actions/upload-artifact@v5
|
|
86
|
+
with:
|
|
87
|
+
name: coverage-mysql-${{ matrix.python-version }}
|
|
88
|
+
path: .coverage.mysql.${{ matrix.python-version }}*
|
|
89
|
+
include-hidden-files: true
|
|
68
90
|
|
|
69
91
|
|
|
70
92
|
postgres:
|
|
@@ -73,25 +95,35 @@ jobs:
|
|
|
73
95
|
fail-fast: false
|
|
74
96
|
max-parallel: 5
|
|
75
97
|
matrix:
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
98
|
+
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
|
|
99
|
+
database: [postgresql, postgis, psycopg3]
|
|
100
|
+
exclude:
|
|
101
|
+
- python-version: '3.13'
|
|
102
|
+
database: postgis
|
|
103
|
+
- python-version: '3.13'
|
|
104
|
+
database: postgresql
|
|
105
|
+
- python-version: '3.14'
|
|
106
|
+
database: postgis
|
|
107
|
+
- python-version: '3.14'
|
|
108
|
+
database: postgresql
|
|
109
|
+
# Add postgis3 to our matrix for modern Python versions
|
|
80
110
|
include:
|
|
81
|
-
- python-version: '3.10'
|
|
82
|
-
database: psycopg3
|
|
83
|
-
- python-version: '3.11'
|
|
84
|
-
database: psycopg3
|
|
85
|
-
- python-version: '3.12'
|
|
86
|
-
database: psycopg3
|
|
87
111
|
- python-version: '3.13'
|
|
88
|
-
database:
|
|
112
|
+
database: postgis3
|
|
89
113
|
- python-version: '3.13'
|
|
114
|
+
database: psycopg3
|
|
115
|
+
env:
|
|
116
|
+
DJANGO_SELENIUM_TESTS=true
|
|
117
|
+
- python-version: '3.14'
|
|
90
118
|
database: postgis3
|
|
119
|
+
- python-version: '3.14'
|
|
120
|
+
database: psycopg3
|
|
121
|
+
env:
|
|
122
|
+
DJANGO_SELENIUM_TESTS=true
|
|
91
123
|
|
|
92
124
|
services:
|
|
93
125
|
postgres:
|
|
94
|
-
image: postgis/postgis:
|
|
126
|
+
image: postgis/postgis:17-3.5
|
|
95
127
|
env:
|
|
96
128
|
POSTGRES_DB: debug_toolbar
|
|
97
129
|
POSTGRES_USER: debug_toolbar
|
|
@@ -105,10 +137,12 @@ jobs:
|
|
|
105
137
|
--health-retries 5
|
|
106
138
|
|
|
107
139
|
steps:
|
|
108
|
-
- uses: actions/checkout@
|
|
140
|
+
- uses: actions/checkout@v5
|
|
141
|
+
with:
|
|
142
|
+
persist-credentials: false
|
|
109
143
|
|
|
110
144
|
- name: Set up Python ${{ matrix.python-version }}
|
|
111
|
-
uses: actions/setup-python@
|
|
145
|
+
uses: actions/setup-python@v6
|
|
112
146
|
with:
|
|
113
147
|
python-version: ${{ matrix.python-version }}
|
|
114
148
|
allow-prereleases: true
|
|
@@ -126,6 +160,7 @@ jobs:
|
|
|
126
160
|
${{ matrix.python-version }}-v1-${{ hashFiles('**/pyproject.toml') }}-${{ hashFiles('**/tox.ini') }}
|
|
127
161
|
restore-keys: |
|
|
128
162
|
${{ matrix.python-version }}-v1-
|
|
163
|
+
lookup-only: true
|
|
129
164
|
|
|
130
165
|
- name: Install gdal-bin (for postgis)
|
|
131
166
|
run: |
|
|
@@ -143,6 +178,15 @@ jobs:
|
|
|
143
178
|
DB_BACKEND: ${{ matrix.database }}
|
|
144
179
|
DB_HOST: localhost
|
|
145
180
|
DB_PORT: 5432
|
|
181
|
+
DJANGO_SELENIUM_TESTS: ${{ matrix.env.DJANGO_SELENIUM_TESTS }}
|
|
182
|
+
COVERAGE_FILE: ".coverage.${{ matrix.database }}.${{ matrix.python-version }}"
|
|
183
|
+
|
|
184
|
+
- name: Store coverage file
|
|
185
|
+
uses: actions/upload-artifact@v5
|
|
186
|
+
with:
|
|
187
|
+
name: coverage-${{ matrix.database }}-${{ matrix.python-version }}
|
|
188
|
+
path: .coverage.${{ matrix.database }}.${{ matrix.python-version }}*
|
|
189
|
+
include-hidden-files: true
|
|
146
190
|
|
|
147
191
|
sqlite:
|
|
148
192
|
runs-on: ubuntu-latest
|
|
@@ -150,13 +194,15 @@ jobs:
|
|
|
150
194
|
fail-fast: false
|
|
151
195
|
max-parallel: 5
|
|
152
196
|
matrix:
|
|
153
|
-
python-version: ['3.
|
|
197
|
+
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
|
|
154
198
|
|
|
155
199
|
steps:
|
|
156
|
-
- uses: actions/checkout@
|
|
200
|
+
- uses: actions/checkout@v5
|
|
201
|
+
with:
|
|
202
|
+
persist-credentials: false
|
|
157
203
|
|
|
158
204
|
- name: Set up Python ${{ matrix.python-version }}
|
|
159
|
-
uses: actions/setup-python@
|
|
205
|
+
uses: actions/setup-python@v6
|
|
160
206
|
with:
|
|
161
207
|
python-version: ${{ matrix.python-version }}
|
|
162
208
|
allow-prereleases: true
|
|
@@ -174,6 +220,7 @@ jobs:
|
|
|
174
220
|
${{ matrix.python-version }}-v1-${{ hashFiles('**/pyproject.toml') }}-${{ hashFiles('**/tox.ini') }}
|
|
175
221
|
restore-keys: |
|
|
176
222
|
${{ matrix.python-version }}-v1-
|
|
223
|
+
lookup-only: true
|
|
177
224
|
|
|
178
225
|
- name: Install dependencies
|
|
179
226
|
run: |
|
|
@@ -185,6 +232,14 @@ jobs:
|
|
|
185
232
|
env:
|
|
186
233
|
DB_BACKEND: sqlite3
|
|
187
234
|
DB_NAME: ":memory:"
|
|
235
|
+
COVERAGE_FILE: ".coverage.sqlite.${{ matrix.python-version }}"
|
|
236
|
+
|
|
237
|
+
- name: Store coverage file
|
|
238
|
+
uses: actions/upload-artifact@v5
|
|
239
|
+
with:
|
|
240
|
+
name: coverage-sqlite-${{ matrix.python-version }}
|
|
241
|
+
path: .coverage.sqlite.${{ matrix.python-version }}*
|
|
242
|
+
include-hidden-files: true
|
|
188
243
|
|
|
189
244
|
lint:
|
|
190
245
|
runs-on: ubuntu-latest
|
|
@@ -192,12 +247,14 @@ jobs:
|
|
|
192
247
|
fail-fast: false
|
|
193
248
|
|
|
194
249
|
steps:
|
|
195
|
-
- uses: actions/checkout@
|
|
250
|
+
- uses: actions/checkout@v5
|
|
251
|
+
with:
|
|
252
|
+
persist-credentials: false
|
|
196
253
|
|
|
197
254
|
- name: Set up Python ${{ matrix.python-version }}
|
|
198
|
-
uses: actions/setup-python@
|
|
255
|
+
uses: actions/setup-python@v6
|
|
199
256
|
with:
|
|
200
|
-
python-version: 3.
|
|
257
|
+
python-version: '3.10'
|
|
201
258
|
|
|
202
259
|
- name: Get pip cache dir
|
|
203
260
|
id: pip-cache
|
|
@@ -212,6 +269,7 @@ jobs:
|
|
|
212
269
|
${{ matrix.python-version }}-v1-${{ hashFiles('**/pyproject.toml') }}-${{ hashFiles('**/tox.ini') }}
|
|
213
270
|
restore-keys: |
|
|
214
271
|
${{ matrix.python-version }}-v1-
|
|
272
|
+
lookup-only: true
|
|
215
273
|
|
|
216
274
|
- name: Install dependencies
|
|
217
275
|
run: |
|
|
@@ -220,3 +278,39 @@ jobs:
|
|
|
220
278
|
|
|
221
279
|
- name: Test with tox
|
|
222
280
|
run: tox -e docs,packaging
|
|
281
|
+
|
|
282
|
+
coverage:
|
|
283
|
+
name: Coverage
|
|
284
|
+
runs-on: ubuntu-latest
|
|
285
|
+
needs:
|
|
286
|
+
- mysql
|
|
287
|
+
- postgres
|
|
288
|
+
- sqlite
|
|
289
|
+
permissions:
|
|
290
|
+
pull-requests: write
|
|
291
|
+
contents: write
|
|
292
|
+
steps:
|
|
293
|
+
- uses: actions/checkout@v4
|
|
294
|
+
with:
|
|
295
|
+
# Persist the credentials because coverage_comment needs them too.
|
|
296
|
+
persist-credentials: true
|
|
297
|
+
|
|
298
|
+
- uses: actions/download-artifact@v6
|
|
299
|
+
id: download
|
|
300
|
+
with:
|
|
301
|
+
pattern: coverage-*
|
|
302
|
+
merge-multiple: true
|
|
303
|
+
|
|
304
|
+
- name: Coverage comment
|
|
305
|
+
id: coverage_comment
|
|
306
|
+
uses: py-cov-action/python-coverage-comment-action@e623398c19eb3853a5572d4a516e10b15b5cefbc # v3.39
|
|
307
|
+
with:
|
|
308
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
309
|
+
MERGE_COVERAGE_FILES: true
|
|
310
|
+
|
|
311
|
+
- name: Store Pull Request comment to be posted
|
|
312
|
+
uses: actions/upload-artifact@v5
|
|
313
|
+
if: steps.coverage_comment.outputs.COMMENT_FILE_WRITTEN == 'true'
|
|
314
|
+
with:
|
|
315
|
+
name: python-coverage-comment-action
|
|
316
|
+
path: python-coverage-comment-action.txt
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: GitHub Actions Security Analysis with zizmor 🌈
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: ["main"]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: ["**"]
|
|
8
|
+
|
|
9
|
+
permissions: {}
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
zizmor:
|
|
13
|
+
name: Run zizmor 🌈
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
permissions:
|
|
16
|
+
security-events: write
|
|
17
|
+
contents: read # only needed for private repos
|
|
18
|
+
actions: read # only needed for private repos
|
|
19
|
+
steps:
|
|
20
|
+
- name: Checkout repository
|
|
21
|
+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
22
|
+
with:
|
|
23
|
+
persist-credentials: false
|
|
24
|
+
|
|
25
|
+
- name: Run zizmor 🌈
|
|
26
|
+
uses: zizmorcore/zizmor-action@e639db99335bc9038abc0e066dfcd72e23d26fb4 # v0.3.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
repos:
|
|
2
2
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
3
|
-
rev:
|
|
3
|
+
rev: v6.0.0
|
|
4
4
|
hooks:
|
|
5
5
|
- id: check-toml
|
|
6
6
|
- id: check-yaml
|
|
@@ -14,12 +14,12 @@ repos:
|
|
|
14
14
|
hooks:
|
|
15
15
|
- id: doc8
|
|
16
16
|
- repo: https://github.com/adamchainz/django-upgrade
|
|
17
|
-
rev: 1.
|
|
17
|
+
rev: 1.29.1
|
|
18
18
|
hooks:
|
|
19
19
|
- id: django-upgrade
|
|
20
20
|
args: [--target-version, "4.2"]
|
|
21
21
|
- repo: https://github.com/adamchainz/djade-pre-commit
|
|
22
|
-
rev: "1.
|
|
22
|
+
rev: "1.7.0"
|
|
23
23
|
hooks:
|
|
24
24
|
- id: djade
|
|
25
25
|
args: [--target-version, "4.2"]
|
|
@@ -29,18 +29,18 @@ repos:
|
|
|
29
29
|
- id: rst-backticks
|
|
30
30
|
- id: rst-directive-colons
|
|
31
31
|
- repo: https://github.com/biomejs/pre-commit
|
|
32
|
-
rev: v2.
|
|
32
|
+
rev: v2.3.10
|
|
33
33
|
hooks:
|
|
34
34
|
- id: biome-check
|
|
35
35
|
verbose: true
|
|
36
36
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
37
|
-
rev: 'v0.
|
|
37
|
+
rev: 'v0.14.11'
|
|
38
38
|
hooks:
|
|
39
39
|
- id: ruff
|
|
40
40
|
args: [--fix, --exit-non-zero-on-fix]
|
|
41
41
|
- id: ruff-format
|
|
42
42
|
- repo: https://github.com/tox-dev/pyproject-fmt
|
|
43
|
-
rev: v2.
|
|
43
|
+
rev: v2.11.1
|
|
44
44
|
hooks:
|
|
45
45
|
- id: pyproject-fmt
|
|
46
46
|
- repo: https://github.com/abravalheri/validate-pyproject
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: django-debug-toolbar
|
|
3
|
-
Version: 6.
|
|
3
|
+
Version: 6.2.0
|
|
4
4
|
Summary: A configurable set of panels that display various debug information about the current request/response.
|
|
5
5
|
Project-URL: Changelog, https://django-debug-toolbar.readthedocs.io/en/latest/changes.html
|
|
6
6
|
Project-URL: Documentation, https://django-debug-toolbar.readthedocs.io/
|
|
@@ -15,21 +15,21 @@ Classifier: Development Status :: 5 - Production/Stable
|
|
|
15
15
|
Classifier: Environment :: Web Environment
|
|
16
16
|
Classifier: Framework :: Django
|
|
17
17
|
Classifier: Framework :: Django :: 4.2
|
|
18
|
-
Classifier: Framework :: Django :: 5.0
|
|
19
18
|
Classifier: Framework :: Django :: 5.1
|
|
20
19
|
Classifier: Framework :: Django :: 5.2
|
|
20
|
+
Classifier: Framework :: Django :: 6.0
|
|
21
21
|
Classifier: Intended Audience :: Developers
|
|
22
22
|
Classifier: License :: OSI Approved :: BSD License
|
|
23
23
|
Classifier: Operating System :: OS Independent
|
|
24
24
|
Classifier: Programming Language :: Python
|
|
25
25
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
26
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
27
26
|
Classifier: Programming Language :: Python :: 3.10
|
|
28
27
|
Classifier: Programming Language :: Python :: 3.11
|
|
29
28
|
Classifier: Programming Language :: Python :: 3.12
|
|
30
29
|
Classifier: Programming Language :: Python :: 3.13
|
|
30
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
31
31
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
32
|
-
Requires-Python: >=3.
|
|
32
|
+
Requires-Python: >=3.10
|
|
33
33
|
Requires-Dist: django>=4.2.9
|
|
34
34
|
Requires-Dist: sqlparse>=0.2
|
|
35
35
|
Description-Content-Type: text/x-rst
|
|
@@ -76,7 +76,7 @@ Here's a screenshot of the toolbar in action:
|
|
|
76
76
|
In addition to the built-in panels, a number of third-party panels are
|
|
77
77
|
contributed by the community.
|
|
78
78
|
|
|
79
|
-
The current stable version of the Debug Toolbar is 6.
|
|
79
|
+
The current stable version of the Debug Toolbar is 6.2.0. It works on
|
|
80
80
|
Django ≥ 4.2.0.
|
|
81
81
|
|
|
82
82
|
The Debug Toolbar has experimental support for `Django's asynchronous views
|
|
@@ -40,7 +40,7 @@ Here's a screenshot of the toolbar in action:
|
|
|
40
40
|
In addition to the built-in panels, a number of third-party panels are
|
|
41
41
|
contributed by the community.
|
|
42
42
|
|
|
43
|
-
The current stable version of the Debug Toolbar is 6.
|
|
43
|
+
The current stable version of the Debug Toolbar is 6.2.0. It works on
|
|
44
44
|
Django ≥ 4.2.0.
|
|
45
45
|
|
|
46
46
|
The Debug Toolbar has experimental support for `Django's asynchronous views
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://biomejs.dev/schemas/2.
|
|
2
|
+
"$schema": "https://biomejs.dev/schemas/2.3.7/schema.json",
|
|
3
3
|
"formatter": {
|
|
4
4
|
"enabled": true,
|
|
5
5
|
"useEditorconfig": true
|
|
@@ -15,6 +15,9 @@
|
|
|
15
15
|
"enabled": true,
|
|
16
16
|
"rules": {
|
|
17
17
|
"recommended": true,
|
|
18
|
+
"complexity": {
|
|
19
|
+
"noImportantStyles": "off"
|
|
20
|
+
},
|
|
18
21
|
"correctness": {
|
|
19
22
|
"noUndeclaredVariables": "error"
|
|
20
23
|
},
|
|
@@ -4,7 +4,7 @@ APP_NAME = "djdt"
|
|
|
4
4
|
|
|
5
5
|
# Do not use pkg_resources to find the version but set it here directly!
|
|
6
6
|
# see issue #1446
|
|
7
|
-
VERSION = "6.
|
|
7
|
+
VERSION = "6.2.0"
|
|
8
8
|
|
|
9
9
|
# Code that discovers files or modules in INSTALLED_APPS imports this module.
|
|
10
10
|
urls = "debug_toolbar.urls", APP_NAME
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import django
|
|
2
|
+
|
|
1
3
|
try:
|
|
2
4
|
from django.contrib.auth.decorators import login_not_required
|
|
3
5
|
except ImportError:
|
|
@@ -8,3 +10,11 @@ except ImportError:
|
|
|
8
10
|
"""
|
|
9
11
|
view_func.login_required = False
|
|
10
12
|
return view_func
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
if django.VERSION >= (6, 0):
|
|
16
|
+
from django.middleware.csp import get_nonce
|
|
17
|
+
else:
|
|
18
|
+
# For Django < 6.0, there is no native CSP support, hence no CSP nonces.
|
|
19
|
+
def get_nonce(request):
|
|
20
|
+
return None
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from typing import Any, NamedTuple,
|
|
3
|
+
from typing import Any, NamedTuple, Protocol
|
|
4
4
|
|
|
5
5
|
from django import template as dj_template
|
|
6
|
+
from django.http import HttpRequest, HttpResponse
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
class InspectStack(NamedTuple):
|
|
@@ -14,7 +15,7 @@ class InspectStack(NamedTuple):
|
|
|
14
15
|
index: int
|
|
15
16
|
|
|
16
17
|
|
|
17
|
-
TidyStackTrace = list[tuple[str, int, str, str,
|
|
18
|
+
TidyStackTrace = list[tuple[str, int, str, str, Any | None]]
|
|
18
19
|
|
|
19
20
|
|
|
20
21
|
class RenderContext(dj_template.context.RenderContext):
|
|
@@ -24,3 +25,7 @@ class RenderContext(dj_template.context.RenderContext):
|
|
|
24
25
|
class RequestContext(dj_template.RequestContext):
|
|
25
26
|
template: dj_template.Template
|
|
26
27
|
render_context: RenderContext
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class GetResponse(Protocol):
|
|
31
|
+
def __call__(self, request: HttpRequest) -> HttpResponse: ...
|
|
@@ -24,6 +24,35 @@ class DebugToolbarConfig(AppConfig):
|
|
|
24
24
|
# allows panels like CachePanel to enable their instrumentation immediately.
|
|
25
25
|
for cls in DebugToolbar.get_panel_classes():
|
|
26
26
|
cls.ready()
|
|
27
|
+
_manage_migrations_visibility(self.name)
|
|
28
|
+
|
|
29
|
+
def import_models(self):
|
|
30
|
+
"""
|
|
31
|
+
Override import models to avoid allowing users to dynamically fetch a model
|
|
32
|
+
that doesn't have a table behind it unless they are using the DatabaseStore.
|
|
33
|
+
This also prevents the command `migrate --run-syncdb` from creating tables
|
|
34
|
+
for the models.
|
|
35
|
+
"""
|
|
36
|
+
dt_config = dt_settings.get_config()
|
|
37
|
+
if dt_config["TOOLBAR_STORE_CLASS"] == "debug_toolbar.store.DatabaseStore":
|
|
38
|
+
return super().import_models()
|
|
39
|
+
# Not using the database store, don't import the models
|
|
40
|
+
self.models = {}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def _manage_migrations_visibility(app_name):
|
|
44
|
+
"""
|
|
45
|
+
Adjust the toolbar's migration visibility by manipulating the
|
|
46
|
+
project's settings.
|
|
47
|
+
|
|
48
|
+
This is a hack since it's manipulating settings.
|
|
49
|
+
"""
|
|
50
|
+
if (
|
|
51
|
+
dt_settings.get_config()["TOOLBAR_STORE_CLASS"]
|
|
52
|
+
!= "debug_toolbar.store.DatabaseStore"
|
|
53
|
+
):
|
|
54
|
+
# This effectively hides the migrations by telling Django they don't exist.
|
|
55
|
+
settings.MIGRATION_MODULES.setdefault(app_name, None)
|
|
27
56
|
|
|
28
57
|
|
|
29
58
|
def check_template_config(config):
|