main c89c8cf41751 cached
252 files
1.1 MB
288.2k tokens
826 symbols
1 requests
Download .txt
Showing preview only (1,150K chars total). Download the full file or copy to clipboard to get everything.
Repository: django-commons/django-debug-toolbar
Branch: main
Commit: c89c8cf41751
Files: 252
Total size: 1.1 MB

Directory structure:
gitextract_yarv0zo1/

├── .editorconfig
├── .git-blame-ignore-revs
├── .github/
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── dependabot.yml
│   ├── release.yml
│   └── workflows/
│       ├── coverage.yml
│       ├── release.yml
│       ├── test.yml
│       └── zizmor.yml
├── .gitignore
├── .pre-commit-config.yaml
├── .readthedocs.yaml
├── .tx/
│   └── config
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── Makefile
├── README.rst
├── SECURITY.md
├── biome.json
├── debug_toolbar/
│   ├── __init__.py
│   ├── _compat.py
│   ├── _stubs.py
│   ├── apps.py
│   ├── decorators.py
│   ├── forms.py
│   ├── locale/
│   │   ├── bg/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── ca/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── cs/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── de/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── en/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── es/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── fa/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── fi/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── fr/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── he/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── id/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── it/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── ja/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── ko/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── lt/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── nl/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── pl/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── pt/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── pt_BR/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── ru/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── sk/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── sv_SE/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── tr/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── uk/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── uz/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   └── zh_CN/
│   │       └── LC_MESSAGES/
│   │           ├── django.mo
│   │           └── django.po
│   ├── management/
│   │   ├── __init__.py
│   │   └── commands/
│   │       ├── __init__.py
│   │       └── debugsqlshell.py
│   ├── middleware.py
│   ├── migrations/
│   │   ├── 0001_initial.py
│   │   └── __init__.py
│   ├── models.py
│   ├── panels/
│   │   ├── __init__.py
│   │   ├── alerts.py
│   │   ├── cache.py
│   │   ├── community.py
│   │   ├── headers.py
│   │   ├── history/
│   │   │   ├── __init__.py
│   │   │   ├── forms.py
│   │   │   ├── panel.py
│   │   │   └── views.py
│   │   ├── profiling.py
│   │   ├── redirects.py
│   │   ├── request.py
│   │   ├── settings.py
│   │   ├── signals.py
│   │   ├── sql/
│   │   │   ├── __init__.py
│   │   │   ├── forms.py
│   │   │   ├── panel.py
│   │   │   ├── tracking.py
│   │   │   ├── utils.py
│   │   │   └── views.py
│   │   ├── staticfiles.py
│   │   ├── templates/
│   │   │   ├── __init__.py
│   │   │   ├── jinja2.py
│   │   │   ├── panel.py
│   │   │   └── views.py
│   │   ├── timer.py
│   │   └── versions.py
│   ├── py.typed
│   ├── sanitize.py
│   ├── settings.py
│   ├── static/
│   │   └── debug_toolbar/
│   │       ├── css/
│   │       │   ├── print.css
│   │       │   └── toolbar.css
│   │       └── js/
│   │           ├── history.js
│   │           ├── redirect.js
│   │           ├── timer.js
│   │           ├── toolbar.js
│   │           └── utils.js
│   ├── store.py
│   ├── templates/
│   │   └── debug_toolbar/
│   │       ├── base.html
│   │       ├── includes/
│   │       │   ├── panel_button.html
│   │       │   ├── panel_content.html
│   │       │   └── theme_selector.html
│   │       ├── panels/
│   │       │   ├── alerts.html
│   │       │   ├── cache.html
│   │       │   ├── community.html
│   │       │   ├── headers.html
│   │       │   ├── history.html
│   │       │   ├── history_tr.html
│   │       │   ├── profiling.html
│   │       │   ├── request.html
│   │       │   ├── request_variables.html
│   │       │   ├── settings.html
│   │       │   ├── signals.html
│   │       │   ├── sql.html
│   │       │   ├── sql_explain.html
│   │       │   ├── sql_profile.html
│   │       │   ├── sql_select.html
│   │       │   ├── staticfiles.html
│   │       │   ├── template_source.html
│   │       │   ├── templates.html
│   │       │   ├── timer.html
│   │       │   └── versions.html
│   │       └── redirect.html
│   ├── templatetags/
│   │   └── __init__.py
│   ├── toolbar.py
│   ├── urls.py
│   ├── utils.py
│   └── views.py
├── docs/
│   ├── Makefile
│   ├── architecture.rst
│   ├── changes.rst
│   ├── checks.rst
│   ├── commands.rst
│   ├── conf.py
│   ├── configuration.rst
│   ├── contributing.rst
│   ├── index.rst
│   ├── installation.rst
│   ├── make.bat
│   ├── panels.rst
│   ├── resources.rst
│   ├── spelling_wordlist.txt
│   └── tips.rst
├── example/
│   ├── README.rst
│   ├── __init__.py
│   ├── asgi.py
│   ├── async_/
│   │   ├── __init__.py
│   │   ├── settings.py
│   │   ├── urls.py
│   │   └── views.py
│   ├── manage.py
│   ├── screenshot.py
│   ├── settings.py
│   ├── static/
│   │   └── test.css
│   ├── templates/
│   │   ├── async_db.html
│   │   ├── bad_form.html
│   │   ├── cache.html
│   │   ├── htmx/
│   │   │   └── boost.html
│   │   ├── index.html
│   │   ├── jinja2/
│   │   │   └── index.jinja
│   │   ├── jquery/
│   │   │   └── index.html
│   │   ├── mootools/
│   │   │   └── index.html
│   │   ├── prototype/
│   │   │   └── index.html
│   │   └── turbo/
│   │       └── index.html
│   ├── test_views.py
│   ├── urls.py
│   ├── views.py
│   └── wsgi.py
├── pyproject.toml
├── setup.py
├── tests/
│   ├── __init__.py
│   ├── additional_static/
│   │   └── base.css
│   ├── base.py
│   ├── commands/
│   │   ├── __init__.py
│   │   └── test_debugsqlshell.py
│   ├── context_processors.py
│   ├── forms.py
│   ├── loaders.py
│   ├── middleware.py
│   ├── models.py
│   ├── panels/
│   │   ├── __init__.py
│   │   ├── test_alerts.py
│   │   ├── test_async_panel_compatibility.py
│   │   ├── test_cache.py
│   │   ├── test_custom.py
│   │   ├── test_history.py
│   │   ├── test_profiling.py
│   │   ├── test_redirects.py
│   │   ├── test_request.py
│   │   ├── test_settings.py
│   │   ├── test_sql.py
│   │   ├── test_staticfiles.py
│   │   ├── test_template.py
│   │   └── test_versions.py
│   ├── settings.py
│   ├── sync.py
│   ├── templates/
│   │   ├── ajax/
│   │   │   └── ajax.html
│   │   ├── base.html
│   │   ├── basic.html
│   │   ├── jinja2/
│   │   │   ├── base.html
│   │   │   └── basic.jinja
│   │   ├── registration/
│   │   │   └── login.html
│   │   ├── sql/
│   │   │   ├── flat.html
│   │   │   ├── included.html
│   │   │   └── nested.html
│   │   └── staticfiles/
│   │       ├── async_static.html
│   │       └── path.html
│   ├── test_apps.py
│   ├── test_checks.py
│   ├── test_csp_rendering.py
│   ├── test_decorators.py
│   ├── test_forms.py
│   ├── test_integration.py
│   ├── test_integration_async.py
│   ├── test_login_not_required.py
│   ├── test_middleware.py
│   ├── test_models.py
│   ├── test_sanitize.py
│   ├── test_settings.py
│   ├── test_store.py
│   ├── test_toolbar.py
│   ├── test_utils.py
│   ├── urls.py
│   ├── urls_invalid.py
│   ├── urls_use_package_urls.py
│   └── views.py
└── tox.ini

================================================
FILE CONTENTS
================================================

================================================
FILE: .editorconfig
================================================
# https://editorconfig.org/

root = true

[*]
indent_style = space
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true
end_of_line = lf
charset = utf-8

[*.html]
indent_size = 2

[Makefile]
indent_style = tab

[*.bat]
indent_style = tab

[*.yml]
indent_size = 2


================================================
FILE: .git-blame-ignore-revs
================================================


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
#### Description

Please include a summary of the change and which issue is fixed. Please also
include relevant motivation and context. Your commit message should include
this information as well.

Fixes # (issue)

#### Checklist:

- [ ] I have added the relevant tests for this change.
- [ ] I have added an item to the Pending section of ``docs/changes.rst``.

#### AI/LLM Usage
- [ ] This PR includes code generated with the help of an AI/LLM


================================================
FILE: .github/dependabot.yml
================================================
# Keep GitHub Actions up to date with GitHub's Dependabot...
# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot
# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#package-ecosystem
version: 2
updates:
  - package-ecosystem: github-actions
    directory: /
    groups:
      github-actions:
        patterns:
          - "*"  # Group all Actions updates into a single larger pull request
    schedule:
      interval: weekly
    cooldown:
      default-days: 7


================================================
FILE: .github/release.yml
================================================
---
changelog:
  exclude:
    authors:
      - dependabot[bot]
      - pre-commit-ci[bot]


================================================
FILE: .github/workflows/coverage.yml
================================================
# .github/workflows/coverage.yml
name: Post coverage comment

on:
  workflow_run: # zizmor: ignore[dangerous-triggers] - This follows GitHub's recommended pattern for posting PR comments from untrusted forks
    workflows: ["Test"]
    types:
      - completed

jobs:
  test:
    name: Run tests & display coverage
    runs-on: ubuntu-latest
    if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success'
    permissions:
      # Gives the action the necessary permissions for publishing new
      # comments in pull requests.
      pull-requests: write
      # Gives the action the necessary permissions for editing existing
      # comments (to avoid publishing multiple comments in the same PR)
      contents: write
      # Gives the action the necessary permissions for looking up the
      # workflow that launched this workflow, and download the related
      # artifact that contains the comment to be published
      actions: read
    steps:
      # DO NOT run actions/checkout here, for security reasons
      # For details, refer to https://securitylab.github.com/research/github-actions-preventing-pwn-requests/
      - name: Post comment
        uses: py-cov-action/python-coverage-comment-action@7188638f871f721a365d644f505d1ff3df20d683  # v3.40
        with:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          GITHUB_PR_RUN_ID: ${{ github.event.workflow_run.id }}


================================================
FILE: .github/workflows/release.yml
================================================
name: Publish Python 🐍 distribution 📦 to PyPI and TestPyPI

on: push

permissions: {}

env:
  PYPI_URL: https://pypi.org/p/django-debug-toolbar
  PYPI_TEST_URL: https://test.pypi.org/p/django-debug-toolbar

jobs:

  build:
    name: Build distribution 📦
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd  # v6.0.2
      with:
        persist-credentials: false
    - name: Set up Python
      uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405  # v6.2.0
      with:
        python-version: "3.x"
    - name: Install pypa/build
      run:
        python3 -m pip install build --user
    - name: Build a binary wheel and a source tarball
      run: python3 -m build
    - name: Store the distribution packages
      uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f  # v7.0.0
      with:
        name: python-package-distributions
        path: dist/

  publish-to-pypi:
    name: >-
      Publish Python 🐍 distribution 📦 to PyPI
    if: startsWith(github.ref, 'refs/tags/')  # only publish to PyPI on tag pushes
    needs:
    - build
    runs-on: ubuntu-latest
    environment:
      name: pypi
      url: ${{ env.PYPI_URL }}
    permissions:
      id-token: write  # IMPORTANT: mandatory for trusted publishing
    steps:
    - name: Download all the dists
      uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3  # v8.0.0
      with:
        name: python-package-distributions
        path: dist/
    - name: Publish distribution 📦 to PyPI
      uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e  # release/v1.13

  github-release:
    name: >-
      Sign the Python 🐍 distribution 📦 with Sigstore
      and upload them to GitHub Release
    needs:
    - publish-to-pypi
    runs-on: ubuntu-latest

    permissions:
      contents: write  # IMPORTANT: mandatory for making GitHub Releases
      id-token: write  # IMPORTANT: mandatory for sigstore

    steps:
    - name: Download all the dists
      uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3  # v8.0.0
      with:
        name: python-package-distributions
        path: dist/
    - name: Sign the dists with Sigstore
      uses: sigstore/gh-action-sigstore-python@a5caf349bc536fbef3668a10ed7f5cd309a4b53d  # v3.2.0
      with:
        inputs: >-
          ./dist/*.tar.gz
          ./dist/*.whl
    - name: Create GitHub Release
      env:
        GITHUB_TOKEN: ${{ github.token }}
      run: >-
        gh release create
        "${GITHUB_REF_NAME}"
        --repo '${{ github.repository }}'
        --notes ""
    - name: Upload artifact signatures to GitHub Release
      env:
        GITHUB_TOKEN: ${{ github.token }}
      # Upload to GitHub Release using the `gh` CLI.
      # `dist/` contains the built packages, and the
      # sigstore-produced signatures and certificates.
      run: >-
        gh release upload
        "${GITHUB_REF_NAME}" dist/**
        --repo '${{ github.repository }}'

  publish-to-testpypi:
    name: Publish Python 🐍 distribution 📦 to TestPyPI
    if: startsWith(github.ref, 'refs/tags/')  # only publish to Test PyPI on tag pushes
    needs:
    - build
    runs-on: ubuntu-latest

    environment:
      name: testpypi
      url: ${{ env.PYPI_TEST_URL }}

    permissions:
      id-token: write  # IMPORTANT: mandatory for trusted publishing

    steps:
    - name: Download all the dists
      uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3  # v8.0.0
      with:
        name: python-package-distributions
        path: dist/
    - name: Publish distribution 📦 to TestPyPI
      uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e  # release/v1.13
      with:
        repository-url: https://test.pypi.org/legacy/
        skip-existing: true


================================================
FILE: .github/workflows/test.yml
================================================
name: Test

on:
  push:
    branches:
    - main
    tags:
    - '**'
  pull_request:
  schedule:
    # Run weekly on Saturday
    - cron: '37 3 * * SAT'

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

permissions:
  contents: read

jobs:
  mysql:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      max-parallel: 5
      matrix:
        python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']

    services:
      mariadb:
        image: mariadb:11.8
        env:
          MARIADB_ROOT_PASSWORD: debug_toolbar
        options: >-
          --health-cmd "mariadb-admin ping"
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5
        ports:
        - 3306:3306

    steps:
    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd  # v6.0.2
      with:
        persist-credentials: false

    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405  # v6.2.0
      with:
        python-version: ${{ matrix.python-version }}
        allow-prereleases: true

    - name: Get pip cache dir
      id: pip-cache
      run: |
        echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT

    - name: Cache
      uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306  # v5.0.3
      with:
        path: ${{ steps.pip-cache.outputs.dir }}
        key:
          ${{ matrix.python-version }}-v1-${{ hashFiles('**/pyproject.toml') }}-${{ hashFiles('**/tox.ini') }}
        restore-keys: |
          ${{ matrix.python-version }}-v1-
        lookup-only: true

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        python -m pip install --upgrade tox tox-gh-actions

    - name: Test with tox
      run: tox
      env:
        DB_BACKEND: mysql
        DB_USER: root
        DB_PASSWORD: debug_toolbar
        DB_HOST: 127.0.0.1
        DB_PORT: 3306
        COVERAGE_FILE: ".coverage.mysql.${{ matrix.python-version }}"

    - name: Store coverage file
      uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f  # v7.0.0
      with:
        name: coverage-mysql-${{ matrix.python-version }}
        path: .coverage.mysql.${{ matrix.python-version }}*
        include-hidden-files: true


  postgres:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      max-parallel: 5
      matrix:
        python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
        database: [postgresql, postgis, psycopg3]
        exclude:
            - python-version: '3.13'
              database: postgis
            - python-version: '3.13'
              database: postgresql
            - python-version: '3.14'
              database: postgis
            - python-version: '3.14'
              database: postgresql
        # Add postgis3 to our matrix for modern Python versions
        include:
            - python-version: '3.13'
              database: postgis3
            - python-version: '3.13'
              database: psycopg3
              env:
                DJANGO_SELENIUM_TESTS=true
            - python-version: '3.14'
              database: postgis3
            - python-version: '3.14'
              database: psycopg3
              env:
                DJANGO_SELENIUM_TESTS=true

    services:
      postgres:
        image: postgis/postgis:17-3.5
        env:
          POSTGRES_DB: debug_toolbar
          POSTGRES_USER: debug_toolbar
          POSTGRES_PASSWORD: debug_toolbar
        ports:
        - 5432:5432
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5

    steps:
    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd  # v6.0.2
      with:
        persist-credentials: false

    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405  # v6.2.0
      with:
        python-version: ${{ matrix.python-version }}
        allow-prereleases: true

    - name: Get pip cache dir
      id: pip-cache
      run: |
        echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT

    - name: Cache
      uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306  # v5.0.3
      with:
        path: ${{ steps.pip-cache.outputs.dir }}
        key:
          ${{ matrix.python-version }}-v1-${{ hashFiles('**/pyproject.toml') }}-${{ hashFiles('**/tox.ini') }}
        restore-keys: |
          ${{ matrix.python-version }}-v1-
        lookup-only: true

    - name: Install gdal-bin (for postgis)
      run: |
        sudo apt-get -qq update
        sudo apt-get -y install gdal-bin

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        python -m pip install --upgrade tox tox-gh-actions

    - name: Test with tox
      run: tox
      env:
        DB_BACKEND: ${{ matrix.database }}
        DB_HOST: localhost
        DB_PORT: 5432
        DJANGO_SELENIUM_TESTS: ${{ matrix.env.DJANGO_SELENIUM_TESTS }}
        COVERAGE_FILE: ".coverage.${{ matrix.database }}.${{ matrix.python-version }}"

    - name: Store coverage file
      uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f  # v7.0.0
      with:
        name: coverage-${{ matrix.database }}-${{ matrix.python-version }}
        path: .coverage.${{ matrix.database }}.${{ matrix.python-version }}*
        include-hidden-files: true

  sqlite:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      max-parallel: 5
      matrix:
        python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']

    steps:
    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd  # v6.0.2
      with:
        persist-credentials: false

    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405  # v6.2.0
      with:
        python-version: ${{ matrix.python-version }}
        allow-prereleases: true

    - name: Get pip cache dir
      id: pip-cache
      run: |
        echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT

    - name: Cache
      uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306  # v5.0.3
      with:
        path: ${{ steps.pip-cache.outputs.dir }}
        key:
          ${{ matrix.python-version }}-v1-${{ hashFiles('**/pyproject.toml') }}-${{ hashFiles('**/tox.ini') }}
        restore-keys: |
          ${{ matrix.python-version }}-v1-
        lookup-only: true

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        python -m pip install --upgrade tox tox-gh-actions

    - name: Test with tox
      run: tox
      env:
        DB_BACKEND: sqlite3
        DB_NAME: ":memory:"
        COVERAGE_FILE: ".coverage.sqlite.${{ matrix.python-version }}"

    - name: Store coverage file
      uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f  # v7.0.0
      with:
        name: coverage-sqlite-${{ matrix.python-version }}
        path: .coverage.sqlite.${{ matrix.python-version }}*
        include-hidden-files: true

  lint:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false

    steps:
    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd  # v6.0.2
      with:
        persist-credentials: false

    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405  # v6.2.0
      with:
        python-version: '3.10'

    - name: Get pip cache dir
      id: pip-cache
      run: |
        echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT

    - name: Cache
      uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306  # v5.0.3
      with:
        path: ${{ steps.pip-cache.outputs.dir }}
        key:
          ${{ matrix.python-version }}-v1-${{ hashFiles('**/pyproject.toml') }}-${{ hashFiles('**/tox.ini') }}
        restore-keys: |
          ${{ matrix.python-version }}-v1-
        lookup-only: true

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        python -m pip install --upgrade tox

    - name: Test with tox
      run: tox -e docs,packaging

  coverage:
    name: Coverage
    runs-on: ubuntu-latest
    needs:
      - mysql
      - postgres
      - sqlite
    permissions:
      pull-requests: write
      contents: write
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd  # v6.0.2
        with:
          # Persist the credentials because coverage_comment needs them too.
          persist-credentials: true

      - uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3  # v8.0.0
        id: download
        with:
          pattern: coverage-*
          merge-multiple: true

      - name: Coverage comment
        id: coverage_comment
        uses: py-cov-action/python-coverage-comment-action@7188638f871f721a365d644f505d1ff3df20d683  # v3.40
        with:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          MERGE_COVERAGE_FILES: true

      - name: Store Pull Request comment to be posted
        uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f  # v7.0.0
        if: steps.coverage_comment.outputs.COMMENT_FILE_WRITTEN == 'true'
        with:
          name: python-coverage-comment-action
          path: python-coverage-comment-action.txt


================================================
FILE: .github/workflows/zizmor.yml
================================================
name: GitHub Actions Security Analysis with zizmor 🌈

on:
  push:
    branches: ["main"]
  pull_request:
    branches: ["**"]

permissions: {}

jobs:
  zizmor:
    name: Run zizmor 🌈
    runs-on: ubuntu-latest
    permissions:
      security-events: write
      contents: read # only needed for private repos
      actions: read # only needed for private repos
    steps:
      - name: Checkout repository
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd  # v6.0.2
        with:
          persist-credentials: false

      - name: Run zizmor 🌈
        uses: zizmorcore/zizmor-action@71321a20a9ded102f6e9ce5718a2fcec2c4f70d8  # v0.5.2


================================================
FILE: .gitignore
================================================
*.pyc
*.DS_Store
*~
.idea
build
.coverage*
dist
django_debug_toolbar.egg-info
docs/_build
example/db.sqlite3
htmlcov
.tox
geckodriver.log
coverage.xml
venv
.direnv/
.envrc
.venv
.vscode


================================================
FILE: .pre-commit-config.yaml
================================================
repos:
-   repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v6.0.0
    hooks:
    -   id: check-toml
    -   id: check-yaml
    -   id: end-of-file-fixer
    -   id: trailing-whitespace
    -   id: mixed-line-ending
    -   id: file-contents-sorter
        files: docs/spelling_wordlist.txt
-   repo: https://github.com/pycqa/doc8
    rev: v2.0.0
    hooks:
    -   id: doc8
-   repo: https://github.com/adamchainz/django-upgrade
    rev: 1.30.0
    hooks:
    -   id: django-upgrade
        args: [--target-version, "4.2"]
-   repo: https://github.com/adamchainz/djade-pre-commit
    rev: "1.9.0"
    hooks:
    -   id: djade
        args: [--target-version, "4.2"]
-   repo: https://github.com/pre-commit/pygrep-hooks
    rev: v1.10.0
    hooks:
    -   id: rst-backticks
    -   id: rst-directive-colons
-   repo: https://github.com/biomejs/pre-commit
    rev: v2.4.7
    hooks:
      - id: biome-check
        verbose: true
-   repo: https://github.com/astral-sh/ruff-pre-commit
    rev: 'v0.15.6'
    hooks:
      - id: ruff
        args: [--fix, --exit-non-zero-on-fix]
      - id: ruff-format
-   repo: https://github.com/tox-dev/pyproject-fmt
    rev: v2.19.0
    hooks:
      - id: pyproject-fmt
-   repo: https://github.com/abravalheri/validate-pyproject
    rev: v0.25
    hooks:
      - id: validate-pyproject


================================================
FILE: .readthedocs.yaml
================================================
# .readthedocs.yaml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

version: 2

build:
  os: ubuntu-24.04
  tools:
    python: "3.13"
  jobs:
    install:
      - pip install -U pip
      - pip install --group docs

sphinx:
  configuration: docs/conf.py


================================================
FILE: .tx/config
================================================
[main]
host     = https://www.transifex.com
lang_map = sr@latin: sr_Latn

[o:django-debug-toolbar:p:django-debug-toolbar:r:main]
file_filter            = debug_toolbar/locale/<lang>/LC_MESSAGES/django.po
source_file            = debug_toolbar/locale/en/LC_MESSAGES/django.po
source_lang            = en
replace_edited_strings = false
keep_translations      = false


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Django Debug Toolbar Code of Conduct

The django-debug-toolbar project utilizes the [Django Commons Code of Conduct](https://github.com/django-commons/membership/blob/main/CODE_OF_CONDUCT.md).


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to Django Debug Toolbar

This is a [Django Commons](https://github.com/django-commons/) project. By contributing you agree to abide by the [Contributor Code of Conduct](https://github.com/django-commons/membership/blob/main/CODE_OF_CONDUCT.md).

## Documentation

For detailed contributing guidelines, please see our [Documentation](https://django-debug-toolbar.readthedocs.io/en/latest/contributing.html).

## Additional Resources

Please see the [README](https://github.com/django-commons/membership/blob/main/README.md) for more help.


================================================
FILE: LICENSE
================================================
Copyright (c) Rob Hudson and individual contributors.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

    1. Redistributions of source code must retain the above copyright notice,
       this list of conditions and the following disclaimer.

    2. Redistributions in binary form must reproduce the above copyright
       notice, this list of conditions and the following disclaimer in the
       documentation and/or other materials provided with the distribution.

    3. Neither the name of Django nor the names of its contributors may be used
       to endorse or promote products derived from this software without
       specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


================================================
FILE: Makefile
================================================
.PHONY: example test coverage translatable_strings update_translations help
.DEFAULT_GOAL := help

example:  ## Run the example application
	python example/manage.py migrate --noinput
	-DJANGO_SUPERUSER_PASSWORD=p python example/manage.py createsuperuser \
		--noinput --username="$(USER)" --email="$(USER)@mailinator.com"
	python example/manage.py runserver

example_async:
	python example/manage.py migrate --noinput
	-DJANGO_SUPERUSER_PASSWORD=p python example/manage.py createsuperuser \
		--noinput --username="$(USER)" --email="$(USER)@mailinator.com"
	daphne example.asgi:application

example_test:  ## Run the test suite for the example application
	python example/manage.py test example

test:  ## Run the test suite
	DJANGO_SETTINGS_MODULE=tests.settings \
		python -m django test $${TEST_ARGS:-tests}

test_selenium:  ## Run frontend tests written with Selenium
	DJANGO_SELENIUM_TESTS=true DJANGO_SETTINGS_MODULE=tests.settings \
		python -m django test $${TEST_ARGS:-tests}

coverage:  ## Run the test suite with coverage enabled
	python --version
	DJANGO_SETTINGS_MODULE=tests.settings \
		python -b -W always -m coverage run -m django test -v2 $${TEST_ARGS:-tests}
	coverage report
	coverage html
	coverage xml

translatable_strings:  ## Update the English '.po' file
	cd debug_toolbar && python -m django makemessages -l en --no-obsolete
	@echo "Please commit changes and run 'tx push -s' (or wait for Transifex to pick them)"

update_translations:  ## Download updated '.po' files from Transifex
	tx pull -a --minimum-perc=10
	cd debug_toolbar && python -m django compilemessages

.PHONY: example/django-debug-toolbar.png
example/django-debug-toolbar.png: example/screenshot.py  ## Update the screenshot in 'README.rst'
	python $< --browser firefox --headless -o $@
	optipng $@

help:  ## Help message for targets
	@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) \
		| awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'


================================================
FILE: README.rst
================================================
=====================================
Django Debug Toolbar |latest-version|
=====================================

|build-status| |coverage| |docs| |python-support| |django-support|

.. |latest-version| image:: https://img.shields.io/pypi/v/django-debug-toolbar.svg
   :target: https://pypi.org/project/django-debug-toolbar/
   :alt: Latest version on PyPI

.. |build-status| image:: https://github.com/django-commons/django-debug-toolbar/workflows/Test/badge.svg
   :target: https://github.com/django-commons/django-debug-toolbar/actions/workflows/test.yml
   :alt: Build Status

.. |coverage| image:: https://img.shields.io/badge/Coverage-94%25-green
   :target: https://github.com/django-commons/django-debug-toolbar/actions/workflows/test.yml?query=branch%3Amain
   :alt: Test coverage status

.. |docs| image:: https://img.shields.io/readthedocs/django-debug-toolbar/latest.svg
   :target: https://readthedocs.org/projects/django-debug-toolbar/
   :alt: Documentation status

.. |python-support| image:: https://img.shields.io/pypi/pyversions/django-debug-toolbar
   :target: https://pypi.org/project/django-debug-toolbar/
   :alt: Supported Python versions

.. |django-support| image:: https://img.shields.io/pypi/djversions/django-debug-toolbar
   :target: https://pypi.org/project/django-debug-toolbar/
   :alt: Supported Django versions

The Django Debug Toolbar is a configurable set of panels that display various
debug information about the current request/response and when clicked, display
more details about the panel's content.

Here's a screenshot of the toolbar in action:

.. image:: https://raw.github.com/django-commons/django-debug-toolbar/main/example/django-debug-toolbar.png
   :alt: Django Debug Toolbar screenshot

In addition to the built-in panels, a number of third-party panels are
contributed by the community.

The current stable version of the Debug Toolbar is 6.2.0. It works on
Django ≥ 4.2.0.

The Debug Toolbar has experimental support for `Django's asynchronous views
<https://docs.djangoproject.com/en/dev/topics/async/>`_. Please note that
the Debug Toolbar still lacks the capability for handling concurrent requests.
If you find any issues, please report them on the `issue tracker`_.

Documentation, including installation and configuration instructions, is
available at https://django-debug-toolbar.readthedocs.io/.

The Django Debug Toolbar is released under the BSD license, like Django
itself. If you like it, please consider contributing!

The Django Debug Toolbar was originally created by Rob Hudson <rob@cogit8.org>
in August 2008 and was further developed by many contributors_.

.. _contributors: https://github.com/django-commons/django-debug-toolbar/graphs/contributors
.. _issue tracker: https://github.com/django-commons/django-debug-toolbar/issues


================================================
FILE: SECURITY.md
================================================
# Security Policy

## Supported Versions

Only the latest version of django-debug-toolbar [![PyPI version](https://badge.fury.io/py/django-debug-toolbar.svg)](https://pypi.python.org/pypi/django-debug-toolbar) is supported.

## Reporting a Vulnerability

If you think you have found a vulnerability, and even if you are not sure, please [report it to us in private](https://github.com/django-commons/django-debug-toolbar/security/advisories/new). We will review it and get back to you. Please refrain from public discussions of the issue.


================================================
FILE: biome.json
================================================
{
    "$schema": "https://biomejs.dev/schemas/2.3.7/schema.json",
    "formatter": {
        "enabled": true,
        "useEditorconfig": true
    },
    "assist": {
        "actions": {
            "source": {
                "organizeImports": "on"
            }
        }
    },
    "linter": {
        "enabled": true,
        "rules": {
            "recommended": true,
            "complexity": {
                "noImportantStyles": "off"
            },
            "correctness": {
                "noUndeclaredVariables": "error"
            },
            "suspicious": {
                "noDocumentCookie": "off"
            }
        }
    },
    "javascript": {
        "formatter": {
            "trailingCommas": "es5"
        }
    }
}


================================================
FILE: debug_toolbar/__init__.py
================================================
__all__ = ["APP_NAME", "VERSION"]

APP_NAME = "djdt"

# Do not use pkg_resources to find the version but set it here directly!
# see issue #1446
VERSION = "6.2.0"

# Code that discovers files or modules in INSTALLED_APPS imports this module.
urls = "debug_toolbar.urls", APP_NAME


================================================
FILE: debug_toolbar/_compat.py
================================================
import django

try:
    from django.contrib.auth.decorators import login_not_required
except ImportError:
    # For Django < 5.1, copy the current Django implementation
    def login_not_required(view_func):
        """
        Decorator for views that allows access to unauthenticated requests.
        """
        view_func.login_required = False
        return view_func


if django.VERSION >= (6, 0):
    from django.middleware.csp import get_nonce
else:
    # For Django < 6.0, there is no native CSP support, hence no CSP nonces.
    def get_nonce(request):
        return None


================================================
FILE: debug_toolbar/_stubs.py
================================================
from __future__ import annotations

from typing import Any, NamedTuple, Protocol

from django import template as dj_template
from django.http import HttpRequest, HttpResponse


class InspectStack(NamedTuple):
    frame: Any
    filename: str
    lineno: int
    function: str
    code_context: str
    index: int


TidyStackTrace = list[tuple[str, int, str, str, Any | None]]


class RenderContext(dj_template.context.RenderContext):
    template: dj_template.Template


class RequestContext(dj_template.RequestContext):
    template: dj_template.Template
    render_context: RenderContext


class GetResponse(Protocol):
    def __call__(self, request: HttpRequest) -> HttpResponse: ...


================================================
FILE: debug_toolbar/apps.py
================================================
import inspect
import mimetypes

from django.apps import AppConfig
from django.conf import settings
from django.core.checks import Error, Warning, register
from django.middleware.gzip import GZipMiddleware
from django.urls import NoReverseMatch, reverse
from django.utils.module_loading import import_string
from django.utils.translation import gettext_lazy as _

from debug_toolbar import APP_NAME, settings as dt_settings
from debug_toolbar.settings import CONFIG_DEFAULTS


class DebugToolbarConfig(AppConfig):
    name = "debug_toolbar"
    verbose_name = _("Debug Toolbar")

    def ready(self):
        from debug_toolbar.toolbar import DebugToolbar

        # Import the panels when the app is ready and call their ready() methods.  This
        # allows panels like CachePanel to enable their instrumentation immediately.
        for cls in DebugToolbar.get_panel_classes():
            cls.ready()
        _manage_migrations_visibility(self.name)

    def import_models(self):
        """
        Override import models to avoid allowing users to dynamically fetch a model
        that doesn't have a table behind it unless they are using the DatabaseStore.
        This also prevents the command `migrate --run-syncdb` from creating tables
        for the models.
        """
        dt_config = dt_settings.get_config()
        if dt_config["TOOLBAR_STORE_CLASS"] == "debug_toolbar.store.DatabaseStore":
            return super().import_models()
        # Not using the database store, don't import the models
        self.models = {}


def _manage_migrations_visibility(app_name):
    """
    Adjust the toolbar's migration visibility by manipulating the
    project's settings.

    This is a hack since it's manipulating settings.
    """
    if (
        dt_settings.get_config()["TOOLBAR_STORE_CLASS"]
        != "debug_toolbar.store.DatabaseStore"
    ):
        # This effectively hides the migrations by telling Django they don't exist.
        settings.MIGRATION_MODULES.setdefault(app_name, None)


def check_template_config(config):
    """
    Checks if a template configuration is valid.

    The toolbar requires either the toolbars to be unspecified or
    ``django.template.loaders.app_directories.Loader`` to be
    included in the loaders.
    If custom loaders are specified, then APP_DIRS must be True.
    """

    def flat_loaders(loaders):
        """
        Recursively flatten the settings list of template loaders.

        Check for (loader, [child_loaders]) tuples.
        Django's default cached loader uses this pattern.
        """
        for loader in loaders:
            if isinstance(loader, tuple):
                yield loader[0]
                yield from flat_loaders(loader[1])
            else:
                yield loader

    app_dirs = config.get("APP_DIRS", False)
    loaders = config.get("OPTIONS", {}).get("loaders", None)
    if loaders:
        loaders = list(flat_loaders(loaders))

    # By default the app loader is included.
    has_app_loaders = (
        loaders is None or "django.template.loaders.app_directories.Loader" in loaders
    )
    return has_app_loaders or app_dirs


@register
def check_middleware(app_configs, **kwargs):
    from debug_toolbar.middleware import DebugToolbarMiddleware

    errors = []
    gzip_index = None
    debug_toolbar_indexes = []

    if all(not check_template_config(config) for config in settings.TEMPLATES):
        errors.append(
            Warning(
                "At least one DjangoTemplates TEMPLATES configuration needs "
                "to use django.template.loaders.app_directories.Loader or "
                "have APP_DIRS set to True.",
                hint=(
                    "Include django.template.loaders.app_directories.Loader "
                    'in ["OPTIONS"]["loaders"]. Alternatively use '
                    "APP_DIRS=True for at least one "
                    "django.template.backends.django.DjangoTemplates "
                    "backend configuration."
                ),
                id="debug_toolbar.W006",
            )
        )

    # If old style MIDDLEWARE_CLASSES is being used, report an error.
    if settings.is_overridden("MIDDLEWARE_CLASSES"):
        errors.append(
            Warning(
                "debug_toolbar is incompatible with MIDDLEWARE_CLASSES setting.",
                hint="Use MIDDLEWARE instead of MIDDLEWARE_CLASSES",
                id="debug_toolbar.W004",
            )
        )
        return errors

    # Determine the indexes which gzip and/or the toolbar are installed at
    for i, middleware in enumerate(settings.MIDDLEWARE):
        if is_middleware_class(GZipMiddleware, middleware):
            gzip_index = i
        elif is_middleware_class(DebugToolbarMiddleware, middleware):
            debug_toolbar_indexes.append(i)

    if not debug_toolbar_indexes:
        # If the toolbar does not appear, report an error.
        errors.append(
            Warning(
                "debug_toolbar.middleware.DebugToolbarMiddleware is missing "
                "from MIDDLEWARE.",
                hint="Add debug_toolbar.middleware.DebugToolbarMiddleware to "
                "MIDDLEWARE.",
                id="debug_toolbar.W001",
            )
        )
    elif len(debug_toolbar_indexes) != 1:
        # If the toolbar appears multiple times, report an error.
        errors.append(
            Warning(
                "debug_toolbar.middleware.DebugToolbarMiddleware occurs "
                "multiple times in MIDDLEWARE.",
                hint="Load debug_toolbar.middleware.DebugToolbarMiddleware only "
                "once in MIDDLEWARE.",
                id="debug_toolbar.W002",
            )
        )
    elif gzip_index is not None and debug_toolbar_indexes[0] < gzip_index:
        # If the toolbar appears before the gzip index, report an error.
        errors.append(
            Warning(
                "debug_toolbar.middleware.DebugToolbarMiddleware occurs before "
                "django.middleware.gzip.GZipMiddleware in MIDDLEWARE.",
                hint="Move debug_toolbar.middleware.DebugToolbarMiddleware to "
                "after django.middleware.gzip.GZipMiddleware in MIDDLEWARE.",
                id="debug_toolbar.W003",
            )
        )
    return errors


@register
def check_panel_configs(app_configs, **kwargs):
    """Allow each panel to check the toolbar's integration for their its own purposes."""
    from debug_toolbar.toolbar import DebugToolbar

    errors = []
    for panel_class in DebugToolbar.get_panel_classes():
        for check_message in panel_class.run_checks():
            errors.append(check_message)
    return errors


def is_middleware_class(middleware_class, middleware_path):
    try:
        middleware_cls = import_string(middleware_path)
    except ImportError:
        return
    return inspect.isclass(middleware_cls) and issubclass(
        middleware_cls, middleware_class
    )


@register
def check_panels(app_configs, **kwargs):
    errors = []
    panels = dt_settings.get_panels()
    if not panels:
        errors.append(
            Warning(
                "Setting DEBUG_TOOLBAR_PANELS is empty.",
                hint="Set DEBUG_TOOLBAR_PANELS to a non-empty list in your "
                "settings.py.",
                id="debug_toolbar.W005",
            )
        )
    return errors


@register
def js_mimetype_check(app_configs, **kwargs):
    """
    Check that JavaScript files are resolving to the correct content type.
    """
    # Ideally application/javascript is returned, but text/javascript is
    # acceptable.
    javascript_types = {"application/javascript", "text/javascript"}
    check_failed = not set(mimetypes.guess_type("toolbar.js")).intersection(
        javascript_types
    )
    if check_failed:
        return [
            Warning(
                "JavaScript files are resolving to the wrong content type.",
                hint="The Django Debug Toolbar may not load properly while mimetypes are misconfigured. "
                "See the Django documentation for an explanation of why this occurs.\n"
                "https://docs.djangoproject.com/en/stable/ref/contrib/staticfiles/#static-file-development-view\n"
                "\n"
                "This typically occurs on Windows machines. The suggested solution is to modify "
                "HKEY_CLASSES_ROOT in the registry to specify the content type for JavaScript "
                "files.\n"
                "\n"
                "[HKEY_CLASSES_ROOT\\.js]\n"
                '"Content Type"="application/javascript"',
                id="debug_toolbar.W007",
            )
        ]
    return []


@register
def debug_toolbar_installed_when_running_tests_check(app_configs, **kwargs):
    """
    Check that the toolbar is not being used when tests are running
    """
    # Check if show toolbar callback has changed
    show_toolbar_changed = (
        dt_settings.get_config()["SHOW_TOOLBAR_CALLBACK"]
        != CONFIG_DEFAULTS["SHOW_TOOLBAR_CALLBACK"]
    )
    try:
        # Check if the toolbar's urls are installed
        reverse(f"{APP_NAME}:render_panel")
        toolbar_urls_installed = True
    except NoReverseMatch:
        toolbar_urls_installed = False

    # If the user is using the default SHOW_TOOLBAR_CALLBACK,
    # then the middleware will respect the change to settings.DEBUG.
    # However, if the user has changed the callback to:
    # DEBUG_TOOLBAR_CONFIG = {"SHOW_TOOLBAR_CALLBACK": lambda request: DEBUG}
    # where DEBUG is not settings.DEBUG, then it won't pick up that Django'
    # test runner has changed the value for settings.DEBUG, and the middleware
    # will inject the toolbar, while the URLs aren't configured leading to a
    # NoReverseMatch error.
    likely_error_setup = show_toolbar_changed and not toolbar_urls_installed

    if (
        not settings.DEBUG
        and dt_settings.get_config()["IS_RUNNING_TESTS"]
        and likely_error_setup
    ):
        return [
            Error(
                "The Django Debug Toolbar can't be used with tests",
                hint="Django changes the DEBUG setting to False when running "
                "tests. By default the Django Debug Toolbar is installed because "
                "DEBUG is set to True. For most cases, you need to avoid installing "
                "the toolbar when running tests. If you feel this check is in error, "
                "you can set `DEBUG_TOOLBAR_CONFIG['IS_RUNNING_TESTS'] = False` to "
                "bypass this check.",
                id="debug_toolbar.E001",
            )
        ]
    else:
        return []


@register
def check_settings(app_configs, **kwargs):
    errors = []
    USER_CONFIG = getattr(settings, "DEBUG_TOOLBAR_CONFIG", {})
    if "OBSERVE_REQUEST_CALLBACK" in USER_CONFIG:
        errors.append(
            Warning(
                "The deprecated OBSERVE_REQUEST_CALLBACK setting is present in DEBUG_TOOLBAR_CONFIG.",
                hint="Use the UPDATE_ON_FETCH and/or SHOW_TOOLBAR_CALLBACK settings instead.",
                id="debug_toolbar.W008",
            )
        )
    return errors


================================================
FILE: debug_toolbar/decorators.py
================================================
import functools

from asgiref.sync import iscoroutinefunction
from django.http import Http404
from django.utils.translation import get_language, override as language_override

from debug_toolbar import settings as dt_settings


def require_show_toolbar(view):
    """
    Async compatible decorator to restrict access to a view
    based on the Debug Toolbar's visibility settings.
    """
    from debug_toolbar.middleware import get_show_toolbar

    if iscoroutinefunction(view):

        @functools.wraps(view)
        async def inner(request, *args, **kwargs):
            show_toolbar = get_show_toolbar(async_mode=True)
            if not await show_toolbar(request):
                raise Http404

            return await view(request, *args, **kwargs)
    else:

        @functools.wraps(view)
        def inner(request, *args, **kwargs):
            show_toolbar = get_show_toolbar(async_mode=False)
            if not show_toolbar(request):
                raise Http404

            return view(request, *args, **kwargs)

    return inner


def render_with_toolbar_language(view):
    """Force any rendering within the view to use the toolbar's language."""

    @functools.wraps(view)
    def inner(request, *args, **kwargs):
        lang = dt_settings.get_config()["TOOLBAR_LANGUAGE"] or get_language()
        with language_override(lang):
            return view(request, *args, **kwargs)

    return inner


================================================
FILE: debug_toolbar/forms.py
================================================
import json

from django import forms
from django.core import signing
from django.core.exceptions import ValidationError

from debug_toolbar.sanitize import force_str


class SignedDataForm(forms.Form):
    """Helper form that wraps a form to validate its contents on post.

    class PanelForm(forms.Form):
        # fields

    On render:
        form = SignedDataForm(initial=PanelForm(initial=data).initial)

    On POST:
        signed_form = SignedDataForm(request.POST)
        if signed_form.is_valid():
            panel_form = PanelForm(signed_form.verified_data)
            if panel_form.is_valid():
                # Success
    """

    salt = "django_debug_toolbar"
    signed = forms.CharField(required=True, widget=forms.HiddenInput)

    def __init__(self, *args, **kwargs):
        initial = kwargs.pop("initial", None)
        if initial:
            initial = {"signed": self.sign(initial)}
        super().__init__(*args, initial=initial, **kwargs)

    def clean_signed(self):
        try:
            verified = json.loads(
                signing.Signer(salt=self.salt).unsign(self.cleaned_data["signed"])
            )
            return verified
        except signing.BadSignature as exc:
            raise ValidationError("Bad signature") from exc

    def verified_data(self):
        return self.is_valid() and self.cleaned_data["signed"]

    @classmethod
    def sign(cls, data):
        return signing.Signer(salt=cls.salt).sign(
            json.dumps({key: force_str(value) for key, value in data.items()})
        )


================================================
FILE: debug_toolbar/locale/bg/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# arneatec <arneatec@gmail.com>, 2022
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: arneatec <arneatec@gmail.com>, 2022\n"
"Language-Team: Bulgarian (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/bg/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: apps.py:18
msgid "Debug Toolbar"
msgstr "Debug Toolbar"

#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:77
msgid "Alerts"
msgstr ""

#: panels/cache.py:168
msgid "Cache"
msgstr "Кеш"

#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d извикване за %(time).2fms"
msgstr[1] "%(cache_calls)d извиквания за %(time).2fms"

#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "Извиквания на кеша от %(count)d бекенд"
msgstr[1] "Извиквания на кеша от %(count)d бекенда"

#: panels/headers.py:31
msgid "Headers"
msgstr "Хедъри"

#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr "История"

#: panels/profiling.py:140
msgid "Profiling"
msgstr "Профилиране"

#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "Прехвани пренасочвания"

#: panels/request.py:16
msgid "Request"
msgstr "Заявка"

#: panels/request.py:38
msgid "<no view>"
msgstr "<no view>"

#: panels/request.py:55
msgid "<unavailable>"
msgstr "<unavailable>"

#: panels/settings.py:17
msgid "Settings"
msgstr "Настройки"

#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr "Настройки от %s"

#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d получател на 1 сигнал"
msgstr[1] "%(num_receivers)d получатели на 1 сигнал"

#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d приемник на %(num_signals)d сигнала"
msgstr[1] "%(num_receivers)d приемника на %(num_signals)d сигнала"

#: panels/signals.py:67
msgid "Signals"
msgstr "Сигнали"

#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr "Read uncommitted"

#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr "Read committed"

#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr "Repeatable read"

#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Serializable"

#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "Autocommit"

#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr "Незает"

#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Активен"

#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "В транзакция"

#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "В грешка"

#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "Непознато"

#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"

#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] "%(query_count)d заявка за %(sql_time).2fms"
msgstr[1] "%(query_count)d заявки за %(sql_time).2fms"

#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] "SQL заявки от %(count)d връзка"
msgstr[1] "SQL заявки от %(count)d връзки"

#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "Статични файлове (%(num_found)s открити, %(num_used)s използвани)"

#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Статични файлове"

#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)s файл използван"
msgstr[1] "%(num_used)s файла са използвани"

#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Шаблони"

#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Шаблони (%(num_templates)s рендерирани)"

#: panels/templates/panel.py:195
msgid "No origin"
msgstr "Няма произход"

#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "Процесор: %(cum)0.2fms (%(total)0.2fms)"

#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Общо: %0.2fms"

#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Време"

#: panels/timer.py:46
msgid "User CPU time"
msgstr "Потребителско процесорно време "

#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f ms"

#: panels/timer.py:47
msgid "System CPU time"
msgstr "Системно процесорно време"

#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f ms"

#: panels/timer.py:48
msgid "Total CPU time"
msgstr "Общо процесорно време"

#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f ms"

#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Изминало време"

#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f ms"

#: panels/timer.py:51
msgid "Context switches"
msgstr "Контекстни превключвания"

#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr "%(vcsw)d волеви, %(ivcsw)d неволеви"

#: panels/versions.py:19
msgid "Versions"
msgstr "Версии"

#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "Скрий лента с инструменти "

#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Скрий"

#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""

#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "Покажи лента с инструменти"

#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "Деактивирай за следващо и всички последващи заявки"

#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "Активирай за следващо и всички последващи заявки"

#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""

#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Обобщение"

#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "Общо извиквания"

#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "Общо време"

#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr "Кеш успехи"

#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr "Кеш неуспехи"

#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "Команди"

#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "Извиквания"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Вид"

#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "Аргументи"

#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "Аргументи с ключови думи"

#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "Бекенд"

#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "Хедъри на заявката"

#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Ключ"

#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Стойност"

#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "Хедъри на отговора"

#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr "WSGI environ"

#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr "Понеже WSGI environ наследява средата на сървъра, е показана само важната част от него по-долу."

#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr "Метод"

#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Път"

#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr "Променливи на зявката"

#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr "Състояние"

#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Действие"

#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Променлива"

#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Извикване"

#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr "КумулативноВреме"

#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "За"

#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "ОбщоВреме"

#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Брой"

#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "Информация за изгледа"

#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "Функция на изгледа"

#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "Име на URL"

#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "Бисквитки"

#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "Няма бисквитки"

#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "Данни на сесията"

#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "Няма данни от сесията"

#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "GET данни"

#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Няма GET данни"

#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "POST данни"

#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Няма POST данни"

#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Настройка"

#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Сигнал"

#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Получатели"

#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)s заявка"
msgstr[1] "%(num)s заявки"

#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including <abbr title=\"Similar queries are queries with the same SQL, but "
"potentially different parameters.\">%(count)s similar</abbr>"
msgstr "Включва <abbr title=\"Similar queries are queries with the same SQL, but potentially different parameters.\">%(count)s подобни</abbr>"

#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and <abbr title=\"Duplicate queries are identical to each other: they "
"execute exactly the same SQL and parameters.\">%(dupes)s duplicates</abbr>"
msgstr "и <abbr title=\"Duplicate queries are identical to each other: they execute exactly the same SQL and parameters.\">%(dupes)s повторени</abbr>"

#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Заявка"

#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Във времето"

#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr "%(count)s подобни заявки."

#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr "Повторени %(dupes)s пъти."

#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Връзка:"

#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "Изолационно ниво:"

#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Статус на транзакцията:"

#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(неясен)"

#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "Не са записани никакви SQL заявки по време на тази заявка."

#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr "SQL разяснен"

#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "Изпълнен SQL"

#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "База данни"

#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr "SQL профилиран"

#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Грешка"

#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr "Избран SQL"

#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Празно множество"

#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] "Път към статичен файл"
msgstr[1] "Пътища към статични файлове"

#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr "(префикс %(prefix)s)"

#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "None"

#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] "Приложение статичен файл"
msgstr[1] "Приложения статично файлове"

#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] "Статичен файл"
msgstr[1] "Статични файлове"

#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] "%(payload_count)s файл"
msgstr[1] "%(payload_count)s файла"

#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Местоположение"

#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr "Произход на шаблона:"

#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "Път към шаблон"
msgstr[1] "Пътища към шаблони"

#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "Шаблон"
msgstr[1] "Шаблони"

#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr "Превключи контекста"

#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "Контекстен процесор"
msgstr[1] "Контекстни процесори"

#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr "Използване на ресурси"

#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Ресурс"

#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr "Време в браузъра"

#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr "Атрибут на измерването"

#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr "Време от началото на навигацията (+продължителност)"

#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr "Пакет"

#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Име"

#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Версия"

#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "Местоположение:"

#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr "Django Debug Toolbar прехвана пренасочване към горния URL с цел преглед за отстраняване на грешки /дебъг/. Можете да кликнете върху връзката по-горе, за да продължите с пренасочването по нормалния начин."

#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr "Данните за този панел вече не са налични. Моля, презаредете страницата и опитайте отново. "


================================================
FILE: debug_toolbar/locale/ca/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# el_libre como el chaval <el.libre@gmail.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: el_libre como el chaval <el.libre@gmail.com>, 2013\n"
"Language-Team: Catalan (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: apps.py:18
msgid "Debug Toolbar"
msgstr ""

#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:77
msgid "Alerts"
msgstr ""

#: panels/cache.py:168
msgid "Cache"
msgstr "Caxè"

#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] ""
msgstr[1] ""

#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] ""
msgstr[1] ""

#: panels/headers.py:31
msgid "Headers"
msgstr "Encapçalaments"

#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr ""

#: panels/profiling.py:140
msgid "Profiling"
msgstr ""

#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr ""

#: panels/request.py:16
msgid "Request"
msgstr "Demanar"

#: panels/request.py:38
msgid "<no view>"
msgstr ""

#: panels/request.py:55
msgid "<unavailable>"
msgstr ""

#: panels/settings.py:17
msgid "Settings"
msgstr "Configuració"

#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr ""

#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] ""
msgstr[1] ""

#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] ""
msgstr[1] ""

#: panels/signals.py:67
msgid "Signals"
msgstr "Senyals"

#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr ""

#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr ""

#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr ""

#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Seriable"

#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr ""

#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr ""

#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Actiu"

#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "En transacció"

#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr ""

#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "Desconegut"

#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"

#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
msgstr[1] ""

#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
msgstr[1] ""

#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr ""

#: panels/staticfiles.py:103
msgid "Static files"
msgstr ""

#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] ""
msgstr[1] ""

#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Plantilles"

#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr ""

#: panels/templates/panel.py:195
msgid "No origin"
msgstr ""

#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr ""

#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Total: %0.2fms"

#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Hora"

#: panels/timer.py:46
msgid "User CPU time"
msgstr ""

#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr ""

#: panels/timer.py:47
msgid "System CPU time"
msgstr ""

#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr ""

#: panels/timer.py:48
msgid "Total CPU time"
msgstr ""

#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr ""

#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Temps emprat"

#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr ""

#: panels/timer.py:51
msgid "Context switches"
msgstr ""

#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr ""

#: panels/versions.py:19
msgid "Versions"
msgstr "Versions"

#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "Amagar barra d'eina"

#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Amagar"

#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""

#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "Mostrar barra d'eines"

#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr ""

#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr ""

#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""

#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Resum"

#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "Total crides"

#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "Total temps"

#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "Comandes"

#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "Crides"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Tipus"

#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "Administració"

#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr ""

#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Clau"

#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Valor"

#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr ""

#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr ""

#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr ""

#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr ""

#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr ""

#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr ""

#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr ""

#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Acció"

#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Variable"

#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Cridar"

#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr ""

#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "Per"

#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "TempsTotal"

#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Recomptar"

#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "Veure informació"

#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr ""

#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr ""

#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr ""

#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr ""

#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr ""

#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr ""

#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr ""

#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Sense dades GET"

#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr ""

#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Sense dades POST"

#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Configuració"

#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Senyal"

#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Destinataris"

#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including <abbr title=\"Similar queries are queries with the same SQL, but "
"potentially different parameters.\">%(count)s similar</abbr>"
msgstr ""

#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and <abbr title=\"Duplicate queries are identical to each other: they "
"execute exactly the same SQL and parameters.\">%(dupes)s duplicates</abbr>"
msgstr ""

#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Petició"

#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Línia temporal"

#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr ""

#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""

#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Connexió:"

#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr ""

#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr ""

#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(desconegut)"

#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr ""

#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr ""

#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "SQL Executat"

#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "Base de dades"

#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr ""

#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Error"

#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr ""

#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr ""

#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr ""

#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "Cap"

#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Ubicació"

#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr ""

#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] ""
msgstr[1] "Plantilles"

#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr ""

#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr ""

#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Font"

#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr ""

#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr ""

#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr ""

#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr ""

#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Nom"

#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Versió"

#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "Ubicació:"

#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr ""

#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr ""


================================================
FILE: debug_toolbar/locale/cs/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Josef Kolář <mail@josefkolar.cz>, 2020
# kuboja, 2024
# Vláďa Macek <macek@sandbox.cz>, 2013-2014
# Vláďa Macek <macek@sandbox.cz>, 2015,2021
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: kuboja, 2024\n"
"Language-Team: Czech (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/cs/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: cs\n"
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"

#: apps.py:18
msgid "Debug Toolbar"
msgstr "Debug Toolbar"

#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:77
msgid "Alerts"
msgstr ""

#: panels/cache.py:168
msgid "Cache"
msgstr "Mezipaměť"

#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d volání během %(time).2fms"
msgstr[1] "%(cache_calls)d volání během %(time).2fms"
msgstr[2] "%(cache_calls)d volání během %(time).2fms"
msgstr[3] "%(cache_calls)d volání během %(time).2fms"

#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "Volání mezipaměti z %(count)d backendu"
msgstr[1] "Volání mezipaměti z %(count)d backendů"
msgstr[2] "Volání mezipaměti z %(count)d backendů"
msgstr[3] "Volání mezipaměti z %(count)d backendů"

#: panels/headers.py:31
msgid "Headers"
msgstr "Hlavičky"

#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr "Historie"

#: panels/profiling.py:140
msgid "Profiling"
msgstr "Profilování"

#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "Zachycení přesměrování"

#: panels/request.py:16
msgid "Request"
msgstr "Požadavek"

#: panels/request.py:38
msgid "<no view>"
msgstr "<žádný pohled>"

#: panels/request.py:55
msgid "<unavailable>"
msgstr "<není k dispozici>"

#: panels/settings.py:17
msgid "Settings"
msgstr "Nastavení"

#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr ""

#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d příjemce 1 signálu"
msgstr[1] "%(num_receivers)d příjemci 1 signálu"
msgstr[2] "%(num_receivers)d příjemců 1 signálu"
msgstr[3] "%(num_receivers)d příjemců 1 signálu"

#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d příjemce %(num_signals)d signálů"
msgstr[1] "%(num_receivers)d příjemci %(num_signals)d signálů"
msgstr[2] "%(num_receivers)d příjemců %(num_signals)d signálů"
msgstr[3] "%(num_receivers)d příjemců %(num_signals)d signálů"

#: panels/signals.py:67
msgid "Signals"
msgstr "Signály"

#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr "Read uncommitted"

#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr "Read committed"

#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr "Repeatable read"

#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Serializable"

#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "Autocommit"

#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr "V klidu (idle)"

#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Aktivní"

#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "Uvnitř transakce"

#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "V chybovém stavu"

#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "Neznámé"

#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"

#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] "%(query_count)ddotaz během %(sql_time).2f ms"
msgstr[1] "%(query_count)d dotazy během %(sql_time).2f ms"
msgstr[2] "%(query_count)d dotazů během %(sql_time).2f ms"
msgstr[3] "%(query_count)d dotazů během %(sql_time).2f ms"

#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] "SQL dotazy z %(count)d spojení"
msgstr[1] "SQL dotazy ze %(count)d spojení"
msgstr[2] "SQL dotazy z %(count)d spojení"
msgstr[3] "SQL dotazy z %(count)d spojení"

#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "Statické soubory (nalezeno: %(num_found)s, použito: %(num_used)s)"

#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Statické soubory"

#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)s soubor použit"
msgstr[1] "%(num_used)s soubory použity"
msgstr[2] "%(num_used)s souborů použito"
msgstr[3] "%(num_used)s souborů použito"

#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Šablony"

#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Šablony (renderovaných: %(num_templates)s)"

#: panels/templates/panel.py:195
msgid "No origin"
msgstr "Zdroj chybí"

#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)"

#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Celkem: %0.2fms"

#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Čas"

#: panels/timer.py:46
msgid "User CPU time"
msgstr "Uživatelský čas CPU"

#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f ms"

#: panels/timer.py:47
msgid "System CPU time"
msgstr "Systémový čas CPU"

#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f ms"

#: panels/timer.py:48
msgid "Total CPU time"
msgstr "Celkový čas CPU"

#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f ms"

#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Uplynulý čas"

#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f ms"

#: panels/timer.py:51
msgid "Context switches"
msgstr "Přepnutí kontextu"

#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr "%(vcsw)d dobrovolně, %(ivcsw)d nedobrovolně"

#: panels/versions.py:19
msgid "Versions"
msgstr "Verze"

#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "Skrýt lištu"

#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Skrýt"

#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""

#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "Zobrazit lištu"

#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "Vypnout pro následné požadavky"

#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "Zapnout pro následné požadavky"

#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""

#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Souhrn"

#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "Celkem volání"

#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "Celkový čas"

#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr "Nalezení v mezipaměti"

#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr "Nebylo v mezipaměti"

#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "Příkazy"

#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "Volání"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Typ"

#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "Argumenty"

#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "Klíčované argumenty"

#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "Backend"

#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "Záhlaví požadavku"

#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Klíč"

#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Hodnota"

#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "Záhlaví odezvy"

#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr "Prostředí WSGI"

#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr "Níže je zobrazena pouze podstatná část proměnných prostředí, protože WSGI je dědí od serveru."

#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr "Metoda"

#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Cesta"

#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr "Proměnné požadavku"

#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr "Stav"

#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Akce"

#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Proměnná"

#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Volání"

#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr "KumulČas"

#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "Celk. za volání"

#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "CelkČas"

#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Počet"

#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "Informace o pohledových funkcích"

#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "Pohledová funkce"

#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "Název URL"

#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "Soubory cookie"

#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "Žádné soubory cookie"

#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "Data sezení"

#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "Žádná data sezení"

#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "Data typu GET"

#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Žádná data typu GET"

#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "Data typu POST"

#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Žádná data typu POST"

#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Nastavení"

#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Signál"

#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Příjemci"

#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)s dotaz"
msgstr[1] "%(num)s dotazy"
msgstr[2] "%(num)s dotazů"
msgstr[3] "%(num)s dotazů"

#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including <abbr title=\"Similar queries are queries with the same SQL, but "
"potentially different parameters.\">%(count)s similar</abbr>"
msgstr "včetně <abbr title=\"Podobné dotazy jsou dotazy se stejným SQL, ale potenciálně odlišnými parametry.\">%(count)s podobných</abbr>"

#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and <abbr title=\"Duplicate queries are identical to each other: they "
"execute exactly the same SQL and parameters.\">%(dupes)s duplicates</abbr>"
msgstr "a <abbr title=\"Duplicitní dotazy jsou navzájem identické: provádějí přesně stejné SQL a parametry.\">%(dupes)s duplicitních</abbr>"

#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Dotaz"

#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Časová osa"

#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr "%(count)s podobných dotazů."

#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""

#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Spojení:"

#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "Úroveň izolace:"

#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Stav transakce:"

#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(neznámé)"

#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "Pro tento požadavek nebyl zaznamenán žádný dotaz SQL."

#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr "Vysvětlené SQL"

#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "Spuštěné SQL"

#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "Databáze"

#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr "Profilované SQL"

#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Chyba"

#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr "Vybrané SQL"

#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Prázdná sada"

#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] "Cesta ke statickým souborům"
msgstr[1] "Cesty ke statickým souborům"
msgstr[2] "Cesty ke statickým souborům"
msgstr[3] "Cesty ke statickým souborům"

#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr "(prefix %(prefix)s)"

#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "Žádné"

#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] "Aplikace se statickými soubory"
msgstr[1] "Aplikace se statickými soubory"
msgstr[2] "Aplikace se statickými soubory"
msgstr[3] "Aplikace se statickými soubory"

#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] "Statický soubor"
msgstr[1] "Statické soubory"
msgstr[2] "Statické soubory"
msgstr[3] "Statické soubory"

#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] "%(payload_count)s soubor"
msgstr[1] "%(payload_count)s soubory"
msgstr[2] "%(payload_count)s souborů"
msgstr[3] "%(payload_count)s souborů"

#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Adresa"

#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr "Zdroj šablony:"

#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "Cesta k šabloně"
msgstr[1] "Cesty k šablonám"
msgstr[2] "Cesty k šablonám"
msgstr[3] "Cesty k šablonám"

#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "Šablona"
msgstr[1] "Šablony"
msgstr[2] "Šablony"
msgstr[3] "Šablony"

#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr "Zap./vyp. kontext"

#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "Procesor kontextu"
msgstr[1] "Procesory kontextu"
msgstr[2] "Procesory kontextu"
msgstr[3] "Procesory kontextu"

#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr "Využití zdrojů"

#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Prostředek"

#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr "Časování prohlížeče"

#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr "Atribut"

#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr "Čas od začátku navigace (+trvání)"

#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr "Balíček"

#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Název"

#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Verze"

#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "Adresa:"

#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr "Aplikace Django Debug Toolbar zachytila přesměrování na výše uvedenou adresu URL za účelem ladicího zobrazení. Chcete-li přesměrování dokončit, klepněte na odkaz výše."

#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr "Data pro tento panel již nejsou k dispozici. Obnovte stránku a zkuste to znova."


================================================
FILE: debug_toolbar/locale/de/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Jannis Leidel <jannis@leidel.info>, 2012-2014,2021
# Matthias Kestenholz <mk@feinheit.ch>, 2021
# Tim Schilling, 2021
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Tim Schilling, 2021\n"
"Language-Team: German (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: apps.py:18
msgid "Debug Toolbar"
msgstr "Debug Toolbar"

#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:77
msgid "Alerts"
msgstr ""

#: panels/cache.py:168
msgid "Cache"
msgstr "Cache"

#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d Abfrage in %(time).2fms"
msgstr[1] "%(cache_calls)d Abfragen in %(time).2fms"

#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "Cache-Aufrufe von %(count)d Backend"
msgstr[1] "Cache-Aufrufe von %(count)d Backends"

#: panels/headers.py:31
msgid "Headers"
msgstr "Header"

#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr "Geschichte"

#: panels/profiling.py:140
msgid "Profiling"
msgstr "Profiling"

#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "Umleitungen abfangen"

#: panels/request.py:16
msgid "Request"
msgstr "Anfrage"

#: panels/request.py:38
msgid "<no view>"
msgstr "<kein View>"

#: panels/request.py:55
msgid "<unavailable>"
msgstr "<nicht verfügbar>"

#: panels/settings.py:17
msgid "Settings"
msgstr "Einstellungen"

#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr "Einstellungen von %s"

#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d Empfänger von einem Signal"
msgstr[1] "%(num_receivers)d Empfänger von einem Signal"

#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d Empfänger von %(num_signals)d Signalen"
msgstr[1] "%(num_receivers)d Empfänger von %(num_signals)d Signalen"

#: panels/signals.py:67
msgid "Signals"
msgstr "Signale"

#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr "Read uncommitted"

#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr "Read committed"

#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr "Repeatable read"

#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Serializable"

#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "Autocommit"

#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr "Wartet"

#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Aktiv"

#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "In einer Transaktion"

#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "Fehler"

#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "Unbekannt"

#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"

#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] "%(query_count)d Abfrage in %(sql_time).2f ms"
msgstr[1] "%(query_count)d Abfragen in %(sql_time).2f ms"

#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] "SQL-Abfragen von %(count)d Verbindung"
msgstr[1] "SQL-Abfragen von %(count)d Verbindungen"

#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "Statische Dateien (%(num_found)s gefunden, %(num_used)s benutzt)"

#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Statische Dateien"

#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)s Datei benutzt"
msgstr[1] "%(num_used)s Dateien benutzt"

#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Templates"

#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Templates (%(num_templates)s gerendert)"

#: panels/templates/panel.py:195
msgid "No origin"
msgstr "Kein Ursprung"

#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)"

#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Gesamt: %0.2fms"

#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Zeit"

#: panels/timer.py:46
msgid "User CPU time"
msgstr "CPU-Zeit Benutzer"

#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f ms"

#: panels/timer.py:47
msgid "System CPU time"
msgstr "CPU-Zeit System"

#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f ms"

#: panels/timer.py:48
msgid "Total CPU time"
msgstr "CPU-Zeit gesamt"

#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f ms"

#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Verstrichene Zeit"

#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f ms"

#: panels/timer.py:51
msgid "Context switches"
msgstr "Kontextwechsel"

#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr "%(vcsw)d freiwillig, %(ivcsw)d unfreiwillig"

#: panels/versions.py:19
msgid "Versions"
msgstr "Versionen"

#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "Toolbar ausblenden"

#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Ausblenden"

#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""

#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "Toolbar einblenden"

#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "Für nächste und die darauffolgenden Anfragen deaktivieren"

#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "Für nächste und die darauffolgenden Anfragen aktivieren"

#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""

#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Zusammenfassung"

#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "Aufrufe gesamt"

#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "Zeit gesamt"

#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr "Cache erfolgreich"

#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr "Cache verfehlt"

#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "Befehle"

#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "Aufrufe"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Typ"

#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "Argumente"

#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "Schlüsselwort-Argumente"

#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "Backend"

#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "Anfrage-Header"

#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Schlüssel"

#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Wert"

#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "Antwort-Header"

#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr "WSGI-Umgebung"

#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr "Da sich die WSGI-Umgebung von der Umgebung des Servers ableitet, wird nur eine notwendige Teilmenge dargestellt."

#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr "Methode"

#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Pfad"

#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr "Anfrage-Variablen"

#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr "Status"

#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Aktion"

#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Variable"

#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Aufruf"

#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr "Gesamt"

#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "Per"

#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "Total"

#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Anzahl"

#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "View-Informationen"

#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "View-Funktion"

#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "URL-Name"

#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "Cookies"

#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "Keine Cookies"

#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "Sitzungsdaten"

#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "Keine Sitzungsdaten"

#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "GET-Daten"

#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Keine GET-Daten"

#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "POST-Daten"

#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Keine POST-Daten"

#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Einstellung"

#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Signal"

#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Empfänger"

#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)s Abfrage"
msgstr[1] "%(num)s Abfragen"

#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including <abbr title=\"Similar queries are queries with the same SQL, but "
"potentially different parameters.\">%(count)s similar</abbr>"
msgstr "inklusive <abbr title=\"Similar queries are queries with the same SQL, but potentially different parameters.\">%(count)s ähnlich</abbr>"

#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and <abbr title=\"Duplicate queries are identical to each other: they "
"execute exactly the same SQL and parameters.\">%(dupes)s duplicates</abbr>"
msgstr "und <abbr title=\"Duplicate queries are identical to each other: they execute exactly the same SQL and parameters.\">%(dupes)s dupliziert</abbr>"

#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Abfrage"

#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Verlauf"

#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr "%(count)s ähnliche Abfragen."

#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr "%(dupes)s-mal dupliziert."

#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Verbindung:"

#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "Isolationsebene:"

#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Transaktionsstatus:"

#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(unbekannt)"

#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "Es wurde keine SQL-Abfrage während dieses Vorgangs aufgezeichnet."

#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr "SQL erklärt"

#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "Ausgeführtes SQL"

#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "Datenbank"

#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr "SQL durchleuchtet"

#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Fehler"

#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr "SQL ausgewählt"

#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Leeres Set"

#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] "Pfad mit statischen Dateien"
msgstr[1] "Pfade mit statischen Dateien"

#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr "(Präfix %(prefix)s)"

#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "-"

#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] "App mit statischen Dateien"
msgstr[1] "Apps mit statischen Dateien"

#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] "Statische Datei"
msgstr[1] "Statische Dateien"

#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] "%(payload_count)s Datei"
msgstr[1] "%(payload_count)s Dateien"

#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Ort"

#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr "Template-Quelle:"

#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "Template-Pfad"
msgstr[1] "Template-Pfade"

#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "Template"
msgstr[1] "Templates"

#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr "Context zeigen"

#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "Context-Prozessor"
msgstr[1] "Context-Prozessoren"

#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr "Ressourcenverwendung"

#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Ressource"

#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr "Browserzeit"

#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr "Timing-Attribut"

#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr "Zeit seit Seitenaufruf (plus Dauer)"

#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr "Paket"

#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Name"

#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Version"

#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "Ziel:"

#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr "Die Django Debug Toolbar hat eine Weiterleitung an die obenstehende URL zur weiteren Überprüfung abgefangen. Klicken Sie den Link, um wie gewohnt weitergeleitet zu werden."

#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr "Die Daten für dieses Panel sind nicht mehr verfügbar. Bitte laden Sie die Seite neu."


================================================
FILE: debug_toolbar/locale/en/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-09 19:07-0600\n"
"PO-Revision-Date: 2012-03-31 20:10+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"

#: apps.py:18
msgid "Debug Toolbar"
msgstr ""

#: models.py:11
msgid "history entry"
msgstr ""

#: models.py:12
msgid "history entries"
msgstr ""

#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:77
msgid "Alerts"
msgstr ""

#: panels/cache.py:169
msgid "Cache"
msgstr ""

#: panels/cache.py:176
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] ""
msgstr[1] ""

#: panels/cache.py:185
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] ""
msgstr[1] ""

#: panels/community.py:13
msgid "Community"
msgstr ""

#: panels/headers.py:31
msgid "Headers"
msgstr ""

#: panels/history/panel.py:21 panels/history/panel.py:22
msgid "History"
msgstr ""

#: panels/profiling.py:156
msgid "Profiling"
msgstr ""

#: panels/redirects.py:19
msgid "Intercept redirects"
msgstr ""

#: panels/request.py:16
msgid "Request"
msgstr ""

#: panels/request.py:36
msgid "<no view>"
msgstr ""

#: panels/request.py:53
msgid "<unavailable>"
msgstr ""

#: panels/settings.py:27
msgid "Settings"
msgstr ""

#: panels/settings.py:30
#, python-format
msgid "Settings from %s"
msgstr ""

#: panels/signals.py:59
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] ""
msgstr[1] ""

#: panels/signals.py:64
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] ""
msgstr[1] ""

#: panels/signals.py:69
msgid "Signals"
msgstr ""

#: panels/sql/forms.py:56
msgid "Data for this panel isn't available anymore."
msgstr ""

#: panels/sql/forms.py:68
msgid "Invalid query id."
msgstr ""

#: panels/sql/panel.py:32 panels/sql/panel.py:43
msgid "Read uncommitted"
msgstr ""

#: panels/sql/panel.py:33 panels/sql/panel.py:45
msgid "Read committed"
msgstr ""

#: panels/sql/panel.py:34 panels/sql/panel.py:47
msgid "Repeatable read"
msgstr ""

#: panels/sql/panel.py:35 panels/sql/panel.py:49
msgid "Serializable"
msgstr ""

#: panels/sql/panel.py:41
msgid "Autocommit"
msgstr ""

#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "Idle"
msgstr ""

#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "Active"
msgstr ""

#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "In transaction"
msgstr ""

#: panels/sql/panel.py:66 panels/sql/panel.py:76
msgid "In error"
msgstr ""

#: panels/sql/panel.py:67 panels/sql/panel.py:77
msgid "Unknown"
msgstr ""

#: panels/sql/panel.py:165
msgid "SQL"
msgstr ""

#: panels/sql/panel.py:172
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
msgstr[1] ""

#: panels/sql/panel.py:184
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
msgstr[1] ""

#: panels/staticfiles.py:47
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr ""

#: panels/staticfiles.py:81
msgid "Static files"
msgstr ""

#: panels/staticfiles.py:87
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] ""
msgstr[1] ""

#: panels/templates/panel.py:104
msgid "Templates"
msgstr ""

#: panels/templates/panel.py:109
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr ""

#: panels/templates/panel.py:199
msgid "No origin"
msgstr ""

#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr ""

#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr ""

#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr ""

#: panels/timer.py:46
msgid "User CPU time"
msgstr ""

#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr ""

#: panels/timer.py:47
msgid "System CPU time"
msgstr ""

#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr ""

#: panels/timer.py:48
msgid "Total CPU time"
msgstr ""

#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr ""

#: panels/timer.py:49
msgid "Elapsed time"
msgstr ""

#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr ""

#: panels/timer.py:51
msgid "Context switches"
msgstr ""

#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr ""

#: panels/versions.py:21
msgid "Versions"
msgstr ""

#: templates/debug_toolbar/base.html:22
msgid "Hide toolbar"
msgstr ""

#: templates/debug_toolbar/base.html:22
msgid "Hide"
msgstr ""

#: templates/debug_toolbar/base.html:24 templates/debug_toolbar/base.html:25
msgid "Toggle Theme"
msgstr ""

#: templates/debug_toolbar/base.html:34
msgid "Show toolbar"
msgstr ""

#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr ""

#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr ""

#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""

#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr ""

#: templates/debug_toolbar/panels/community.html:5
msgid "Community & Contribution"
msgstr ""

#: templates/debug_toolbar/panels/community.html:8
msgid ""
"Want to contribute to Django Debug Toolbar? Get involved in our community!"
msgstr ""

#: templates/debug_toolbar/panels/community.html:14
msgid "Join Discussions"
msgstr ""

#: templates/debug_toolbar/panels/community.html:19
msgid "View Issues"
msgstr ""

#: templates/debug_toolbar/panels/community.html:24
msgid "Contribution Guide"
msgstr ""

#: templates/debug_toolbar/panels/community.html:31
msgid "Django Debug Toolbar Documentation"
msgstr ""

#: templates/debug_toolbar/panels/community.html:34
msgid ""
"Explore the official documentation to learn more about Django Debug Toolbar."
msgstr ""

#: templates/debug_toolbar/panels/community.html:39
msgid "Read Documentation"
msgstr ""

#: templates/debug_toolbar/panels/community.html:44
msgid "How to Use Django Debug Toolbar"
msgstr ""

#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr ""

#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr ""

#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr ""

#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr ""

#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr ""

#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr ""

#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr ""

#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr ""

#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr ""

#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr ""

#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr ""

#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr ""

#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr ""

#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr ""

#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr ""

#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr ""

#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr ""

#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr ""

#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr ""

#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr ""

#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr ""

#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr ""

#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr ""

#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr ""

#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr ""

#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr ""

#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr ""

#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr ""

#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr ""

#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr ""

#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr ""

#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including <abbr title=\"Similar queries are queries with the same SQL, but "
"potentially different parameters.\">%(count)s similar</abbr>"
msgstr ""

#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and <abbr title=\"Duplicate queries are identical to each other: they "
"execute exactly the same SQL and parameters.\">%(dupes)s duplicates</abbr>"
msgstr ""

#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr ""

#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr ""

#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr ""

#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""

#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr ""

#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr ""

#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr ""

#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr ""

#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr ""

#: templates/debug_toolbar/panels/sql_explain.html:3
msgid "SQL explained"
msgstr ""

#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr ""

#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr ""

#: templates/debug_toolbar/panels/sql_profile.html:3
msgid "SQL profiled"
msgstr ""

#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr ""

#: templates/debug_toolbar/panels/sql_select.html:3
msgid "SQL selected"
msgstr ""

#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr ""

#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr ""

#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr ""

#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr ""

#: templates/debug_toolbar/panels/template_source.html:3
msgid "Template source:"
msgstr ""

#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr ""

#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr ""

#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr ""

#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr ""

#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr ""

#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr ""

#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr ""

#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr ""

#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr ""

#: templates/debug_toolbar/redirect.html:61
msgid "WARNING:"
msgstr ""

#: templates/debug_toolbar/redirect.html:62
#, python-format
msgid ""
"\n"
"      The RedirectsPanel is deprecated and will be removed in a future "
"version. The HistoryPanel\n"
"      now provides the ability to view toolbar data for redirected requests. "
"If you still have a\n"
"      use case for this panel, please comment on this <a target=\"_blank\" "
"rel=\"noopener noreferrer\"\n"
"      href=\"%(issue_url)s\">issue</a>.\n"
"      "
msgstr ""

#: templates/debug_toolbar/redirect.html:70
msgid "Location:"
msgstr ""

#: templates/debug_toolbar/redirect.html:72
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr ""

#: views.py:21
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr ""


================================================
FILE: debug_toolbar/locale/es/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# jcatalan <catalanojuan@gmail.com>, 2014
# Daniel Iglesias <igledaniel@gmail.com>, 2021
# Leonardo J. Caballero G. <leonardocaballero@gmail.com>, 2013-2014,2020
# marcelor <marcelor@gmail.com>, 2013
# Sergio Infante <rsinfante@gmail.com>, 2015
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Daniel Iglesias <igledaniel@gmail.com>, 2021\n"
"Language-Team: Spanish (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"

#: apps.py:18
msgid "Debug Toolbar"
msgstr "Barra de herramientas de Depuración"

#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:77
msgid "Alerts"
msgstr ""

#: panels/cache.py:168
msgid "Cache"
msgstr "Cache"

#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d llamada en %(time).2fms"
msgstr[1] "%(cache_calls)d llamadas en %(time).2fms"
msgstr[2] "%(cache_calls)d llamadas en %(time).2fms"

#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "%(count)d llamadas al Cache desde el backend"
msgstr[1] "%(count)d llamadas al Caché desde backends"
msgstr[2] "%(count)d llamadas al Caché desde backends"

#: panels/headers.py:31
msgid "Headers"
msgstr "Encabezados"

#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr "Historial"

#: panels/profiling.py:140
msgid "Profiling"
msgstr "Análisis de rendimiento"

#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "Interceptar re-direcionamiento"

#: panels/request.py:16
msgid "Request"
msgstr "Petición"

#: panels/request.py:38
msgid "<no view>"
msgstr "<sin vista>"

#: panels/request.py:55
msgid "<unavailable>"
msgstr "<no disponible>"

#: panels/settings.py:17
msgid "Settings"
msgstr "Configuraciones"

#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr "Valores procedentes de %s"

#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d receptor de 1 señal"
msgstr[1] "%(num_receivers)d receptores de 1 señal"
msgstr[2] "%(num_receivers)d receptores de 1 señal"

#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d receptor de %(num_signals)d señales"
msgstr[1] "%(num_receivers)d receptores de %(num_signals)d señales"
msgstr[2] "%(num_receivers)d receptores de %(num_signals)d señales"

#: panels/signals.py:67
msgid "Signals"
msgstr "Señales"

#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr "Leer cambios tentativos"

#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr "Leer cambios permanentes"

#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr "Lectura repetible"

#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Serializable"

#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "Autocommit"

#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr "Inactivo"

#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Activo"

#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "En transacción"

#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "En error"

#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "Desconocido"

#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"

#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""

#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""

#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "Archivos estáticos (%(num_found)s encontrados, %(num_used)s en uso)"

#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Archivos estáticos"

#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)s archivo usado"
msgstr[1] "%(num_used)s archivos usados"
msgstr[2] "%(num_used)s archivos usados"

#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Plantillas"

#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Plantillas (%(num_templates)s renderizadas)"

#: panels/templates/panel.py:195
msgid "No origin"
msgstr "Sin origen"

#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)"

#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Total: %0.2fms"

#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Tiempo"

#: panels/timer.py:46
msgid "User CPU time"
msgstr "Tiempo en CPU de usuario"

#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f ms"

#: panels/timer.py:47
msgid "System CPU time"
msgstr "Tiempo en CPU del sistema"

#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f ms"

#: panels/timer.py:48
msgid "Total CPU time"
msgstr "Tiempo total de CPU"

#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f ms"

#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Tiempo transcurrido"

#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f ms"

#: panels/timer.py:51
msgid "Context switches"
msgstr "Cambios de contexto"

#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr "%(vcsw)d voluntario, %(ivcsw)d involuntario"

#: panels/versions.py:19
msgid "Versions"
msgstr "Versiones"

#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "Ocutar barra de herramientas"

#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Ocultar"

#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""

#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "Mostrar barra de herramientas"

#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "Deshabilitar para el próximo y sucesivos peticiones"

#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "Habilitar para el próximo y sucesivos peticiones"

#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""

#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "Resúmen"

#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "Llamadas totales"

#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "Tiempo total"

#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr "Aciertos de caché"

#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr "Errores de caché"

#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "Comandos"

#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "Llamadas"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Tipo"

#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "Argumentos"

#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "Argumentos por palabra clave"

#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "Backend"

#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "Encabezados de peticiones"

#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Clave"

#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Valor"

#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "Encabezados de respuesta"

#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr "Entorno WSGI"

#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr "Ya que el entorno WSGI hereda el entorno del servidor, solo un subconjunto significativo es mostrado más abajo."

#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr "Método"

#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Ruta"

#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr "Variables de la petición"

#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr "Estado"

#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Acción"

#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Variable"

#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Llamar"

#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr "TiempoAcum"

#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "Por"

#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "TiempoTot"

#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Contar"

#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "Información de Vista"

#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "Función vista"

#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "Nombre de dirección URL"

#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "Cookies"

#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "Sin cookies"

#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "Datos de sesión"

#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "Sin datos de sesión"

#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "Datos del GET"

#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Sin datos GET"

#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "Datos del POST"

#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Sin datos POST"

#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Configuración"

#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Señal"

#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Receptores"

#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)s consulta"
msgstr[1] "%(num)s consultas"
msgstr[2] "%(num)s consultas"

#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including <abbr title=\"Similar queries are queries with the same SQL, but "
"potentially different parameters.\">%(count)s similar</abbr>"
msgstr ""

#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and <abbr title=\"Duplicate queries are identical to each other: they "
"execute exactly the same SQL and parameters.\">%(dupes)s duplicates</abbr>"
msgstr "y <abbr title=\"Las consultas repetidas son idénticas: ejecutan el mismo SQL con los mismos parámetros. \">%(dupes)s repetidos</abbr>"

#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Query"

#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Línea de tiempo"

#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr "%(count)s consultas similares. "

#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr "Repetidas %(dupes)s veces."

#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Conexión:"

#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "Nivel de aislamiento:"

#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Estado de la transacción:"

#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(desconocido)"

#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "No se registraron consultas SQL durante ésta petición."

#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr "SQL explicado"

#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "SQL Ejecutado"

#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "Base de datos"

#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr "SQL analizado"

#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Error"

#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr "SQL seleccionado"

#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Establecer Vacío"

#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] "Ruta a archivos estático"
msgstr[1] "Rutas a archivos estáticos"
msgstr[2] "Rutas a archivos estáticos"

#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr "(prefijo %(prefix)s)"

#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "Ninguno"

#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] "Aplicación a archivos estáticos"
msgstr[1] "Aplicaciones de archivos estáticos"
msgstr[2] "Aplicaciones de archivos estáticos"

#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] "Archivo estático"
msgstr[1] "Archivos estáticos"
msgstr[2] "Archivos estáticos"

#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] "%(payload_count)s archivo"
msgstr[1] "%(payload_count)s archivos"
msgstr[2] "%(payload_count)s archivos"

#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Ubicación"

#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr "Fuente de plantilla:"

#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "Ruta de plantilla"
msgstr[1] "Rutas de plantillas"
msgstr[2] "Rutas de plantillas"

#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "Plantilla"
msgstr[1] "Plantillas"
msgstr[2] "Plantillas"

#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr "Mostrar/Ocultar contexto"

#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "Procesador de contexto"
msgstr[1] "Procesadores de contexto"
msgstr[2] "Procesadores de contexto"

#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr "Uso de recursos"

#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Recurso"

#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr "Distribución de tiempos de navegador"

#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr "Atributo de tiempo"

#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr "Tiempo desde inicio de la navegación (+duración)"

#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr "Paquete"

#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Nombre"

#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Versión"

#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "Ubicación:"

#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr "El Django Debug Toolbar ha interceptado un re-direccionamiento a la dirección de Internet mostrada arriba, con el propósito de inspeccionarla. Usted puede hacer clic en el vínculo de arriba para continuar con el re-direccionamiento normalmente."

#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr "La información de este panel ya no se encuentra disponible. Por favor recargue la página y pruebe nuevamente."


================================================
FILE: debug_toolbar/locale/fa/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Ali Soltani <alisoltanics@gmail.com>, 2021
# Elyas Ebrahimpour <eliasebrahimpour@gmail.com>, 2024
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Elyas Ebrahimpour <eliasebrahimpour@gmail.com>, 2024\n"
"Language-Team: Persian (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/fa/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fa\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#: apps.py:18
msgid "Debug Toolbar"
msgstr "نوار ابزار دیباگ"

#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:77
msgid "Alerts"
msgstr ""

#: panels/cache.py:168
msgid "Cache"
msgstr "Cache"

#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d فراخوان در %(time).2f میلی‌ثانیه"
msgstr[1] "%(cache_calls)d فراخوان در %(time).2f میلی‌ثانیه"

#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "فراخوان‌های کش از %(count)d بک‌اند"
msgstr[1] "فراخوان‌های کش از %(count)d بک‌اندها"

#: panels/headers.py:31
msgid "Headers"
msgstr "هدر ها"

#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr "تاریخچه"

#: panels/profiling.py:140
msgid "Profiling"
msgstr "نمایه سازی"

#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "رهگیری تغییر مسیرها"

#: panels/request.py:16
msgid "Request"
msgstr "ریکوئست"

#: panels/request.py:38
msgid "<no view>"
msgstr "<بدون نمایش>"

#: panels/request.py:55
msgid "<unavailable>"
msgstr "<در دسترس نیست>"

#: panels/settings.py:17
msgid "Settings"
msgstr "تنظیمات"

#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr "تنظیمات از %s"

#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d گیرنده از 1 سیگنال"
msgstr[1] "%(num_receivers)d گیرنده از 1 سیگنال"

#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d گیرنده از %(num_signals)d سیگنال"
msgstr[1] "%(num_receivers)d گیرنده از %(num_signals)d سیگنال"

#: panels/signals.py:67
msgid "Signals"
msgstr "سیگنال‌ها"

#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr "خواندن بدون تاثیر"

#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr "خواندن با تاثیر"

#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr "خواندن تکرارپذیر"

#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "قابل سریالایز شدن"

#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "کامیت خودکار"

#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr "IDLE"

#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "فعال"

#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "در تراکنش"

#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "در خطا"

#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "ناشناخته"

#: panels/sql/panel.py:162
msgid "SQL"
msgstr "اس کیو ال"

#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] "%(query_count)d کوئری در %(sql_time).2f میلی‌ثانیه"
msgstr[1] "%(query_count)d کوئری در %(sql_time).2f میلی‌ثانیه"

#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] "کوئری‌های SQL از %(count)d اتصال"
msgstr[1] "کوئری‌های SQL از %(count)d اتصال"

#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "فایل‌های استاتیک (%(num_found)s یافته شده، %(num_used)s استفاده شده)"

#: panels/staticfiles.py:103
msgid "Static files"
msgstr "فایل های استاتیک"

#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)s فایل استفاده شده"
msgstr[1] "%(num_used)s فایل استفاده شده"

#: panels/templates/panel.py:101
msgid "Templates"
msgstr "تمپلیت ها"

#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "تمپلیت ها (%(num_templates)s rendered)"

#: panels/templates/panel.py:195
msgid "No origin"
msgstr "بدون origin"

#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "پردازنده: %(cum)0.2f میلی‌ثانیه (%(total)0.2f میلی‌ثانیه)"

#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "مجموع: %0.2f میلی‌ثانیه"

#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "زمان"

#: panels/timer.py:46
msgid "User CPU time"
msgstr "زمان سی پی یو کاربر"

#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f میلی‌ثانیه"

#: panels/timer.py:47
msgid "System CPU time"
msgstr "زمان CPU سیستم"

#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f میلی‌ثانیه"

#: panels/timer.py:48
msgid "Total CPU time"
msgstr "زمان کل سی پی یو"

#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f میلی ثانیه"

#: panels/timer.py:49
msgid "Elapsed time"
msgstr "زمان سپری شده"

#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f میلی‌ثانیه"

#: panels/timer.py:51
msgid "Context switches"
msgstr "تغییرات زمینه"

#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr "%(vcsw)d اختیاری، %(ivcsw)d غیراختیاری"

#: panels/versions.py:19
msgid "Versions"
msgstr "ورژن ها"

#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr "پنهان کردن toolbar"

#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "پنهان کردن"

#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""

#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr "نمایش toolbar"

#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr "غیر فعال کردن برای ریکوئست های پی در پی"

#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr "فعال کردن برای ریکوئست های بعدی و پی در پی"

#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""

#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr "خلاصه"

#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr "تعداد نهایی کال کردن ها"

#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr "زمان نهایی"

#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr "Cache hits"

#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr "عدم دسترسی به کش"

#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr "دستورات"

#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr "فراخوانی ها"
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "نوع"

#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr "آرگومان ها"

#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr "آرگومان های کیورد"

#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr "بک اند"

#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr "هدر های ریکوئست"

#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "کلید"

#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "مقدار"

#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr "هدر های ریسپانس"

#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr "محیط WSGI"

#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr "از آنجا که محیط WSGI محیط سرور را به ارث می برد ، فقط یک زیر مجموعه مهم در زیر نشان داده شده است."

#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr "متد"

#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Path"

#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr "متغیر های ریکوئست"

#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr "وضعیت"

#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "اکشن"

#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "متغیر"

#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Call"

#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr ""

#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "بر"

#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "زمان نهایی"

#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "تعداد"

#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "اطلاعات View"

#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr "تابع Viw"

#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr "نام URL"

#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr "کوکی ها"

#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr "کوکی ای وجود ندارد"

#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr "دیتای سشن"

#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr "دیتای سشن وجود ندارد"

#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr "دیتای GET"

#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "دیتای GET وجود ندارد"

#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr "دیتای POST"

#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "دیتای POST وجود ندارد"

#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "تنظیمات"

#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Signal"

#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Receiver ها"

#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including <abbr title=\"Similar queries are queries with the same SQL, but "
"potentially different parameters.\">%(count)s similar</abbr>"
msgstr ""

#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and <abbr title=\"Duplicate queries are identical to each other: they "
"execute exactly the same SQL and parameters.\">%(dupes)s duplicates</abbr>"
msgstr ""

#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "کوئری"

#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "تایملاین"

#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr "%(count)s کوئری مشابه"

#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr "%(dupes)s بار تکرار شده"

#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "کانکشن:"

#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "سطح isolation:"

#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "وضعیت تراکنش"

#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(ناشناخته)"

#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "کوئری SQL ای در این ریکوئست ثبت نشده است"

#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr "توضیح SQL"

#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "کوئری اجرا شده"

#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "دیتابیس"

#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr "SQL profiled"

#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "خطا"

#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr "انتخاب شده SQL"

#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "set خالی"

#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr "(prefix %(prefix)s)"

#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "خالی"

#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "مکان"

#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr "منبع تمپلیت:"

#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr "تغییر متن"

#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "پردازشگر محیط"
msgstr[1] "پردازشگرهای محیط"

#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr "استفاده منابع"

#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "منابع"

#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr "زمان بندی مرورگر"

#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr "ویژگی زمان بندی"

#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr "زمان از آغاز ناوبری (+مدت)"

#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr "پکیج"

#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "نام"

#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "ورژن"

#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr "مکان:"

#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr "نوار ابزار اشکال‌زدای Django یک هدایت به URL بالا را به منظور مشاهده اشکال توسط ابزار اشکال‌زدای افزونه کرده است. می‌توانید بر روی پیوند بالا کلیک کنید تا با هدایت به صورت عادی ادامه دهید."

#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr "دیتا برای نمایش در دسترس نیست. لطفا صفحه را ریفرش کنید."


================================================
FILE: debug_toolbar/locale/fi/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Klaus Dahlén, 2012
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Klaus Dahlén, 2012\n"
"Language-Team: Finnish (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/fi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: apps.py:18
msgid "Debug Toolbar"
msgstr ""

#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:77
msgid "Alerts"
msgstr ""

#: panels/cache.py:168
msgid "Cache"
msgstr "Välimuisti"

#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d kutsu %(time).2fms"
msgstr[1] "%(cache_calls)d kutsua %(time).2fms"

#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] ""
msgstr[1] ""

#: panels/headers.py:31
msgid "Headers"
msgstr ""

#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr ""

#: panels/profiling.py:140
msgid "Profiling"
msgstr "Profilointi"

#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr ""

#: panels/request.py:16
msgid "Request"
msgstr ""

#: panels/request.py:38
msgid "<no view>"
msgstr ""

#: panels/request.py:55
msgid "<unavailable>"
msgstr ""

#: panels/settings.py:17
msgid "Settings"
msgstr "Asetukset"

#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr ""

#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d vastaanotin 1 signaalille"
msgstr[1] "%(num_receivers)d vastaanotinta 1 signaalille"

#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d vastaanotin %(num_signals)d signaalille"
msgstr[1] "%(num_receivers)d vastaanotinta %(num_signals)d signaalille"

#: panels/signals.py:67
msgid "Signals"
msgstr "Signaalit"

#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr ""

#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr ""

#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr ""

#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Muuttuja"

#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "Autocommit"

#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr ""

#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Tapahtuma"

#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "Tapahtuman tila:"

#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "Virhe"

#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "(tuntematon)"

#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"

#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] ""
msgstr[1] ""

#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] ""
msgstr[1] ""

#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr ""

#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Staattiset tiedostot"

#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] ""
msgstr[1] ""

#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Asettelupohjat"

#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Asetttelupohjat (%(num_templates)s renderöity)"

#: panels/templates/panel.py:195
msgid "No origin"
msgstr ""

#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)"

#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr ""

#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Aika"

#: panels/timer.py:46
msgid "User CPU time"
msgstr "Käyttäjän CPU-aika"

#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f ms"

#: panels/timer.py:47
msgid "System CPU time"
msgstr "Järjestelmän CPU-aika"

#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f ms"

#: panels/timer.py:48
msgid "Total CPU time"
msgstr "CPU-aika yhteensä"

#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f ms"

#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Kulunut aika"

#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f ms"

#: panels/timer.py:51
msgid "Context switches"
msgstr "Kontekstin vivut"

#: panels/timer.py:52
#, python-format
msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary"
msgstr ""

#: panels/versions.py:19
msgid "Versions"
msgstr "Versiot"

#: templates/debug_toolbar/base.html:23
msgid "Hide toolbar"
msgstr ""

#: templates/debug_toolbar/base.html:23
msgid "Hide"
msgstr "Piilota"

#: templates/debug_toolbar/base.html:25 templates/debug_toolbar/base.html:26
msgid "Toggle Theme"
msgstr ""

#: templates/debug_toolbar/base.html:35
msgid "Show toolbar"
msgstr ""

#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Disable for next and successive requests"
msgstr ""

#: templates/debug_toolbar/includes/panel_button.html:4
msgid "Enable for next and successive requests"
msgstr ""

#: templates/debug_toolbar/panels/alerts.html:4
msgid "Alerts found"
msgstr ""

#: templates/debug_toolbar/panels/alerts.html:11
msgid "No alerts found"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:2
msgid "Summary"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:6
msgid "Total calls"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:7
msgid "Total time"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:8
msgid "Cache hits"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:9
msgid "Cache misses"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:21
msgid "Commands"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:39
msgid "Calls"
msgstr ""
#: templates/debug_toolbar/panels/cache.html:44
msgid "Type"
msgstr "Tyyppi"

#: templates/debug_toolbar/panels/cache.html:45
#: templates/debug_toolbar/panels/request.html:8
msgid "Arguments"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:46
#: templates/debug_toolbar/panels/request.html:9
msgid "Keyword arguments"
msgstr ""

#: templates/debug_toolbar/panels/cache.html:47
msgid "Backend"
msgstr ""

#: templates/debug_toolbar/panels/headers.html:3
msgid "Request headers"
msgstr ""

#: templates/debug_toolbar/panels/headers.html:8
#: templates/debug_toolbar/panels/headers.html:27
#: templates/debug_toolbar/panels/headers.html:48
msgid "Key"
msgstr "Avain"

#: templates/debug_toolbar/panels/headers.html:9
#: templates/debug_toolbar/panels/headers.html:28
#: templates/debug_toolbar/panels/headers.html:49
#: templates/debug_toolbar/panels/history_tr.html:23
#: templates/debug_toolbar/panels/request_variables.html:12
#: templates/debug_toolbar/panels/settings.html:6
#: templates/debug_toolbar/panels/timer.html:11
msgid "Value"
msgstr "Arvo"

#: templates/debug_toolbar/panels/headers.html:22
msgid "Response headers"
msgstr ""

#: templates/debug_toolbar/panels/headers.html:41
msgid "WSGI environ"
msgstr ""

#: templates/debug_toolbar/panels/headers.html:43
msgid ""
"Since the WSGI environ inherits the environment of the server, only a "
"significant subset is shown below."
msgstr ""

#: templates/debug_toolbar/panels/history.html:10
msgid "Method"
msgstr ""

#: templates/debug_toolbar/panels/history.html:11
#: templates/debug_toolbar/panels/staticfiles.html:43
msgid "Path"
msgstr "Polku"

#: templates/debug_toolbar/panels/history.html:12
msgid "Request Variables"
msgstr ""

#: templates/debug_toolbar/panels/history.html:13
msgid "Status"
msgstr ""

#: templates/debug_toolbar/panels/history.html:14
#: templates/debug_toolbar/panels/sql.html:37
msgid "Action"
msgstr "Tapahtuma"

#: templates/debug_toolbar/panels/history_tr.html:22
#: templates/debug_toolbar/panels/request_variables.html:11
msgid "Variable"
msgstr "Muuttuja"

#: templates/debug_toolbar/panels/profiling.html:5
msgid "Call"
msgstr "Kutsu"

#: templates/debug_toolbar/panels/profiling.html:6
msgid "CumTime"
msgstr "CumTime"

#: templates/debug_toolbar/panels/profiling.html:7
#: templates/debug_toolbar/panels/profiling.html:9
msgid "Per"
msgstr "/"

#: templates/debug_toolbar/panels/profiling.html:8
msgid "TotTime"
msgstr "TotTime"

#: templates/debug_toolbar/panels/profiling.html:10
msgid "Count"
msgstr "Määrä"

#: templates/debug_toolbar/panels/request.html:3
msgid "View information"
msgstr "Näkymän tiedot"

#: templates/debug_toolbar/panels/request.html:7
msgid "View function"
msgstr ""

#: templates/debug_toolbar/panels/request.html:10
msgid "URL name"
msgstr ""

#: templates/debug_toolbar/panels/request.html:24
msgid "Cookies"
msgstr ""

#: templates/debug_toolbar/panels/request.html:27
msgid "No cookies"
msgstr ""

#: templates/debug_toolbar/panels/request.html:31
msgid "Session data"
msgstr ""

#: templates/debug_toolbar/panels/request.html:34
msgid "No session data"
msgstr ""

#: templates/debug_toolbar/panels/request.html:38
msgid "GET data"
msgstr ""

#: templates/debug_toolbar/panels/request.html:41
msgid "No GET data"
msgstr "Ei GET-dataa"

#: templates/debug_toolbar/panels/request.html:45
msgid "POST data"
msgstr ""

#: templates/debug_toolbar/panels/request.html:48
msgid "No POST data"
msgstr "Ei POST-dataa"

#: templates/debug_toolbar/panels/settings.html:5
msgid "Setting"
msgstr "Asetus"

#: templates/debug_toolbar/panels/signals.html:5
msgid "Signal"
msgstr "Signaali"

#: templates/debug_toolbar/panels/signals.html:6
msgid "Receivers"
msgstr "Vastaanottimet"

#: templates/debug_toolbar/panels/sql.html:6
#, python-format
msgid "%(num)s query"
msgid_plural "%(num)s queries"
msgstr[0] "%(num)s kysely"
msgstr[1] "%(num)s kyselyä"

#: templates/debug_toolbar/panels/sql.html:8
#, python-format
msgid ""
"including <abbr title=\"Similar queries are queries with the same SQL, but "
"potentially different parameters.\">%(count)s similar</abbr>"
msgstr ""

#: templates/debug_toolbar/panels/sql.html:12
#, python-format
msgid ""
"and <abbr title=\"Duplicate queries are identical to each other: they "
"execute exactly the same SQL and parameters.\">%(dupes)s duplicates</abbr>"
msgstr ""

#: templates/debug_toolbar/panels/sql.html:34
msgid "Query"
msgstr "Kysely"

#: templates/debug_toolbar/panels/sql.html:35
#: templates/debug_toolbar/panels/timer.html:36
msgid "Timeline"
msgstr "Aikajana"

#: templates/debug_toolbar/panels/sql.html:52
#, python-format
msgid "%(count)s similar queries."
msgstr ""

#: templates/debug_toolbar/panels/sql.html:58
#, python-format
msgid "Duplicated %(dupes)s times."
msgstr ""

#: templates/debug_toolbar/panels/sql.html:95
msgid "Connection:"
msgstr "Yhteys:"

#: templates/debug_toolbar/panels/sql.html:97
msgid "Isolation level:"
msgstr "Eristystaso:"

#: templates/debug_toolbar/panels/sql.html:100
msgid "Transaction status:"
msgstr "Tapahtuman status:"

#: templates/debug_toolbar/panels/sql.html:114
msgid "(unknown)"
msgstr "(tuntematon)"

#: templates/debug_toolbar/panels/sql.html:123
msgid "No SQL queries were recorded during this request."
msgstr "Tämän pyynnön aikana ei tehty yhtään SQL-kyselyä."

#: templates/debug_toolbar/panels/sql_explain.html:4
msgid "SQL explained"
msgstr ""

#: templates/debug_toolbar/panels/sql_explain.html:9
#: templates/debug_toolbar/panels/sql_profile.html:10
#: templates/debug_toolbar/panels/sql_select.html:9
msgid "Executed SQL"
msgstr "Suoritettu SQL"

#: templates/debug_toolbar/panels/sql_explain.html:13
#: templates/debug_toolbar/panels/sql_profile.html:14
#: templates/debug_toolbar/panels/sql_select.html:13
msgid "Database"
msgstr "Tietokanta"

#: templates/debug_toolbar/panels/sql_profile.html:4
msgid "SQL profiled"
msgstr ""

#: templates/debug_toolbar/panels/sql_profile.html:37
msgid "Error"
msgstr "Virhe"

#: templates/debug_toolbar/panels/sql_select.html:4
msgid "SQL selected"
msgstr ""

#: templates/debug_toolbar/panels/sql_select.html:36
msgid "Empty set"
msgstr "Tyhjä joukko"

#: templates/debug_toolbar/panels/staticfiles.html:3
msgid "Static file path"
msgid_plural "Static file paths"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/staticfiles.html:7
#, python-format
msgid "(prefix %(prefix)s)"
msgstr ""

#: templates/debug_toolbar/panels/staticfiles.html:11
#: templates/debug_toolbar/panels/staticfiles.html:22
#: templates/debug_toolbar/panels/staticfiles.html:34
#: templates/debug_toolbar/panels/templates.html:10
#: templates/debug_toolbar/panels/templates.html:30
#: templates/debug_toolbar/panels/templates.html:47
msgid "None"
msgstr "None"

#: templates/debug_toolbar/panels/staticfiles.html:14
msgid "Static file app"
msgid_plural "Static file apps"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/staticfiles.html:25
msgid "Static file"
msgid_plural "Static files"
msgstr[0] ""
msgstr[1] "Staattiset tiedostot"

#: templates/debug_toolbar/panels/staticfiles.html:39
#, python-format
msgid "%(payload_count)s file"
msgid_plural "%(payload_count)s files"
msgstr[0] ""
msgstr[1] ""

#: templates/debug_toolbar/panels/staticfiles.html:44
msgid "Location"
msgstr "Sijainti"

#: templates/debug_toolbar/panels/template_source.html:4
msgid "Template source:"
msgstr ""

#: templates/debug_toolbar/panels/templates.html:2
msgid "Template path"
msgid_plural "Template paths"
msgstr[0] "Sivupohjan polku"
msgstr[1] "Sivupohjan polku"

#: templates/debug_toolbar/panels/templates.html:13
msgid "Template"
msgid_plural "Templates"
msgstr[0] "Sivupohja"
msgstr[1] "Sivupohja"

#: templates/debug_toolbar/panels/templates.html:22
#: templates/debug_toolbar/panels/templates.html:40
msgid "Toggle context"
msgstr ""

#: templates/debug_toolbar/panels/templates.html:33
msgid "Context processor"
msgid_plural "Context processors"
msgstr[0] "Kontekstiprosessori"
msgstr[1] "Kontekstiprosessori"

#: templates/debug_toolbar/panels/timer.html:2
msgid "Resource usage"
msgstr ""

#: templates/debug_toolbar/panels/timer.html:10
msgid "Resource"
msgstr "Resurssi"

#: templates/debug_toolbar/panels/timer.html:26
msgid "Browser timing"
msgstr ""

#: templates/debug_toolbar/panels/timer.html:35
msgid "Timing attribute"
msgstr ""

#: templates/debug_toolbar/panels/timer.html:37
msgid "Time since navigation start (+duration)"
msgstr ""

#: templates/debug_toolbar/panels/versions.html:10
msgid "Package"
msgstr ""

#: templates/debug_toolbar/panels/versions.html:11
msgid "Name"
msgstr "Nimi"

#: templates/debug_toolbar/panels/versions.html:12
msgid "Version"
msgstr "Versio"

#: templates/debug_toolbar/redirect.html:10
msgid "Location:"
msgstr ""

#: templates/debug_toolbar/redirect.html:12
msgid ""
"The Django Debug Toolbar has intercepted a redirect to the above URL for "
"debug viewing purposes. You can click the above link to continue with the "
"redirect as normal."
msgstr ""

#: views.py:16
msgid ""
"Data for this panel isn't available anymore. Please reload the page and "
"retry."
msgstr ""


================================================
FILE: debug_toolbar/locale/fr/LC_MESSAGES/django.po
================================================
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Anthony Jorion <pingax@gmail.com>, 2013
# c1b16e6c929c50740e884a23aafc8829_00449d9 <ec12d7f60c595a45665f74b651aefabe_13279>, 2014
# Claude Paroz <claude@2xlibre.net>, 2013
# Colin O'Brien <colin@things.be>, 2021
# David Paccoud, 2009
# Dominick Rivard <dominick.rivard@gmail.com>, 2013
# Maxime Abry <maxime.abry@critizr.com>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Django Debug Toolbar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-06 07:12-0500\n"
"PO-Revision-Date: 2010-11-30 00:00+0000\n"
"Last-Translator: Colin O'Brien <colin@things.be>, 2021\n"
"Language-Team: French (http://app.transifex.com/django-debug-toolbar/django-debug-toolbar/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fr\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"

#: apps.py:18
msgid "Debug Toolbar"
msgstr "Barre d'outils de débogage"

#: panels/alerts.py:67
#, python-brace-format
msgid ""
"Form with id \"{form_id}\" contains file input, but does not have the "
"attribute enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:70
msgid ""
"Form contains file input, but does not have the attribute "
"enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:73
#, python-brace-format
msgid ""
"Input element references form with id \"{form_id}\", but the form does not "
"have the attribute enctype=\"multipart/form-data\"."
msgstr ""

#: panels/alerts.py:77
msgid "Alerts"
msgstr ""

#: panels/cache.py:168
msgid "Cache"
msgstr "Cache"

#: panels/cache.py:174
#, python-format
msgid "%(cache_calls)d call in %(time).2fms"
msgid_plural "%(cache_calls)d calls in %(time).2fms"
msgstr[0] "%(cache_calls)d appel en %(time).2fms"
msgstr[1] "%(cache_calls)d appels en %(time).2fms"
msgstr[2] "%(cache_calls)d appels en %(time).2fms"

#: panels/cache.py:183
#, python-format
msgid "Cache calls from %(count)d backend"
msgid_plural "Cache calls from %(count)d backends"
msgstr[0] "Appels au cache depuis %(count)d moteur"
msgstr[1] "Appels au cache depuis %(count)d moteurs"
msgstr[2] "Appels au cache depuis %(count)d moteurs"

#: panels/headers.py:31
msgid "Headers"
msgstr "En-têtes"

#: panels/history/panel.py:19 panels/history/panel.py:20
msgid "History"
msgstr "Historique"

#: panels/profiling.py:140
msgid "Profiling"
msgstr "Profilage"

#: panels/redirects.py:17
msgid "Intercept redirects"
msgstr "Interception des redirections"

#: panels/request.py:16
msgid "Request"
msgstr "Requête"

#: panels/request.py:38
msgid "<no view>"
msgstr "<pas de vue>"

#: panels/request.py:55
msgid "<unavailable>"
msgstr "<indisponible>"

#: panels/settings.py:17
msgid "Settings"
msgstr "Paramètres"

#: panels/settings.py:20
#, python-format
msgid "Settings from %s"
msgstr "Paramètres de %s"

#: panels/signals.py:57
#, python-format
msgid "%(num_receivers)d receiver of 1 signal"
msgid_plural "%(num_receivers)d receivers of 1 signal"
msgstr[0] "%(num_receivers)d receveur d'un signal"
msgstr[1] "%(num_receivers)d receveurs d'un signal"
msgstr[2] "%(num_receivers)d receveurs d'un signal"

#: panels/signals.py:62
#, python-format
msgid "%(num_receivers)d receiver of %(num_signals)d signals"
msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals"
msgstr[0] "%(num_receivers)d receveur de %(num_signals)d signaux"
msgstr[1] "%(num_receivers)d receveurs de %(num_signals)d signaux"
msgstr[2] "%(num_receivers)d receveurs de %(num_signals)d signaux"

#: panels/signals.py:67
msgid "Signals"
msgstr "Signaux"

#: panels/sql/panel.py:30 panels/sql/panel.py:41
msgid "Read uncommitted"
msgstr "Lecture non validée"

#: panels/sql/panel.py:31 panels/sql/panel.py:43
msgid "Read committed"
msgstr "Lecture validée"

#: panels/sql/panel.py:32 panels/sql/panel.py:45
msgid "Repeatable read"
msgstr "Lecture répétable"

#: panels/sql/panel.py:33 panels/sql/panel.py:47
msgid "Serializable"
msgstr "Sérialisable"

#: panels/sql/panel.py:39
msgid "Autocommit"
msgstr "Auto validation"

#: panels/sql/panel.py:61 panels/sql/panel.py:71
msgid "Idle"
msgstr "Inactif"

#: panels/sql/panel.py:62 panels/sql/panel.py:72
msgid "Active"
msgstr "Actif"

#: panels/sql/panel.py:63 panels/sql/panel.py:73
msgid "In transaction"
msgstr "Transaction en cours"

#: panels/sql/panel.py:64 panels/sql/panel.py:74
msgid "In error"
msgstr "Erreur"

#: panels/sql/panel.py:65 panels/sql/panel.py:75
msgid "Unknown"
msgstr "Indéterminé"

#: panels/sql/panel.py:162
msgid "SQL"
msgstr "SQL"

#: panels/sql/panel.py:168
#, python-format
msgid "%(query_count)d query in %(sql_time).2fms"
msgid_plural "%(query_count)d queries in %(sql_time).2fms"
msgstr[0] "%(query_count)d requête en %(sql_time).2f ms"
msgstr[1] "%(query_count)d requêtes en %(sql_time).2f ms"
msgstr[2] "%(query_count)d requêtes en %(sql_time).2f ms"

#: panels/sql/panel.py:180
#, python-format
msgid "SQL queries from %(count)d connection"
msgid_plural "SQL queries from %(count)d connections"
msgstr[0] "requêtes SQL venant de %(count)d connexion"
msgstr[1] "Requêtes SQL venant de %(count)d connexions"
msgstr[2] "Requêtes SQL venant de %(count)d connexions"

#: panels/staticfiles.py:82
#, python-format
msgid "Static files (%(num_found)s found, %(num_used)s used)"
msgstr "Fichiers statiques (%(num_found)s trouvé(s), %(num_used)s utilisé(s))"

#: panels/staticfiles.py:103
msgid "Static files"
msgstr "Fichiers statiques"

#: panels/staticfiles.py:109
#, python-format
msgid "%(num_used)s file used"
msgid_plural "%(num_used)s files used"
msgstr[0] "%(num_used)s fichier utilisé"
msgstr[1] "%(num_used)s fichiers utilisés"
msgstr[2] "%(num_used)s fichiers utilisés"

#: panels/templates/panel.py:101
msgid "Templates"
msgstr "Gabarits"

#: panels/templates/panel.py:106
#, python-format
msgid "Templates (%(num_templates)s rendered)"
msgstr "Gabarits (%(num_templates)s affichés)"

#: panels/templates/panel.py:195
msgid "No origin"
msgstr "Sans Origine"

#: panels/timer.py:27
#, python-format
msgid "CPU: %(cum)0.2fms (%(total)0.2fms)"
msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)"

#: panels/timer.py:32
#, python-format
msgid "Total: %0.2fms"
msgstr "Total : %0.2fms"

#: panels/timer.py:38 templates/debug_toolbar/panels/cache.html:43
#: templates/debug_toolbar/panels/history.html:9
#: templates/debug_toolbar/panels/sql.html:36
#: templates/debug_toolbar/panels/sql_explain.html:11
#: templates/debug_toolbar/panels/sql_profile.html:12
#: templates/debug_toolbar/panels/sql_select.html:11
msgid "Time"
msgstr "Temps"

#: panels/timer.py:46
msgid "User CPU time"
msgstr "Temps CPU de l'utilisateur"

#: panels/timer.py:46
#, python-format
msgid "%(utime)0.3f ms"
msgstr "%(utime)0.3f ms"

#: panels/timer.py:47
msgid "System CPU time"
msgstr "Temps CPU du système"

#: panels/timer.py:47
#, python-format
msgid "%(stime)0.3f ms"
msgstr "%(stime)0.3f ms"

#: panels/timer.py:48
msgid "Total CPU time"
msgstr "Temps total du CPU"

#: panels/timer.py:48
#, python-format
msgid "%(total)0.3f ms"
msgstr "%(total)0.3f ms"

#: panels/timer.py:49
msgid "Elapsed time"
msgstr "Temps écoulé"

#: panels/timer.py:49
#, python-format
msgid "%(total_time)0.3f ms"
msgstr "%(total_time)0.3f ms"

#: panels/timer.py:51
msgid "Context switches"
msgstr "Basculements de contexte"

#: panels/timer.py:52
#,
Download .txt
gitextract_yarv0zo1/

├── .editorconfig
├── .git-blame-ignore-revs
├── .github/
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── dependabot.yml
│   ├── release.yml
│   └── workflows/
│       ├── coverage.yml
│       ├── release.yml
│       ├── test.yml
│       └── zizmor.yml
├── .gitignore
├── .pre-commit-config.yaml
├── .readthedocs.yaml
├── .tx/
│   └── config
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── Makefile
├── README.rst
├── SECURITY.md
├── biome.json
├── debug_toolbar/
│   ├── __init__.py
│   ├── _compat.py
│   ├── _stubs.py
│   ├── apps.py
│   ├── decorators.py
│   ├── forms.py
│   ├── locale/
│   │   ├── bg/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── ca/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── cs/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── de/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── en/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── es/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── fa/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── fi/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── fr/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── he/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── id/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── it/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── ja/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── ko/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── lt/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── nl/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── pl/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── pt/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── pt_BR/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── ru/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── sk/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── sv_SE/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── tr/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── uk/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   ├── uz/
│   │   │   └── LC_MESSAGES/
│   │   │       ├── django.mo
│   │   │       └── django.po
│   │   └── zh_CN/
│   │       └── LC_MESSAGES/
│   │           ├── django.mo
│   │           └── django.po
│   ├── management/
│   │   ├── __init__.py
│   │   └── commands/
│   │       ├── __init__.py
│   │       └── debugsqlshell.py
│   ├── middleware.py
│   ├── migrations/
│   │   ├── 0001_initial.py
│   │   └── __init__.py
│   ├── models.py
│   ├── panels/
│   │   ├── __init__.py
│   │   ├── alerts.py
│   │   ├── cache.py
│   │   ├── community.py
│   │   ├── headers.py
│   │   ├── history/
│   │   │   ├── __init__.py
│   │   │   ├── forms.py
│   │   │   ├── panel.py
│   │   │   └── views.py
│   │   ├── profiling.py
│   │   ├── redirects.py
│   │   ├── request.py
│   │   ├── settings.py
│   │   ├── signals.py
│   │   ├── sql/
│   │   │   ├── __init__.py
│   │   │   ├── forms.py
│   │   │   ├── panel.py
│   │   │   ├── tracking.py
│   │   │   ├── utils.py
│   │   │   └── views.py
│   │   ├── staticfiles.py
│   │   ├── templates/
│   │   │   ├── __init__.py
│   │   │   ├── jinja2.py
│   │   │   ├── panel.py
│   │   │   └── views.py
│   │   ├── timer.py
│   │   └── versions.py
│   ├── py.typed
│   ├── sanitize.py
│   ├── settings.py
│   ├── static/
│   │   └── debug_toolbar/
│   │       ├── css/
│   │       │   ├── print.css
│   │       │   └── toolbar.css
│   │       └── js/
│   │           ├── history.js
│   │           ├── redirect.js
│   │           ├── timer.js
│   │           ├── toolbar.js
│   │           └── utils.js
│   ├── store.py
│   ├── templates/
│   │   └── debug_toolbar/
│   │       ├── base.html
│   │       ├── includes/
│   │       │   ├── panel_button.html
│   │       │   ├── panel_content.html
│   │       │   └── theme_selector.html
│   │       ├── panels/
│   │       │   ├── alerts.html
│   │       │   ├── cache.html
│   │       │   ├── community.html
│   │       │   ├── headers.html
│   │       │   ├── history.html
│   │       │   ├── history_tr.html
│   │       │   ├── profiling.html
│   │       │   ├── request.html
│   │       │   ├── request_variables.html
│   │       │   ├── settings.html
│   │       │   ├── signals.html
│   │       │   ├── sql.html
│   │       │   ├── sql_explain.html
│   │       │   ├── sql_profile.html
│   │       │   ├── sql_select.html
│   │       │   ├── staticfiles.html
│   │       │   ├── template_source.html
│   │       │   ├── templates.html
│   │       │   ├── timer.html
│   │       │   └── versions.html
│   │       └── redirect.html
│   ├── templatetags/
│   │   └── __init__.py
│   ├── toolbar.py
│   ├── urls.py
│   ├── utils.py
│   └── views.py
├── docs/
│   ├── Makefile
│   ├── architecture.rst
│   ├── changes.rst
│   ├── checks.rst
│   ├── commands.rst
│   ├── conf.py
│   ├── configuration.rst
│   ├── contributing.rst
│   ├── index.rst
│   ├── installation.rst
│   ├── make.bat
│   ├── panels.rst
│   ├── resources.rst
│   ├── spelling_wordlist.txt
│   └── tips.rst
├── example/
│   ├── README.rst
│   ├── __init__.py
│   ├── asgi.py
│   ├── async_/
│   │   ├── __init__.py
│   │   ├── settings.py
│   │   ├── urls.py
│   │   └── views.py
│   ├── manage.py
│   ├── screenshot.py
│   ├── settings.py
│   ├── static/
│   │   └── test.css
│   ├── templates/
│   │   ├── async_db.html
│   │   ├── bad_form.html
│   │   ├── cache.html
│   │   ├── htmx/
│   │   │   └── boost.html
│   │   ├── index.html
│   │   ├── jinja2/
│   │   │   └── index.jinja
│   │   ├── jquery/
│   │   │   └── index.html
│   │   ├── mootools/
│   │   │   └── index.html
│   │   ├── prototype/
│   │   │   └── index.html
│   │   └── turbo/
│   │       └── index.html
│   ├── test_views.py
│   ├── urls.py
│   ├── views.py
│   └── wsgi.py
├── pyproject.toml
├── setup.py
├── tests/
│   ├── __init__.py
│   ├── additional_static/
│   │   └── base.css
│   ├── base.py
│   ├── commands/
│   │   ├── __init__.py
│   │   └── test_debugsqlshell.py
│   ├── context_processors.py
│   ├── forms.py
│   ├── loaders.py
│   ├── middleware.py
│   ├── models.py
│   ├── panels/
│   │   ├── __init__.py
│   │   ├── test_alerts.py
│   │   ├── test_async_panel_compatibility.py
│   │   ├── test_cache.py
│   │   ├── test_custom.py
│   │   ├── test_history.py
│   │   ├── test_profiling.py
│   │   ├── test_redirects.py
│   │   ├── test_request.py
│   │   ├── test_settings.py
│   │   ├── test_sql.py
│   │   ├── test_staticfiles.py
│   │   ├── test_template.py
│   │   └── test_versions.py
│   ├── settings.py
│   ├── sync.py
│   ├── templates/
│   │   ├── ajax/
│   │   │   └── ajax.html
│   │   ├── base.html
│   │   ├── basic.html
│   │   ├── jinja2/
│   │   │   ├── base.html
│   │   │   └── basic.jinja
│   │   ├── registration/
│   │   │   └── login.html
│   │   ├── sql/
│   │   │   ├── flat.html
│   │   │   ├── included.html
│   │   │   └── nested.html
│   │   └── staticfiles/
│   │       ├── async_static.html
│   │       └── path.html
│   ├── test_apps.py
│   ├── test_checks.py
│   ├── test_csp_rendering.py
│   ├── test_decorators.py
│   ├── test_forms.py
│   ├── test_integration.py
│   ├── test_integration_async.py
│   ├── test_login_not_required.py
│   ├── test_middleware.py
│   ├── test_models.py
│   ├── test_sanitize.py
│   ├── test_settings.py
│   ├── test_store.py
│   ├── test_toolbar.py
│   ├── test_utils.py
│   ├── urls.py
│   ├── urls_invalid.py
│   ├── urls_use_package_urls.py
│   └── views.py
└── tox.ini
Download .txt
SYMBOL INDEX (826 symbols across 85 files)

FILE: debug_toolbar/_compat.py
  function login_not_required (line 7) | def login_not_required(view_func):
  function get_nonce (line 19) | def get_nonce(request):

FILE: debug_toolbar/_stubs.py
  class InspectStack (line 9) | class InspectStack(NamedTuple):
  class RenderContext (line 21) | class RenderContext(dj_template.context.RenderContext):
  class RequestContext (line 25) | class RequestContext(dj_template.RequestContext):
  class GetResponse (line 30) | class GetResponse(Protocol):
    method __call__ (line 31) | def __call__(self, request: HttpRequest) -> HttpResponse: ...

FILE: debug_toolbar/apps.py
  class DebugToolbarConfig (line 16) | class DebugToolbarConfig(AppConfig):
    method ready (line 20) | def ready(self):
    method import_models (line 29) | def import_models(self):
  function _manage_migrations_visibility (line 43) | def _manage_migrations_visibility(app_name):
  function check_template_config (line 58) | def check_template_config(config):
  function check_middleware (line 95) | def check_middleware(app_configs, **kwargs):
  function check_panel_configs (line 174) | def check_panel_configs(app_configs, **kwargs):
  function is_middleware_class (line 185) | def is_middleware_class(middleware_class, middleware_path):
  function check_panels (line 196) | def check_panels(app_configs, **kwargs):
  function js_mimetype_check (line 212) | def js_mimetype_check(app_configs, **kwargs):
  function debug_toolbar_installed_when_running_tests_check (line 243) | def debug_toolbar_installed_when_running_tests_check(app_configs, **kwar...
  function check_settings (line 291) | def check_settings(app_configs, **kwargs):

FILE: debug_toolbar/decorators.py
  function require_show_toolbar (line 10) | def require_show_toolbar(view):
  function render_with_toolbar_language (line 39) | def render_with_toolbar_language(view):

FILE: debug_toolbar/forms.py
  class SignedDataForm (line 10) | class SignedDataForm(forms.Form):
    method __init__ (line 30) | def __init__(self, *args, **kwargs):
    method clean_signed (line 36) | def clean_signed(self):
    method verified_data (line 45) | def verified_data(self):
    method sign (line 49) | def sign(cls, data):

FILE: debug_toolbar/management/commands/debugsqlshell.py
  class PrintQueryWrapper (line 20) | class PrintQueryWrapper(base_module.CursorDebugWrapper):
    method execute (line 21) | def execute(self, sql, params=()):

FILE: debug_toolbar/middleware.py
  function show_toolbar (line 29) | def show_toolbar(request: HttpRequest) -> bool:
  function show_toolbar_with_docker (line 44) | def show_toolbar_with_docker(request: HttpRequest) -> bool:
  function show_toolbar_func_or_path (line 76) | def show_toolbar_func_or_path() -> Callable:
  function get_show_toolbar (line 91) | def get_show_toolbar(async_mode) -> Callable:
  class DebugToolbarMiddleware (line 108) | class DebugToolbarMiddleware:
    method __init__ (line 117) | def __init__(self, get_response: GetResponse):
    method __call__ (line 128) | def __call__(self, request: HttpRequest) -> HttpResponse:
    method __acall__ (line 153) | async def __acall__(self, request: HttpRequest) -> HttpResponse:
    method _postprocess (line 181) | def _postprocess(
    method get_headers (line 217) | def get_headers(request: HttpRequest, panels: list[Panel]) -> dict[str...

FILE: debug_toolbar/migrations/0001_initial.py
  class Migration (line 4) | class Migration(migrations.Migration):

FILE: debug_toolbar/models.py
  class HistoryEntry (line 5) | class HistoryEntry(models.Model):
    class Meta (line 10) | class Meta:
    method __str__ (line 15) | def __str__(self):

FILE: debug_toolbar/panels/__init__.py
  class Panel (line 10) | class Panel:
    method __init__ (line 17) | def __init__(self, toolbar, get_response: GetResponse):
    method panel_id (line 25) | def panel_id(cls) -> str:
    method enabled (line 29) | def enabled(self) -> bool:
    method nav_title (line 61) | def nav_title(self):
    method nav_subtitle (line 68) | def nav_subtitle(self):
    method has_content (line 75) | def has_content(self):
    method is_historical (line 83) | def is_historical(self):
    method title (line 92) | def title(self):
    method template (line 101) | def template(self):
    method content (line 111) | def content(self):
    method scripts (line 123) | def scripts(self):
    method ready (line 136) | def ready(cls):
    method get_urls (line 148) | def get_urls(cls):
    method enable_instrumentation (line 156) | def enable_instrumentation(self):
    method disable_instrumentation (line 172) | def disable_instrumentation(self):
    method record_stats (line 184) | def record_stats(self, stats):
    method get_stats (line 199) | def get_stats(self):
    method record_server_timing (line 205) | def record_server_timing(self, key, title, value):
    method get_server_timing_stats (line 214) | def get_server_timing_stats(self):
    method process_request (line 222) | def process_request(self, request):
    method get_headers (line 233) | def get_headers(self, request):
    method generate_stats (line 259) | def generate_stats(self, request, response):
    method generate_server_timing (line 271) | def generate_server_timing(self, request, response):
    method load_stats_from_store (line 281) | def load_stats_from_store(self, data):
    method run_checks (line 291) | def run_checks(cls):

FILE: debug_toolbar/panels/alerts.py
  class FormParser (line 9) | class FormParser(HTMLParser):
    method __init__ (line 15) | def __init__(self):
    method handle_starttag (line 23) | def handle_starttag(self, tag, attrs):
    method handle_endtag (line 54) | def handle_endtag(self, tag):
  class AlertsPanel (line 60) | class AlertsPanel(Panel):
    method __init__ (line 83) | def __init__(self, *args, **kwargs):
    method nav_subtitle (line 88) | def nav_subtitle(self):
    method add_alert (line 95) | def add_alert(self, alert):
    method check_invalid_file_form_configuration (line 98) | def check_invalid_file_form_configuration(self, html_content):
    method generate_stats (line 143) | def generate_stats(self, request, response):

FILE: debug_toolbar/panels/cache.py
  function _monkey_patch_method (line 33) | def _monkey_patch_method(cache, name, alias):
  function _monkey_patch_cache (line 47) | def _monkey_patch_cache(cache, alias, panel):
  class CachePanel (line 54) | class CachePanel(Panel):
    method __init__ (line 65) | def __init__(self, *args, **kwargs):
    method current_instance (line 74) | def current_instance(cls):
    method ready (line 85) | def ready(cls):
    method _store_call_info (line 104) | def _store_call_info(
    method _record_call (line 140) | def _record_call(self, cache, alias, name, original_method, args, kwar...
    method nav_subtitle (line 172) | def nav_subtitle(self):
    method title (line 182) | def title(self):
    method enable_instrumentation (line 190) | def enable_instrumentation(self):
    method disable_instrumentation (line 203) | def disable_instrumentation(self):
    method initialized_caches (line 209) | def initialized_caches(self):
    method generate_stats (line 220) | def generate_stats(self, request, response):
    method generate_server_timing (line 233) | def generate_server_timing(self, request, response):

FILE: debug_toolbar/panels/community.py
  class CommunityPanel (line 6) | class CommunityPanel(Panel):

FILE: debug_toolbar/panels/headers.py
  class HeadersPanel (line 6) | class HeadersPanel(Panel):
    method process_request (line 37) | def process_request(self, request):
    method generate_stats (line 50) | def generate_stats(self, request, response):
  function is_http_header (line 55) | def is_http_header(wsgi_key):
  function unmangle (line 61) | def unmangle(wsgi_key):

FILE: debug_toolbar/panels/history/forms.py
  class HistoryStoreForm (line 4) | class HistoryStoreForm(forms.Form):

FILE: debug_toolbar/panels/history/panel.py
  class HistoryPanel (line 17) | class HistoryPanel(Panel):
    method get_headers (line 25) | def get_headers(self, request: HttpRequest) -> dict:
    method enabled (line 34) | def enabled(self) -> bool:
    method is_historical (line 40) | def is_historical(self) -> bool:
    method get_urls (line 45) | def get_urls(cls) -> list[URLPattern]:
    method nav_subtitle (line 52) | def nav_subtitle(self) -> str:
    method generate_stats (line 55) | def generate_stats(self, request: HttpRequest, response: HttpResponse)...
    method content (line 87) | def content(self) -> str:
    method scripts (line 118) | def scripts(self) -> list[str]:

FILE: debug_toolbar/panels/history/views.py
  function history_sidebar (line 14) | def history_sidebar(
  function history_refresh (line 48) | def history_refresh(

FILE: debug_toolbar/panels/profiling.py
  class FunctionCall (line 14) | class FunctionCall:
    method __init__ (line 15) | def __init__(
    method parent_classes (line 30) | def parent_classes(self):
    method background (line 33) | def background(self):
    method is_project_func (line 37) | def is_project_func(self):
    method func_std_string (line 57) | def func_std_string(self):  # match what old profile produced
    method subfuncs (line 89) | def subfuncs(self):
    method count (line 105) | def count(self):
    method tottime (line 108) | def tottime(self):
    method cumtime (line 111) | def cumtime(self):
    method tottime_per_call (line 115) | def tottime_per_call(self):
    method cumtime_per_call (line 123) | def cumtime_per_call(self):
    method indent (line 131) | def indent(self):
    method serialize (line 134) | def serialize(self):
  class ProfilingPanel (line 150) | class ProfilingPanel(Panel):
    method process_request (line 161) | def process_request(self, request):
    method add_node (line 165) | def add_node(self, func_list, func, max_depth, cum_time):
    method generate_stats (line 178) | def generate_stats(self, request, response):

FILE: debug_toolbar/panels/redirects.py
  class RedirectsPanel (line 10) | class RedirectsPanel(Panel):
    method _process_response (line 21) | def _process_response(self, response):
    method aprocess_request (line 31) | async def aprocess_request(self, request, response_coroutine):
    method process_request (line 40) | def process_request(self, request):
    method get_interception_response (line 46) | def get_interception_response(self, response, redirect_to):

FILE: debug_toolbar/panels/request.py
  class RequestPanel (line 9) | class RequestPanel(Panel):
    method nav_subtitle (line 19) | def nav_subtitle(self):
    method generate_stats (line 26) | def generate_stats(self, request, response):

FILE: debug_toolbar/panels/settings.py
  function safe_pformat (line 11) | def safe_pformat(obj):
  class SettingsPanel (line 18) | class SettingsPanel(Panel):
    method title (line 29) | def title(self):
    method generate_stats (line 34) | def generate_stats(self, request, response):

FILE: debug_toolbar/panels/signals.py
  class SignalsPanel (line 28) | class SignalsPanel(Panel):
    method nav_subtitle (line 51) | def nav_subtitle(self):
    method signals (line 72) | def signals(self):
    method generate_stats (line 79) | def generate_stats(self, request, response):

FILE: debug_toolbar/panels/sql/forms.py
  class SQLSelectForm (line 13) | class SQLSelectForm(forms.Form):
    method clean_raw_sql (line 24) | def clean_raw_sql(self):
    method clean_params (line 32) | def clean_params(self):
    method clean_alias (line 40) | def clean_alias(self):
    method clean (line 48) | def clean(self):
    method select (line 72) | def select(self):
    method explain (line 82) | def explain(self):
    method profile (line 101) | def profile(self):
    method reformat_sql (line 127) | def reformat_sql(self):
    method connection (line 131) | def connection(self):
    method cursor (line 135) | def cursor(self):

FILE: debug_toolbar/panels/sql/panel.py
  function get_isolation_level_display (line 25) | def get_isolation_level_display(vendor, level):
  function get_transaction_status_display (line 57) | def get_transaction_status_display(vendor, level):
  function _similar_query_key (line 85) | def _similar_query_key(query):
  function _duplicate_query_key (line 89) | def _duplicate_query_key(query):
  function _process_query_groups (line 97) | def _process_query_groups(query_groups, databases, colors, name):
  class SQLPanel (line 112) | class SQLPanel(Panel):
    method __init__ (line 120) | def __init__(self, *args, **kwargs):
    method new_transaction_id (line 128) | def new_transaction_id(self, alias):
    method current_transaction_id (line 136) | def current_transaction_id(self, alias):
    method record (line 149) | def record(self, **kwargs):
    method nav_subtitle (line 168) | def nav_subtitle(self):
    method title (line 181) | def title(self):
    method get_urls (line 192) | def get_urls(cls):
    method aenable_instrumentation (line 199) | async def aenable_instrumentation(self):
    method enable_instrumentation (line 206) | def enable_instrumentation(self):
    method disable_instrumentation (line 212) | def disable_instrumentation(self):
    method generate_stats (line 216) | def generate_stats(self, request, response):
    method generate_server_timing (line 311) | def generate_server_timing(self, request, response):
    method content (line 320) | def content(self):

FILE: debug_toolbar/panels/sql/tracking.py
  class SQLQueryTriggered (line 38) | class SQLQueryTriggered(Exception):
  function wrap_cursor (line 42) | def wrap_cursor(connection):
  function patch_cursor_wrapper_with_mixin (line 90) | def patch_cursor_wrapper_with_mixin(base_wrapper, mixin):
  class DjDTCursorWrapperMixin (line 97) | class DjDTCursorWrapperMixin:
    method __init__ (line 98) | def __init__(self, cursor, db, logger):
  class ExceptionCursorMixin (line 104) | class ExceptionCursorMixin(DjDTCursorWrapperMixin):
    method __getattr__ (line 110) | def __getattr__(self, attr):
  class NormalCursorMixin (line 114) | class NormalCursorMixin(DjDTCursorWrapperMixin):
    method _decode (line 119) | def _decode(self, param):
    method _last_executed_query (line 140) | def _last_executed_query(self, sql, params):
    method _record (line 153) | def _record(self, method, sql, params):
    method callproc (line 239) | def callproc(self, procname, params=None):
    method execute (line 242) | def execute(self, sql, params=None):
    method executemany (line 245) | def executemany(self, sql, param_list):

FILE: debug_toolbar/panels/sql/utils.py
  class ElideSelectListsFilter (line 13) | class ElideSelectListsFilter:
    method process (line 17) | def process(self, stream):
    method elide_until_from (line 28) | def elide_until_from(stream):
  class BoldKeywordFilter (line 53) | class BoldKeywordFilter:
    method process (line 56) | def process(self, stmt):
  function escaped_value (line 73) | def escaped_value(token):
  class EscapedStringSerializer (line 81) | class EscapedStringSerializer:
    method process (line 86) | def process(stmt):
  function is_select_query (line 90) | def is_select_query(sql):
  function reformat_sql (line 95) | def reformat_sql(sql, *, with_toggle=False):
  function parse_sql (line 106) | def parse_sql(sql, *, simplify=False):
  function get_filter_stack (line 112) | def get_filter_stack(*, simplify):
  function clear_caches (line 128) | def clear_caches(*, setting, **kwargs):
  function contrasting_color_generator (line 134) | def contrasting_color_generator():

FILE: debug_toolbar/panels/sql/views.py
  function get_signed_data (line 12) | def get_signed_data(request):
  function sql_select (line 25) | def sql_select(request):
  function sql_explain (line 51) | def sql_explain(request):
  function sql_profile (line 77) | def sql_profile(request):

FILE: debug_toolbar/panels/staticfiles.py
  class URLMixin (line 18) | class URLMixin:
    method url (line 19) | def url(self, path, *args, **kwargs):
  class StaticFilesPanel (line 35) | class StaticFilesPanel(panels.Panel):
    method title (line 45) | def title(self):
    method __init__ (line 52) | def __init__(self, *args, **kwargs):
    method ready (line 59) | def ready(cls):
    method _store_static_files_signal_handler (line 64) | def _store_static_files_signal_handler(self, sender, staticfile, **kwa...
    method enable_instrumentation (line 73) | def enable_instrumentation(self):
    method disable_instrumentation (line 77) | def disable_instrumentation(self):
    method nav_subtitle (line 84) | def nav_subtitle(self):
    method generate_stats (line 90) | def generate_stats(self, request, response):
    method get_staticfiles_finders (line 102) | def get_staticfiles_finders(self):
    method get_staticfiles_dirs (line 127) | def get_staticfiles_dirs(self):
    method get_staticfiles_apps (line 137) | def get_staticfiles_apps(self):

FILE: debug_toolbar/panels/templates/jinja2.py
  function patch_jinja_render (line 8) | def patch_jinja_render():

FILE: debug_toolbar/panels/templates/panel.py
  function _request_context_bind_template (line 40) | def _request_context_bind_template(self, template):
  class TemplatesPanel (line 67) | class TemplatesPanel(Panel):
    method __init__ (line 74) | def __init__(self, *args, **kwargs):
    method _store_template_info (line 81) | def _store_template_info(self, sender, **kwargs):
    method title (line 107) | def title(self):
    method nav_subtitle (line 114) | def nav_subtitle(self):
    method get_urls (line 123) | def get_urls(cls):
    method enable_instrumentation (line 126) | def enable_instrumentation(self):
    method disable_instrumentation (line 129) | def disable_instrumentation(self):
    method process_context_list (line 132) | def process_context_list(self, context_layers):
    method generate_stats (line 189) | def generate_stats(self, request, response):

FILE: debug_toolbar/panels/templates/views.py
  function template_source (line 15) | def template_source(request):

FILE: debug_toolbar/panels/timer.py
  class TimerPanel (line 15) | class TimerPanel(Panel):
    method nav_subtitle (line 22) | def nav_subtitle(self):
    method content (line 43) | def content(self):
    method scripts (line 58) | def scripts(self):
    method process_request (line 63) | def process_request(self, request):
    method serialize_rusage (line 69) | def serialize_rusage(self, data):
    method generate_stats (line 80) | def generate_stats(self, request, response):
    method generate_server_timing (line 114) | def generate_server_timing(self, request, response):
    method _elapsed_ru (line 125) | def _elapsed_ru(start, end, name):

FILE: debug_toolbar/panels/versions.py
  class VersionsPanel (line 10) | class VersionsPanel(Panel):
    method nav_subtitle (line 18) | def nav_subtitle(self):
    method generate_stats (line 25) | def generate_stats(self, request, response):
    method gen_app_versions (line 39) | def gen_app_versions(self):
    method get_app_version (line 47) | def get_app_version(self, app):
    method get_version_from_app (line 55) | def get_version_from_app(self, app):

FILE: debug_toolbar/sanitize.py
  function force_str (line 4) | def force_str(s, *args, **kwargs):

FILE: debug_toolbar/settings.py
  function _is_running_tests (line 11) | def _is_running_tests():
  function get_config (line 64) | def get_config():
  function get_panels (line 91) | def get_panels():
  function update_toolbar_config (line 109) | def update_toolbar_config(*, setting, **kwargs):

FILE: debug_toolbar/static/debug_toolbar/js/history.js
  function difference (line 5) | function difference(setA, setB) {
  function pluckData (line 16) | function pluckData(nodes, key) {
  function refreshHistory (line 20) | function refreshHistory() {
  function switchHistory (line 74) | function switchHistory(newRequestId) {

FILE: debug_toolbar/static/debug_toolbar/js/timer.js
  function insertBrowserTiming (line 3) | function insertBrowserTiming() {

FILE: debug_toolbar/static/debug_toolbar/js/toolbar.js
  function onKeyDown (line 3) | function onKeyDown(event) {
  function getDebugElement (line 9) | function getDebugElement() {
  method init (line 21) | init() {
  method hidePanels (line 241) | hidePanels() {
  method ensureHandleVisibility (line 251) | ensureHandleVisibility() {
  method hideToolbar (line 260) | hideToolbar() {
  method hideOneLevel (line 273) | hideOneLevel() {
  method showToolbar (line 286) | showToolbar() {
  method updateOnAjax (line 294) | updateOnAjax() {
  method get (line 351) | get(key) {
  method set (line 366) | set(key, value, options = {}) {

FILE: debug_toolbar/static/debug_toolbar/js/utils.js
  method on (line 2) | on(root, eventName, selector, fn) {
  method onPanelRender (line 11) | onPanelRender(root, panelId, fn) {
  method show (line 26) | show(element) {
  method hide (line 29) | hide(element) {
  method toggle (line 32) | toggle(element, value) {
  method visible (line 39) | visible(element) {
  method executeScripts (line 42) | executeScripts(scripts) {
  method applyStyles (line 51) | applyStyles(container) {
  function ajax (line 73) | function ajax(url, init) {
  function ajaxForm (line 99) | function ajaxForm(element) {
  function replaceToolbarState (line 112) | function replaceToolbarState(newRequestId, data) {
  function debounce (line 126) | function debounce(func, delay) {

FILE: debug_toolbar/store.py
  class DebugToolbarJSONEncoder (line 16) | class DebugToolbarJSONEncoder(DjangoJSONEncoder):
    method default (line 17) | def default(self, o):
  function serialize (line 24) | def serialize(data: Any) -> str:
  function deserialize (line 31) | def deserialize(data: str) -> Any:
  class BaseStore (line 35) | class BaseStore:
    method request_ids (line 37) | def request_ids(cls) -> Iterable:
    method exists (line 42) | def exists(cls, request_id: str) -> bool:
    method set (line 47) | def set(cls, request_id: str):
    method clear (line 52) | def clear(cls):
    method delete (line 57) | def delete(cls, request_id: str):
    method save_panel (line 62) | def save_panel(cls, request_id: str, panel_id: str, data: Any = None):
    method panel (line 67) | def panel(cls, request_id: str, panel_id: str) -> Any:
  class MemoryStore (line 72) | class MemoryStore(BaseStore):
    method request_ids (line 80) | def request_ids(cls) -> Iterable:
    method exists (line 85) | def exists(cls, request_id: str) -> bool:
    method set (line 90) | def set(cls, request_id: str):
    method clear (line 101) | def clear(cls):
    method delete (line 107) | def delete(cls, request_id: str):
    method save_panel (line 115) | def save_panel(cls, request_id: str, panel_id: str, data: Any = None):
    method panel (line 121) | def panel(cls, request_id: str, panel_id: str) -> Any:
    method panels (line 131) | def panels(cls, request_id: str) -> Any:
  class DatabaseStore (line 141) | class DatabaseStore(BaseStore):
    method _cleanup_old_entries (line 143) | def _cleanup_old_entries(cls):
    method request_ids (line 156) | def request_ids(cls):
    method exists (line 164) | def exists(cls, request_id: str) -> bool:
    method set (line 169) | def set(cls, request_id: str):
    method clear (line 180) | def clear(cls):
    method delete (line 185) | def delete(cls, request_id: str):
    method save_panel (line 190) | def save_panel(cls, request_id: str, panel_id: str, data: Any = None):
    method panel (line 200) | def panel(cls, request_id: str, panel_id: str) -> Any:
    method panels (line 212) | def panels(cls, request_id: str) -> Any:
  function get_store (line 222) | def get_store() -> BaseStore:

FILE: debug_toolbar/toolbar.py
  class DebugToolbar (line 35) | class DebugToolbar:
    method __init__ (line 40) | def __init__(
    method panels (line 65) | def panels(self) -> list[Panel]:
    method enabled_panels (line 72) | def enabled_panels(self) -> list[Panel]:
    method csp_nonce (line 79) | def csp_nonce(self) -> str | None:
    method get_panel_by_id (line 85) | def get_panel_by_id(self, panel_id: str) -> Panel:
    method render_toolbar (line 93) | def render_toolbar(self) -> str:
    method should_render_panels (line 114) | def should_render_panels(self) -> bool:
    method init_store (line 123) | def init_store(self):
    method fetch (line 134) | def fetch(
    method get_panel_classes (line 146) | def get_panel_classes(cls) -> list[type[Panel]] | None:
    method get_urls (line 158) | def get_urls(cls) -> list[URLPattern | URLResolver]:
    method is_toolbar_request (line 174) | def is_toolbar_request(cls, request: HttpRequest) -> bool:
    method get_observe_request (line 193) | def get_observe_request() -> Callable:
  function observe_request (line 203) | def observe_request(request: HttpRequest) -> bool:
  function from_store_get_response (line 210) | def from_store_get_response(request: HttpRequest | None) -> None:
  class StoredDebugToolbar (line 217) | class StoredDebugToolbar(DebugToolbar):
    method __init__ (line 218) | def __init__(
    method from_store (line 233) | def from_store(
  function debug_toolbar_urls (line 251) | def debug_toolbar_urls(prefix: str = "__debug__") -> list[URLPattern | U...

FILE: debug_toolbar/utils.py
  function _is_excluded_frame (line 25) | def _is_excluded_frame(frame: Any, excluded_modules: Sequence[str] | Non...
  function _stack_trace_deprecation_warning (line 38) | def _stack_trace_deprecation_warning() -> None:
  function tidy_stacktrace (line 47) | def tidy_stacktrace(stack: list[stubs.InspectStack]) -> stubs.TidyStackT...
  function render_stacktrace (line 72) | def render_stacktrace(trace: stubs.TidyStackTrace) -> SafeString:
  function get_template_info (line 107) | def get_template_info() -> dict[str, Any] | None:
  function get_template_context (line 135) | def get_template_context(
  function get_template_source_from_exception_info (line 152) | def get_template_source_from_exception_info(
  function get_name_from_obj (line 169) | def get_name_from_obj(obj: Any) -> str:
  function getframeinfo (line 181) | def getframeinfo(frame: Any, context: int = 1) -> inspect.Traceback:
  function sanitize_and_sort_request_vars (line 220) | def sanitize_and_sort_request_vars(
  function _get_sorted_keys (line 242) | def _get_sorted_keys(variable):
  function _process_query_dict (line 250) | def _process_query_dict(query_dict, keys):
  function _process_dict (line 261) | def _process_dict(dictionary, keys):
  function get_stack (line 266) | def get_stack(context=1) -> list[stubs.InspectStack]:
  function _stack_frames (line 285) | def _stack_frames(*, skip=0):
  class _StackTraceRecorder (line 296) | class _StackTraceRecorder:
    method __init__ (line 299) | def __init__(self):
    method get_source_file (line 302) | def get_source_file(self, frame):
    method get_stack_trace (line 321) | def get_stack_trace(
  function get_stack_trace (line 358) | def get_stack_trace(*, skip=0):
  function clear_stack_trace_caches (line 388) | def clear_stack_trace_caches():
  function is_processable_html_response (line 396) | def is_processable_html_response(response):
  function get_csp_nonce (line 406) | def get_csp_nonce(request) -> str | None:

FILE: debug_toolbar/views.py
  function render_panel (line 14) | def render_panel(request: HttpRequest) -> JsonResponse:

FILE: docs/conf.py
  function setup (line 72) | def setup(app):

FILE: example/async_/views.py
  function async_db_view (line 5) | async def async_db_view(request):

FILE: example/screenshot.py
  function parse_args (line 14) | def parse_args():
  function create_webdriver_options (line 24) | def create_webdriver_options(browser, headless):
  function create_webdriver (line 32) | def create_webdriver(browser, headless):
  function example_server (line 37) | def example_server():
  function set_viewport_size (line 44) | def set_viewport_size(selenium, width, height):
  function submit_form (line 55) | def submit_form(selenium, data):
  function main (line 64) | def main():

FILE: example/test_views.py
  class ViewTestCase (line 9) | class ViewTestCase(TestCase):
    method test_index (line 10) | def test_index(self):

FILE: example/views.py
  function increment (line 10) | def increment(request):
  function jinja2_view (line 19) | def jinja2_view(request):
  function async_home (line 23) | async def async_home(request):
  function async_db (line 27) | async def async_db(request):
  function async_db_concurrent (line 35) | async def async_db_concurrent(request):
  function cache_view (line 46) | def cache_view(request):

FILE: tests/base.py
  class ToolbarTestClient (line 22) | class ToolbarTestClient(Client):
    method request (line 23) | def request(self, **request):
  class AsyncToolbarTestClient (line 42) | class AsyncToolbarTestClient(AsyncClient):
    method request (line 43) | async def request(self, **request):
  class BaseMixin (line 67) | class BaseMixin:
    method setUp (line 75) | def setUp(self):
    method tearDown (line 92) | def tearDown(self):
    method get_response (line 97) | def get_response(self, request):
    method get_response_async (line 100) | async def get_response_async(self, request):
    method assertValidHTML (line 103) | def assertValidHTML(self, content):
    method reload_stats (line 114) | def reload_stats(self):
  class BaseTestCase (line 119) | class BaseTestCase(BaseMixin, TestCase):
  class BaseMultiDBTestCase (line 123) | class BaseMultiDBTestCase(BaseMixin, TransactionTestCase):
  class IntegrationTestCase (line 127) | class IntegrationTestCase(TestCase):
    method setUp (line 130) | def setUp(self):

FILE: tests/commands/test_debugsqlshell.py
  class DebugSQLShellTestCase (line 17) | class DebugSQLShellTestCase(TestCase):
    method setUp (line 18) | def setUp(self):
    method tearDown (line 27) | def tearDown(self):
    method test_command (line 30) | def test_command(self):

FILE: tests/context_processors.py
  function broken (line 1) | def broken(request):

FILE: tests/forms.py
  class TemplateReprForm (line 5) | class TemplateReprForm(forms.Form):
    method __repr__ (line 8) | def __repr__(self):

FILE: tests/loaders.py
  class LoaderWithSQL (line 5) | class LoaderWithSQL(Loader):
    method get_template (line 6) | def get_template(self, *args, **kwargs):

FILE: tests/middleware.py
  class UseCacheAfterToolbar (line 4) | class UseCacheAfterToolbar:
    method __init__ (line 10) | def __init__(self, get_response):
    method __call__ (line 13) | def __call__(self, request):

FILE: tests/models.py
  class NonAsciiRepr (line 6) | class NonAsciiRepr:
    method __repr__ (line 7) | def __repr__(self):
  class Binary (line 11) | class Binary(models.Model):
    method __str__ (line 14) | def __str__(self):
  class PostgresJSON (line 18) | class PostgresJSON(models.Model):
    method __str__ (line 21) | def __str__(self):
  class Location (line 28) | class Location(gismodels.Model):
    method __str__ (line 31) | def __str__(self):

FILE: tests/panels/test_alerts.py
  class AlertsPanelTestCase (line 7) | class AlertsPanelTestCase(BaseTestCase):
    method test_alert_warning_display (line 10) | def test_alert_warning_display(self):
    method test_file_form_without_enctype_multipart_form_data (line 21) | def test_file_form_without_enctype_multipart_form_data(self):
    method test_file_form_no_id_without_enctype_multipart_form_data (line 35) | def test_file_form_no_id_without_enctype_multipart_form_data(self):
    method test_file_form_with_enctype_multipart_form_data (line 51) | def test_file_form_with_enctype_multipart_form_data(self):
    method test_file_form_with_enctype_multipart_form_data_in_button (line 59) | def test_file_form_with_enctype_multipart_form_data_in_button(self):
    method test_referenced_file_input_without_enctype_multipart_form_data (line 68) | def test_referenced_file_input_without_enctype_multipart_form_data(self):
    method test_referenced_file_input_with_enctype_multipart_form_data (line 80) | def test_referenced_file_input_with_enctype_multipart_form_data(self):
    method test_integration_file_form_without_enctype_multipart_form_data (line 88) | def test_integration_file_form_without_enctype_multipart_form_data(self):
    method test_streaming_response (line 103) | def test_streaming_response(self):

FILE: tests/panels/test_async_panel_compatibility.py
  class MockAsyncPanel (line 8) | class MockAsyncPanel(Panel):
  class MockSyncPanel (line 12) | class MockSyncPanel(Panel):
  class PanelAsyncCompatibilityTestCase (line 16) | class PanelAsyncCompatibilityTestCase(TestCase):
    method setUp (line 17) | def setUp(self):
    method test_panels_with_asgi (line 21) | def test_panels_with_asgi(self):
    method test_panels_with_wsgi (line 31) | def test_panels_with_wsgi(self):

FILE: tests/panels/test_cache.py
  class CachePanelTestCase (line 8) | class CachePanelTestCase(BaseTestCase):
    method test_recording (line 11) | def test_recording(self):
    method test_recording_caches (line 23) | def test_recording_caches(self):
    method test_hits_and_misses (line 31) | def test_hits_and_misses(self):
    method test_get_or_set_value (line 48) | def test_get_or_set_value(self):
    method test_get_or_set_does_not_override_existing_value (line 82) | def test_get_or_set_does_not_override_existing_value(self):
    method test_insert_content (line 117) | def test_insert_content(self):
    method test_generate_server_timing (line 135) | def test_generate_server_timing(self):
    method test_backend_alias_is_recorded (line 158) | def test_backend_alias_is_recorded(self):

FILE: tests/panels/test_custom.py
  class CustomPanel (line 8) | class CustomPanel(Panel):
    method title (line 9) | def title(self):
  class CustomPanelTestCase (line 16) | class CustomPanelTestCase(IntegrationTestCase):
    method test_escapes_panel_title (line 17) | def test_escapes_panel_title(self):

FILE: tests/panels/test_history.py
  class HistoryPanelTestCase (line 17) | class HistoryPanelTestCase(BaseTestCase):
    method test_disabled (line 20) | def test_disabled(self):
    method test_post (line 26) | def test_post(self):
    method test_post_json (line 33) | def test_post_json(self):
    method test_urls (line 51) | def test_urls(self):
  class HistoryViewsTestCase (line 71) | class HistoryViewsTestCase(IntegrationTestCase):
    method test_history_panel_integration_content (line 88) | def test_history_panel_integration_content(self):
    method test_history_sidebar_invalid (line 104) | def test_history_sidebar_invalid(self):
    method test_history_headers (line 108) | def test_history_headers(self):
    method test_history_headers_unobserved (line 115) | def test_history_headers_unobserved(self):
    method test_history_sidebar (line 127) | def test_history_sidebar(self):
    method test_history_sidebar_includes_history (line 139) | def test_history_sidebar_includes_history(self):
    method test_history_sidebar_expired_request_id (line 157) | def test_history_sidebar_expired_request_id(self):
    method test_history_refresh (line 188) | def test_history_refresh(self):

FILE: tests/panels/test_profiling.py
  class ProfilingPanelTestCase (line 18) | class ProfilingPanelTestCase(BaseTestCase):
    method test_regular_view (line 21) | def test_regular_view(self):
    method test_insert_content (line 28) | def test_insert_content(self):
    method test_cum_time_threshold (line 48) | def test_cum_time_threshold(self):
    method test_listcomp_escaped (line 65) | def test_listcomp_escaped(self):
    method test_generate_stats_no_profiler (line 73) | def test_generate_stats_no_profiler(self):
    method test_generate_stats_no_root_func (line 80) | def test_generate_stats_no_root_func(self):
  class ProfilingPanelIntegrationTestCase (line 95) | class ProfilingPanelIntegrationTestCase(IntegrationTestCase):
    method test_view_executed_once (line 96) | def test_view_executed_once(self):

FILE: tests/panels/test_redirects.py
  class RedirectsPanelTestCase (line 12) | class RedirectsPanelTestCase(BaseTestCase):
    method test_regular_response (line 15) | def test_regular_response(self):
    method test_not_a_redirect (line 21) | def test_not_a_redirect(self):
    method test_redirect (line 27) | def test_redirect(self):
    method test_redirect_with_broken_context_processor (line 36) | def test_redirect_with_broken_context_processor(self):
    method test_unknown_status_code (line 51) | def test_unknown_status_code(self):
    method test_unknown_status_code_with_reason (line 58) | def test_unknown_status_code_with_reason(self):
    method test_async_compatibility (line 65) | async def test_async_compatibility(self):
    method test_original_response_preserved (line 79) | def test_original_response_preserved(self):
    method test_deprecation_warning (line 92) | def test_deprecation_warning(self):

FILE: tests/panels/test_request.py
  class RequestPanelTestCase (line 11) | class RequestPanelTestCase(BaseTestCase):
    method test_non_ascii_session (line 14) | def test_non_ascii_session(self):
    method test_object_with_non_ascii_repr_in_request_params (line 20) | def test_object_with_non_ascii_repr_in_request_params(self):
    method test_insert_content (line 26) | def test_insert_content(self):
    method test_query_dict_for_request_in_method_get (line 41) | def test_query_dict_for_request_in_method_get(self):
    method test_dict_for_request_in_method_get (line 54) | def test_dict_for_request_in_method_get(self):
    method test_query_dict_for_request_in_method_post (line 67) | def test_query_dict_for_request_in_method_post(self):
    method test_dict_for_request_in_method_post (line 80) | def test_dict_for_request_in_method_post(self):
    method test_list_for_request_in_method_post (line 93) | def test_list_for_request_in_method_post(self):
    method test_namespaced_url (line 106) | def test_namespaced_url(self):
    method test_session_list_sorted_or_not (line 113) | def test_session_list_sorted_or_not(self):
    method test_sensitive_post_data_sanitized (line 142) | def test_sensitive_post_data_sanitized(self):
    method test_sensitive_get_data_sanitized (line 156) | def test_sensitive_get_data_sanitized(self):
    method test_sensitive_cookie_data_sanitized (line 170) | def test_sensitive_cookie_data_sanitized(self):
    method test_sensitive_session_data_sanitized (line 184) | def test_sensitive_session_data_sanitized(self):
    method test_querydict_sanitized (line 198) | def test_querydict_sanitized(self):

FILE: tests/panels/test_settings.py
  class SettingsPanelTestCase (line 10) | class SettingsPanelTestCase(BaseTestCase):
    method test_panel_recording (line 13) | def test_panel_recording(self):
  class SettingsIntegrationTestCase (line 26) | class SettingsIntegrationTestCase(IntegrationTestCase):
    method test_panel_title (line 27) | def test_panel_title(self):

FILE: tests/panels/test_sql.py
  function sql_call (line 32) | def sql_call(*, use_iterator=False):
  function sql_call_toolbar_model (line 39) | def sql_call_toolbar_model():
  function async_sql_call_toolbar_model (line 45) | async def async_sql_call_toolbar_model():
  function async_sql_call (line 51) | async def async_sql_call(*, use_iterator=False):
  function concurrent_async_sql_call (line 58) | async def concurrent_async_sql_call(*, use_iterator=False):
  function patch_tracking_ddt_models (line 65) | def patch_tracking_ddt_models():
  class SQLPanelTestCase (line 80) | class SQLPanelTestCase(BaseTestCase):
    method test_disabled (line 83) | def test_disabled(self):
    method test_recording (line 89) | def test_recording(self):
    method test_assert_num_queries_works (line 105) | def test_assert_num_queries_works(self):
    method test_recording_async (line 116) | async def test_recording_async(self):
    method test_recording_concurrent_async (line 132) | async def test_recording_concurrent_async(self):
    method test_toolbar_model_query_is_tracked (line 154) | def test_toolbar_model_query_is_tracked(self):
    method test_toolbar_model_query_is_tracked_async (line 175) | async def test_toolbar_model_query_is_tracked_async(self):
    method test_toolbar_model_query_is_not_tracked (line 196) | def test_toolbar_model_query_is_not_tracked(self):
    method test_toolbar_model_query_is_not_tracked_async (line 214) | async def test_toolbar_model_query_is_not_tracked_async(self):
    method test_recording_chunked_cursor (line 229) | def test_recording_chunked_cursor(self):
    method test_cursor_wrapper_singleton (line 241) | def test_cursor_wrapper_singleton(self, mock_patch_cursor_wrapper):
    method test_chunked_cursor_wrapper_singleton (line 257) | def test_chunked_cursor_wrapper_singleton(self, mock_patch_cursor_wrap...
    method test_cursor_wrapper_async (line 274) | async def test_cursor_wrapper_async(self, mock_patch_cursor_wrapper):
    method test_cursor_wrapper_asyncio_ctx (line 290) | async def test_cursor_wrapper_asyncio_ctx(self, mock_patch_cursor_wrap...
    method test_generate_server_timing (line 322) | def test_generate_server_timing(self):
    method test_non_ascii_query (line 341) | def test_non_ascii_query(self):
    method test_bytes_query (line 365) | def test_bytes_query(self):
    method test_param_conversion (line 373) | def test_param_conversion(self):
    method test_json_param_conversion (line 425) | def test_json_param_conversion(self):
    method test_tuple_param_conversion (line 444) | def test_tuple_param_conversion(self):
    method test_binary_param_force_text (line 464) | def test_binary_param_force_text(self):
    method test_raw_query_param_conversion (line 484) | def test_raw_query_param_conversion(self):
    method test_insert_content (line 545) | def test_insert_content(self):
    method test_insert_locals (line 559) | def test_insert_locals(self):
    method test_not_insert_locals (line 574) | def test_not_insert_locals(self):
    method test_erroneous_query (line 586) | def test_erroneous_query(self):
    method test_execute_with_psycopg_composed_sql (line 598) | def test_execute_with_psycopg_composed_sql(self):
    method test_disable_stacktraces (line 623) | def test_disable_stacktraces(self):
    method test_regression_infinite_recursion (line 649) | def test_regression_infinite_recursion(self):
    method test_prettify_sql (line 670) | def test_prettify_sql(self):
    method test_simplification (line 715) | def test_simplification(self):
    method test_top_level_simplification (line 732) | def test_top_level_simplification(self):
    method test_flat_template_information (line 775) | def test_flat_template_information(self):
    method test_nested_template_information (line 797) | def test_nested_template_information(self):
    method test_similar_and_duplicate_grouping (line 816) | def test_similar_and_duplicate_grouping(self):
    method test_explain_with_union (line 865) | def test_explain_with_union(self):
  class SQLPanelMultiDBTestCase (line 873) | class SQLPanelMultiDBTestCase(BaseMultiDBTestCase):
    method test_aliases (line 876) | def test_aliases(self):
    method test_transaction_status (line 893) | def test_transaction_status(self):

FILE: tests/panels/test_staticfiles.py
  class StaticFilesPanelTestCase (line 13) | class StaticFilesPanelTestCase(BaseTestCase):
    method test_default_case (line 16) | def test_default_case(self):
    method test_store_staticfiles_with_async_context (line 36) | async def test_store_staticfiles_with_async_context(self):
    method test_insert_content (line 47) | def test_insert_content(self):
    method test_path (line 66) | def test_path(self):
    method test_storage_state_preservation (line 92) | def test_storage_state_preservation(self):
    method test_context_variable_lifecycle (line 103) | def test_context_variable_lifecycle(self):
    method test_multiple_initialization (line 121) | def test_multiple_initialization(self):

FILE: tests/panels/test_template.py
  class TemplatesPanelTestCase (line 17) | class TemplatesPanelTestCase(BaseTestCase):
    method setUp (line 20) | def setUp(self):
    method tearDown (line 25) | def tearDown(self):
    method test_queryset_hook (line 29) | def test_queryset_hook(self):
    method test_template_repr (line 53) | def test_template_repr(self):
    method test_object_with_non_ascii_repr_in_context (line 68) | def test_object_with_non_ascii_repr_in_context(self):
    method test_insert_content (line 76) | def test_insert_content(self):
    method test_custom_context_processor (line 93) | def test_custom_context_processor(self):
    method test_disabled (line 103) | def test_disabled(self):
    method test_empty_context (line 109) | def test_empty_context(self):
    method test_lazyobject (line 122) | def test_lazyobject(self):
    method test_lazyobject_eval (line 130) | def test_lazyobject_eval(self):
    method test_template_source (line 142) | def test_template_source(self):
  class JinjaTemplateTestCase (line 160) | class JinjaTemplateTestCase(IntegrationTestCase):
    method test_django_jinja2 (line 161) | def test_django_jinja2(self):
    method test_django_jinja2_parent_template_instrumented (line 170) | def test_django_jinja2_parent_template_instrumented(self):
  function context_processor (line 181) | def context_processor(request):

FILE: tests/panels/test_versions.py
  class VersionsPanelTestCase (line 12) | class VersionsPanelTestCase(BaseTestCase):
    method test_app_version_from_get_version_fn (line 15) | def test_app_version_from_get_version_fn(self):
    method test_incompatible_app_version_fn (line 22) | def test_incompatible_app_version_fn(self):
    method test_app_version_from_VERSION (line 32) | def test_app_version_from_VERSION(self):
    method test_app_version_from_underscore_version (line 38) | def test_app_version_from_underscore_version(self):

FILE: tests/sync.py
  class DatabaseSyncToAsync (line 9) | class DatabaseSyncToAsync(SyncToAsync):
    method thread_handler (line 14) | def thread_handler(self, loop, *args, **kwargs):

FILE: tests/test_apps.py
  class AppsTestCase (line 9) | class AppsTestCase(SimpleTestCase):
    method test_migrations_are_visible (line 16) | def test_migrations_are_visible(self, mocked_migration_modules):
    method test_migrations_are_hidden (line 24) | def test_migrations_are_hidden(self, mocked_migration_modules):
    method test_models_are_visible (line 35) | def test_models_are_visible(self):
    method test_models_are_hidden (line 43) | def test_models_are_hidden(self):

FILE: tests/test_checks.py
  class ChecksTestCase (line 10) | class ChecksTestCase(SimpleTestCase):
    method test_check_good_configuration (line 20) | def test_check_good_configuration(self):
    method test_check_missing_middleware_error (line 31) | def test_check_missing_middleware_error(self):
    method test_check_gzip_middleware_error (line 55) | def test_check_gzip_middleware_error(self):
    method test_check_middleware_classes_error (line 81) | def test_check_middleware_classes_error(self):
    method test_panels_is_empty (line 93) | def test_panels_is_empty(self):
    method test_check_w006_invalid (line 126) | def test_check_w006_invalid(self):
    method test_check_w006_valid (line 180) | def test_check_w006_valid(self):
    method test_check_w006_valid_nested_loaders (line 209) | def test_check_w006_valid_nested_loaders(self):
    method test_check_w007_valid (line 213) | def test_check_w007_valid(self, mocked_guess_type):
    method test_check_w007_invalid (line 220) | def test_check_w007_invalid(self, mocked_guess_type):
    method test_debug_toolbar_installed_when_running_tests (line 243) | def test_debug_toolbar_installed_when_running_tests(self, reverse):
    method test_observe_request_callback_specified (line 313) | def test_observe_request_callback_specified(self):

FILE: tests/test_csp_rendering.py
  function get_namespaces (line 42) | def get_namespaces(element):
  class CspRenderingTestCase (line 53) | class CspRenderingTestCase(IntegrationTestCase):
    method setUp (line 56) | def setUp(self):
    method _fail_if_missing (line 60) | def _fail_if_missing(self, root, path, namespaces, nonce):
    method _fail_if_found (line 69) | def _fail_if_found(self, root, path, namespaces):
    method _fail_on_invalid_html (line 78) | def _fail_on_invalid_html(self, content, parser):
    method test_exists (line 89) | def test_exists(self):
    method test_does_not_exist_nonce_wasnt_used (line 110) | def test_does_not_exist_nonce_wasnt_used(self):
    method test_redirects_exists (line 135) | def test_redirects_exists(self):
    method test_panel_content_nonce_exists (line 155) | def test_panel_content_nonce_exists(self):
    method test_missing (line 183) | def test_missing(self):

FILE: tests/test_decorators.py
  function stub_view (line 11) | def stub_view(request):
  function stub_require_toolbar_view (line 16) | def stub_require_toolbar_view(request):
  function stub_require_toolbar_async_view (line 21) | async def stub_require_toolbar_async_view(request):
  class TestRequireToolbar (line 25) | class TestRequireToolbar(TestCase):
    method setUp (line 30) | def setUp(self):
    method test_require_toolbar_debug_true (line 35) | def test_require_toolbar_debug_true(self):
    method test_require_toolbar_debug_false (line 39) | def test_require_toolbar_debug_false(self):
    method test_require_toolbar_async_debug_true (line 46) | async def test_require_toolbar_async_debug_true(self):
    method test_require_toolbar_async_debug_false (line 50) | async def test_require_toolbar_async_debug_false(self):
  class RenderWithToolbarLanguageTestCase (line 56) | class RenderWithToolbarLanguageTestCase(TestCase):
    method test_uses_toolbar_language (line 59) | def test_uses_toolbar_language(self, mock_language_override):
    method test_defaults_to_django_language_code (line 64) | def test_defaults_to_django_language_code(self, mock_language_override):

FILE: tests/test_forms.py
  class FooForm (line 14) | class FooForm(forms.Form):
  class TestSignedDataForm (line 21) | class TestSignedDataForm(TestCase):
    method test_signed_data (line 22) | def test_signed_data(self):
    method test_verified_data (line 29) | def test_verified_data(self):
    method test_initial_set_signed (line 43) | def test_initial_set_signed(self):
    method test_prevents_tampering (line 47) | def test_prevents_tampering(self):

FILE: tests/test_integration.py
  function toolbar_request_id (line 50) | def toolbar_request_id():
  class BuggyPanel (line 59) | class BuggyPanel(Panel):
    method title (line 60) | def title(self):
    method content (line 64) | def content(self):
  class DebugToolbarTestCase (line 69) | class DebugToolbarTestCase(BaseTestCase):
    method test_show_toolbar (line 70) | def test_show_toolbar(self):
    method test_show_toolbar_DEBUG (line 73) | def test_show_toolbar_DEBUG(self):
    method test_show_toolbar_INTERNAL_IPS (line 77) | def test_show_toolbar_INTERNAL_IPS(self):
    method test_show_toolbar_docker (line 82) | def test_show_toolbar_docker(self, mocked_gethostbyname):
    method test_not_iterating_over_INTERNAL_IPS (line 90) | def test_not_iterating_over_INTERNAL_IPS(self):
    method test_should_render_panels_RENDER_PANELS (line 112) | def test_should_render_panels_RENDER_PANELS(self):
    method _resolve_stats (line 124) | def _resolve_stats(self, path):
    method test_url_resolving_positional (line 132) | def test_url_resolving_positional(self):
    method test_url_resolving_named (line 139) | def test_url_resolving_named(self):
    method test_url_resolving_mixed (line 144) | def test_url_resolving_mixed(self):
    method test_url_resolving_bad (line 149) | def test_url_resolving_bad(self):
    method test_middleware_response_insertion (line 156) | def test_middleware_response_insertion(self):
    method test_middleware_no_injection_when_encoded (line 164) | def test_middleware_no_injection_when_encoded(self):
    method test_cache_page (line 173) | def test_cache_page(self):
    method test_include_package_urls (line 187) | def test_include_package_urls(self):
    method test_low_level_cache_view (line 201) | def test_low_level_cache_view(self):
    method test_cache_disable_instrumentation (line 212) | def test_cache_disable_instrumentation(self):
    method test_is_toolbar_request (line 226) | def test_is_toolbar_request(self):
    method test_is_toolbar_request_without_djdt_urls (line 237) | def test_is_toolbar_request_without_djdt_urls(self):
    method test_is_toolbar_request_override_request_urlconf (line 246) | def test_is_toolbar_request_override_request_urlconf(self):
    method test_is_toolbar_request_with_script_prefix (line 255) | def test_is_toolbar_request_with_script_prefix(self):
    method test_data_gone (line 269) | def test_data_gone(self):
    method test_sql_page (line 275) | def test_sql_page(self):
    method test_async_sql_page (line 281) | def test_async_sql_page(self):
    method test_concurrent_async_sql_page (line 287) | def test_concurrent_async_sql_page(self):
  class DebugToolbarIntegrationTestCase (line 295) | class DebugToolbarIntegrationTestCase(IntegrationTestCase):
    method test_middleware (line 296) | def test_middleware(self):
    method test_non_utf8_charset (line 302) | def test_non_utf8_charset(self):
    method test_html5_validation (line 311) | def test_html5_validation(self):
    method test_render_panel_checks_show_toolbar (line 325) | def test_render_panel_checks_show_toolbar(self):
    method test_middleware_render_toolbar_json (line 347) | def test_middleware_render_toolbar_json(self):
    method test_template_source_checks_show_toolbar (line 365) | def test_template_source_checks_show_toolbar(self):
    method test_template_source_errors (line 387) | def test_template_source_errors(self):
    method test_sql_select_checks_show_toolbar (line 407) | def test_sql_select_checks_show_toolbar(self):
    method test_sql_explain_checks_show_toolbar (line 439) | def test_sql_explain_checks_show_toolbar(self):
    method test_sql_explain_postgres_union_query (line 474) | def test_sql_explain_postgres_union_query(self):
    method test_sql_explain_postgres_json_field (line 501) | def test_sql_explain_postgres_json_field(self):
    method test_sql_profile_checks_show_toolbar (line 532) | def test_sql_profile_checks_show_toolbar(self):
    method test_render_panels_in_request (line 565) | def test_render_panels_in_request(self):
    method test_load_panels (line 585) | def test_load_panels(self):
    method test_view_returns_template_response (line 604) | def test_view_returns_template_response(self):
    method test_intercept_redirects (line 609) | def test_intercept_redirects(self):
    method test_server_timing_headers (line 615) | def test_server_timing_headers(self):
    method test_timer_panel (line 630) | def test_timer_panel(self):
    method test_auth_login_view_without_redirect (line 638) | def test_auth_login_view_without_redirect(self):
  class DebugToolbarLiveTestCase (line 660) | class DebugToolbarLiveTestCase(StaticLiveServerTestCase):
    method setUpClass (line 662) | def setUpClass(cls):
    method tearDownClass (line 673) | def tearDownClass(cls):
    method get (line 677) | def get(self, url):
    method wait (line 681) | def wait(self):
    method test_basic (line 684) | def test_basic(self):
    method test_basic_jinja (line 707) | def test_basic_jinja(self):
    method test_rerender_on_history_switch (line 724) | def test_rerender_on_history_switch(self):
    method test_expired_store (line 748) | def test_expired_store(self):
    method test_django_cached_template_loader (line 779) | def test_django_cached_template_loader(self):
    method test_sql_action_and_go_back (line 799) | def test_sql_action_and_go_back(self):
    method test_displays_server_error (line 825) | def test_displays_server_error(self):
    method test_toolbar_language_will_render_to_default_language_when_not_set (line 832) | def test_toolbar_language_will_render_to_default_language_when_not_set...
    method test_toolbar_language_will_render_to_locale_when_set (line 850) | def test_toolbar_language_will_render_to_locale_when_set(self):
    method test_toolbar_language_will_render_to_locale_when_set_both (line 869) | def test_toolbar_language_will_render_to_locale_when_set_both(self):
    method test_ajax_dont_refresh (line 886) | def test_ajax_dont_refresh(self):
    method test_ajax_refresh (line 895) | def test_ajax_refresh(self):
    method test_theme_toggle (line 915) | def test_theme_toggle(self):
    method test_async_sql_action (line 952) | def test_async_sql_action(self):
    method test_concurrent_async_sql_action (line 965) | def test_concurrent_async_sql_action(self):

FILE: tests/test_integration_async.py
  function toolbar_request_id (line 33) | def toolbar_request_id():
  class BuggyPanel (line 42) | class BuggyPanel(Panel):
    method title (line 43) | def title(self):
    method content (line 47) | def content(self):
  class DebugToolbarTestCase (line 52) | class DebugToolbarTestCase(BaseTestCase):
    method test_show_toolbar (line 55) | def test_show_toolbar(self):
    method test_show_toolbar_INTERNAL_IPS (line 62) | async def test_show_toolbar_INTERNAL_IPS(self):
    method test_show_toolbar_docker (line 67) | async def test_show_toolbar_docker(self, mocked_gethostbyname):
    method test_not_iterating_over_INTERNAL_IPS (line 75) | async def test_not_iterating_over_INTERNAL_IPS(self):
    method test_middleware_response_insertion (line 98) | async def test_middleware_response_insertion(self):
    method test_middleware_no_injection_when_encoded (line 106) | async def test_middleware_no_injection_when_encoded(self):
    method test_cache_page (line 115) | async def test_cache_page(self):
    method test_include_package_urls (line 125) | async def test_include_package_urls(self):
    method test_low_level_cache_view (line 135) | async def test_low_level_cache_view(self):
    method test_cache_disable_instrumentation (line 142) | async def test_cache_disable_instrumentation(self):
    method test_is_toolbar_request (line 154) | async def test_is_toolbar_request(self):
    method test_is_toolbar_request_without_djdt_urls (line 165) | async def test_is_toolbar_request_without_djdt_urls(self):
    method test_is_toolbar_request_override_request_urlconf (line 174) | async def test_is_toolbar_request_override_request_urlconf(self):
    method test_is_toolbar_request_with_script_prefix (line 183) | async def test_is_toolbar_request_with_script_prefix(self):
    method test_data_gone (line 197) | async def test_data_gone(self):
    method test_sql_page (line 203) | async def test_sql_page(self):
    method test_async_sql_page (line 209) | async def test_async_sql_page(self):
  class DebugToolbarIntegrationTestCase (line 234) | class DebugToolbarIntegrationTestCase(IntegrationTestCase):
    method test_middleware_in_async_mode (line 235) | async def test_middleware_in_async_mode(self):
    method test_non_utf8_charset (line 241) | async def test_non_utf8_charset(self):
    method test_html5_validation (line 251) | async def test_html5_validation(self):
    method test_render_panel_checks_show_toolbar (line 265) | async def test_render_panel_checks_show_toolbar(self):
    method test_middleware_render_toolbar_json (line 280) | async def test_middleware_render_toolbar_json(self):
    method test_template_source_checks_show_toolbar (line 300) | async def test_template_source_checks_show_toolbar(self):
    method test_template_source_errors (line 314) | async def test_template_source_errors(self):
    method test_sql_select_checks_show_toolbar (line 334) | async def test_sql_select_checks_show_toolbar(self):
    method test_sql_explain_checks_show_toolbar (line 358) | async def test_sql_explain_checks_show_toolbar(self):
    method test_sql_explain_postgres_union_query (line 385) | async def test_sql_explain_postgres_union_query(self):
    method test_sql_explain_postgres_json_field (line 412) | async def test_sql_explain_postgres_json_field(self):
    method test_sql_profile_checks_show_toolbar (line 435) | async def test_sql_profile_checks_show_toolbar(self):
    method test_render_panels_in_request (line 460) | async def test_render_panels_in_request(self):
    method test_load_panels (line 480) | async def test_load_panels(self):
    method test_view_returns_template_response (line 499) | async def test_view_returns_template_response(self):
    method test_intercept_redirects (line 504) | async def test_intercept_redirects(self):
    method test_server_timing_headers (line 510) | async def test_server_timing_headers(self):
    method test_timer_panel (line 525) | async def test_timer_panel(self):
    method test_auth_login_view_without_redirect (line 533) | async def test_auth_login_view_without_redirect(self):

FILE: tests/test_login_not_required.py
  class LoginNotRequiredTestCase (line 25) | class LoginNotRequiredTestCase(SimpleTestCase):
    method test_panels (line 26) | def test_panels(self):
    method test_render_panel (line 39) | def test_render_panel(self):

FILE: tests/test_middleware.py
  function show_toolbar_if_staff (line 16) | def show_toolbar_if_staff(request):
  function ashow_toolbar_if_staff (line 21) | async def ashow_toolbar_if_staff(request):
  class MiddlewareSyncAsyncCompatibilityTestCase (line 27) | class MiddlewareSyncAsyncCompatibilityTestCase(TestCase):
    method setUp (line 28) | def setUp(self):
    method test_sync_mode (line 33) | def test_sync_mode(self):
    method test_async_mode (line 50) | async def test_async_mode(self):
    method test_async_show_toolbar_callback_sync_middleware (line 73) | def test_async_show_toolbar_callback_sync_middleware(self, mocked_show):
    method test_sync_show_toolbar_callback_async_middleware (line 89) | async def test_sync_show_toolbar_callback_async_middleware(self, mocke...

FILE: tests/test_models.py
  class HistoryEntryTestCase (line 8) | class HistoryEntryTestCase(TestCase):
    method test_str_method (line 9) | def test_str_method(self):
    method test_data_field_default (line 14) | def test_data_field_default(self):
    method test_model_persistence (line 19) | def test_model_persistence(self):
    method test_default_ordering (line 30) | def test_default_ordering(self):

FILE: tests/test_sanitize.py
  class ForceStrTestCase (line 6) | class ForceStrTestCase(unittest.TestCase):
    method test_success_convert (line 7) | def test_success_convert(self):
    method test_failed_convert (line 12) | def test_failed_convert(self):

FILE: tests/test_settings.py
  class SettingsTestCase (line 8) | class SettingsTestCase(TestCase):
    method test_is_running_tests (line 11) | def test_is_running_tests(self, mock_os, mock_sys):

FILE: tests/test_store.py
  class SerializationTestCase (line 10) | class SerializationTestCase(TestCase):
    method test_serialize (line 11) | def test_serialize(self):
    method test_serialize_logs_on_failure (line 17) | def test_serialize_logs_on_failure(self):
    method test_deserialize (line 23) | def test_deserialize(self):
  class BaseStoreTestCase (line 30) | class BaseStoreTestCase(TestCase):
    method test_methods_are_not_implemented (line 31) | def test_methods_are_not_implemented(self):
  class MemoryStoreTestCase (line 53) | class MemoryStoreTestCase(TestCase):
    method setUpTestData (line 55) | def setUpTestData(cls) -> None:
    method tearDown (line 58) | def tearDown(self) -> None:
    method test_ids (line 61) | def test_ids(self):
    method test_exists (line 66) | def test_exists(self):
    method test_set (line 71) | def test_set(self):
    method test_set_max_size (line 75) | def test_set_max_size(self):
    method test_clear (line 83) | def test_clear(self):
    method test_delete (line 89) | def test_delete(self):
    method test_save_panel (line 97) | def test_save_panel(self):
    method test_panel (line 102) | def test_panel(self):
    method test_serialize_safestring (line 107) | def test_serialize_safestring(self):
  class StubStore (line 120) | class StubStore(store.BaseStore):
  class GetStoreTestCase (line 124) | class GetStoreTestCase(TestCase):
    method test_get_store (line 125) | def test_get_store(self):
    method test_get_store_with_setting (line 131) | def test_get_store_with_setting(self):
  class DatabaseStoreTestCase (line 138) | class DatabaseStoreTestCase(TestCase):
    method setUpTestData (line 140) | def setUpTestData(cls) -> None:
    method tearDown (line 143) | def tearDown(self) -> None:
    method test_ids (line 146) | def test_ids(self):
    method test_exists (line 155) | def test_exists(self):
    method test_set (line 162) | def test_set(self):
    method test_set_max_size (line 167) | def test_set_max_size(self):
    method test_clear (line 189) | def test_clear(self):
    method test_delete (line 196) | def test_delete(self):
    method test_save_panel (line 205) | def test_save_panel(self):
    method test_update_panel (line 211) | def test_update_panel(self):
    method test_panels_nonexistent_request (line 220) | def test_panels_nonexistent_request(self):
    method test_panel (line 225) | def test_panel(self):
    method test_panels (line 232) | def test_panels(self):
    method test_cleanup_old_entries (line 241) | def test_cleanup_old_entries(self):

FILE: tests/test_toolbar.py
  class DebugToolbarUrlsTestCase (line 7) | class DebugToolbarUrlsTestCase(BaseTestCase):
    method test_empty_prefix_errors (line 8) | def test_empty_prefix_errors(self):
    method test_empty_when_debug_is_false (line 12) | def test_empty_when_debug_is_false(self):
    method test_has_path (line 15) | def test_has_path(self):

FILE: tests/test_utils.py
  class GetNameFromObjTestCase (line 17) | class GetNameFromObjTestCase(unittest.TestCase):
    method test_func (line 18) | def test_func(self):
    method test_lambda (line 27) | def test_lambda(self):
    method test_class (line 33) | def test_class(self):
  class RenderStacktraceTestCase (line 43) | class RenderStacktraceTestCase(unittest.TestCase):
    method test_importlib_path_issue_1612 (line 44) | def test_importlib_path_issue_1612(self):
  class StackTraceTestCase (line 69) | class StackTraceTestCase(unittest.TestCase):
    method test_get_stack_trace_skip (line 71) | def test_get_stack_trace_skip(self):
    method test_deprecated_functions (line 84) | def test_deprecated_functions(self):
    method test_locals (line 93) | def test_locals(self):
  class SanitizeAndSortRequestVarsTestCase (line 116) | class SanitizeAndSortRequestVarsTestCase(unittest.TestCase):
    method test_dict_sanitization (line 119) | def test_dict_sanitization(self):
    method test_querydict_sanitization (line 135) | def test_querydict_sanitization(self):
    method test_non_sortable_dict_keys (line 147) | def test_non_sortable_dict_keys(self):
    method test_querydict_multiple_values (line 161) | def test_querydict_multiple_values(self):
    method test_non_dict_input (line 169) | def test_non_dict_input(self):

FILE: tests/views.py
  function execute_sql (line 15) | def execute_sql(request):
  function execute_json_sql (line 20) | def execute_json_sql(request):
  function async_execute_json_sql (line 25) | async def async_execute_json_sql(request):
  function execute_union_sql (line 33) | def execute_union_sql(request):
  function async_execute_union_sql (line 38) | async def async_execute_union_sql(request):
  function async_execute_sql (line 47) | async def async_execute_sql(request):
  function async_execute_sql_concurrently (line 66) | async def async_execute_sql_concurrently(request):
  function regular_view (line 71) | def regular_view(request, title):
  function csp_view (line 75) | def csp_view(request):
  function template_response_view (line 81) | def template_response_view(request, title):
  function new_user (line 85) | def new_user(request, username="joe"):
  function resolving_view (line 90) | def resolving_view(request, arg1, arg2):
  function cached_view (line 96) | def cached_view(request):
  function cached_low_level_view (line 100) | def cached_low_level_view(request):
  function json_view (line 109) | def json_view(request):
  function regular_jinjia_view (line 113) | def regular_jinjia_view(request, title):
  function listcomp_view (line 117) | def listcomp_view(request):
  function redirect_view (line 122) | def redirect_view(request):
  function ajax_view (line 126) | def ajax_view(request):
Condensed preview — 252 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,191K chars).
[
  {
    "path": ".editorconfig",
    "chars": 286,
    "preview": "# https://editorconfig.org/\n\nroot = true\n\n[*]\nindent_style = space\nindent_size = 4\ninsert_final_newline = true\ntrim_trai"
  },
  {
    "path": ".git-blame-ignore-revs",
    "chars": 0,
    "preview": ""
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 446,
    "preview": "#### Description\n\nPlease include a summary of the change and which issue is fixed. Please also\ninclude relevant motivati"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 615,
    "preview": "# Keep GitHub Actions up to date with GitHub's Dependabot...\n# https://docs.github.com/en/code-security/dependabot/worki"
  },
  {
    "path": ".github/release.yml",
    "chars": 90,
    "preview": "---\nchangelog:\n  exclude:\n    authors:\n      - dependabot[bot]\n      - pre-commit-ci[bot]\n"
  },
  {
    "path": ".github/workflows/coverage.yml",
    "chars": 1438,
    "preview": "# .github/workflows/coverage.yml\nname: Post coverage comment\n\non:\n  workflow_run: # zizmor: ignore[dangerous-triggers] -"
  },
  {
    "path": ".github/workflows/release.yml",
    "chars": 3860,
    "preview": "name: Publish Python 🐍 distribution 📦 to PyPI and TestPyPI\n\non: push\n\npermissions: {}\n\nenv:\n  PYPI_URL: https://pypi.org"
  },
  {
    "path": ".github/workflows/test.yml",
    "chars": 9423,
    "preview": "name: Test\n\non:\n  push:\n    branches:\n    - main\n    tags:\n    - '**'\n  pull_request:\n  schedule:\n    # Run weekly on Sa"
  },
  {
    "path": ".github/workflows/zizmor.yml",
    "chars": 657,
    "preview": "name: GitHub Actions Security Analysis with zizmor 🌈\n\non:\n  push:\n    branches: [\"main\"]\n  pull_request:\n    branches: ["
  },
  {
    "path": ".gitignore",
    "chars": 186,
    "preview": "*.pyc\n*.DS_Store\n*~\n.idea\nbuild\n.coverage*\ndist\ndjango_debug_toolbar.egg-info\ndocs/_build\nexample/db.sqlite3\nhtmlcov\n.to"
  },
  {
    "path": ".pre-commit-config.yaml",
    "chars": 1335,
    "preview": "repos:\n-   repo: https://github.com/pre-commit/pre-commit-hooks\n    rev: v6.0.0\n    hooks:\n    -   id: check-toml\n    - "
  },
  {
    "path": ".readthedocs.yaml",
    "chars": 318,
    "preview": "# .readthedocs.yaml\n# Read the Docs configuration file\n# See https://docs.readthedocs.io/en/stable/config-file/v2.html f"
  },
  {
    "path": ".tx/config",
    "chars": 365,
    "preview": "[main]\nhost     = https://www.transifex.com\nlang_map = sr@latin: sr_Latn\n\n[o:django-debug-toolbar:p:django-debug-toolbar"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 195,
    "preview": "# Django Debug Toolbar Code of Conduct\n\nThe django-debug-toolbar project utilizes the [Django Commons Code of Conduct](h"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 553,
    "preview": "# Contributing to Django Debug Toolbar\n\nThis is a [Django Commons](https://github.com/django-commons/) project. By contr"
  },
  {
    "path": "LICENSE",
    "chars": 1536,
    "preview": "Copyright (c) Rob Hudson and individual contributors.\nAll rights reserved.\n\nRedistribution and use in source and binary "
  },
  {
    "path": "Makefile",
    "chars": 1966,
    "preview": ".PHONY: example test coverage translatable_strings update_translations help\n.DEFAULT_GOAL := help\n\nexample:  ## Run the "
  },
  {
    "path": "README.rst",
    "chars": 2807,
    "preview": "=====================================\nDjango Debug Toolbar |latest-version|\n=====================================\n\n|buil"
  },
  {
    "path": "SECURITY.md",
    "chars": 539,
    "preview": "# Security Policy\n\n## Supported Versions\n\nOnly the latest version of django-debug-toolbar [![PyPI version](https://badge"
  },
  {
    "path": "biome.json",
    "chars": 751,
    "preview": "{\n    \"$schema\": \"https://biomejs.dev/schemas/2.3.7/schema.json\",\n    \"formatter\": {\n        \"enabled\": true,\n        \"u"
  },
  {
    "path": "debug_toolbar/__init__.py",
    "chars": 280,
    "preview": "__all__ = [\"APP_NAME\", \"VERSION\"]\n\nAPP_NAME = \"djdt\"\n\n# Do not use pkg_resources to find the version but set it here dir"
  },
  {
    "path": "debug_toolbar/_compat.py",
    "chars": 584,
    "preview": "import django\n\ntry:\n    from django.contrib.auth.decorators import login_not_required\nexcept ImportError:\n    # For Djan"
  },
  {
    "path": "debug_toolbar/_stubs.py",
    "chars": 687,
    "preview": "from __future__ import annotations\n\nfrom typing import Any, NamedTuple, Protocol\n\nfrom django import template as dj_temp"
  },
  {
    "path": "debug_toolbar/apps.py",
    "chars": 11170,
    "preview": "import inspect\nimport mimetypes\n\nfrom django.apps import AppConfig\nfrom django.conf import settings\nfrom django.core.che"
  },
  {
    "path": "debug_toolbar/decorators.py",
    "chars": 1425,
    "preview": "import functools\n\nfrom asgiref.sync import iscoroutinefunction\nfrom django.http import Http404\nfrom django.utils.transla"
  },
  {
    "path": "debug_toolbar/forms.py",
    "chars": 1553,
    "preview": "import json\n\nfrom django import forms\nfrom django.core import signing\nfrom django.core.exceptions import ValidationError"
  },
  {
    "path": "debug_toolbar/locale/bg/LC_MESSAGES/django.po",
    "chars": 18753,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/ca/LC_MESSAGES/django.po",
    "chars": 16023,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/cs/LC_MESSAGES/django.po",
    "chars": 19936,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/de/LC_MESSAGES/django.po",
    "chars": 18753,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/en/LC_MESSAGES/django.po",
    "chars": 17126,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/es/LC_MESSAGES/django.po",
    "chars": 19598,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/fa/LC_MESSAGES/django.po",
    "chars": 18065,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/fi/LC_MESSAGES/django.po",
    "chars": 16585,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/fr/LC_MESSAGES/django.po",
    "chars": 19898,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/he/LC_MESSAGES/django.po",
    "chars": 15884,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/id/LC_MESSAGES/django.po",
    "chars": 15823,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/it/LC_MESSAGES/django.po",
    "chars": 18717,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/ja/LC_MESSAGES/django.po",
    "chars": 15625,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/ko/LC_MESSAGES/django.po",
    "chars": 16560,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/lt/LC_MESSAGES/django.po",
    "chars": 18673,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/nl/LC_MESSAGES/django.po",
    "chars": 16492,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/pl/LC_MESSAGES/django.po",
    "chars": 17899,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/pt/LC_MESSAGES/django.po",
    "chars": 16525,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/pt_BR/LC_MESSAGES/django.po",
    "chars": 18989,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/ru/LC_MESSAGES/django.po",
    "chars": 20560,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/sk/LC_MESSAGES/django.po",
    "chars": 19237,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/sv_SE/LC_MESSAGES/django.po",
    "chars": 15955,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/tr/LC_MESSAGES/django.po",
    "chars": 20795,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/uk/LC_MESSAGES/django.po",
    "chars": 19502,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/uz/LC_MESSAGES/django.po",
    "chars": 20762,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/locale/zh_CN/LC_MESSAGES/django.po",
    "chars": 16469,
    "preview": "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE pac"
  },
  {
    "path": "debug_toolbar/management/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "debug_toolbar/management/commands/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "debug_toolbar/management/commands/debugsqlshell.py",
    "chars": 1054,
    "preview": "from time import perf_counter\n\nimport sqlparse\nfrom django.core.management.commands.shell import Command\nfrom django.db "
  },
  {
    "path": "debug_toolbar/middleware.py",
    "chars": 7892,
    "preview": "\"\"\"\nDebug Toolbar middleware\n\"\"\"\n\nimport re\nimport socket\nfrom collections.abc import Callable\nfrom functools import cac"
  },
  {
    "path": "debug_toolbar/migrations/0001_initial.py",
    "chars": 703,
    "preview": "from django.db import migrations, models\n\n\nclass Migration(migrations.Migration):\n    initial = True\n\n    operations = ["
  },
  {
    "path": "debug_toolbar/migrations/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "debug_toolbar/models.py",
    "chars": 476,
    "preview": "from django.db import models\nfrom django.utils.translation import gettext_lazy as _\n\n\nclass HistoryEntry(models.Model):\n"
  },
  {
    "path": "debug_toolbar/panels/__init__.py",
    "chars": 9445,
    "preview": "from django.core.handlers.asgi import ASGIRequest\nfrom django.template.loader import render_to_string\nfrom django.utils."
  },
  {
    "path": "debug_toolbar/panels/alerts.py",
    "chars": 5153,
    "preview": "from html.parser import HTMLParser\n\nfrom django.utils.translation import gettext_lazy as _\n\nfrom debug_toolbar.panels im"
  },
  {
    "path": "debug_toolbar/panels/cache.py",
    "chars": 7971,
    "preview": "import functools\nfrom time import perf_counter\n\nfrom asgiref.local import Local\nfrom django.conf import settings\nfrom dj"
  },
  {
    "path": "debug_toolbar/panels/community.py",
    "chars": 314,
    "preview": "from django.utils.translation import gettext_lazy as _\n\nfrom debug_toolbar.panels import Panel\n\n\nclass CommunityPanel(Pa"
  },
  {
    "path": "debug_toolbar/panels/headers.py",
    "chars": 1816,
    "preview": "from django.utils.translation import gettext_lazy as _\n\nfrom debug_toolbar.panels import Panel\n\n\nclass HeadersPanel(Pane"
  },
  {
    "path": "debug_toolbar/panels/history/__init__.py",
    "chars": 106,
    "preview": "from debug_toolbar.panels.history.panel import HistoryPanel\n\n__all__: list[str] = [HistoryPanel.panel_id]\n"
  },
  {
    "path": "debug_toolbar/panels/history/forms.py",
    "chars": 313,
    "preview": "from django import forms\n\n\nclass HistoryStoreForm(forms.Form):\n    \"\"\"\n    Validate params\n\n        request_id: The key "
  },
  {
    "path": "debug_toolbar/panels/history/panel.py",
    "chars": 4200,
    "preview": "import contextlib\nimport json\n\nfrom django.http import HttpResponse, QueryDict\nfrom django.http.request import HttpReque"
  },
  {
    "path": "debug_toolbar/panels/history/views.py",
    "chars": 3269,
    "preview": "from django.http import HttpRequest, HttpResponseBadRequest, JsonResponse\nfrom django.template.loader import render_to_s"
  },
  {
    "path": "debug_toolbar/panels/profiling.py",
    "chars": 6383,
    "preview": "import cProfile\nimport os\nfrom colorsys import hsv_to_rgb\nfrom pstats import Stats\n\nfrom django.conf import settings\nfro"
  },
  {
    "path": "debug_toolbar/panels/redirects.py",
    "chars": 2536,
    "preview": "import warnings\nfrom inspect import iscoroutine\n\nfrom django.template.response import SimpleTemplateResponse\nfrom django"
  },
  {
    "path": "debug_toolbar/panels/request.py",
    "chars": 1991,
    "preview": "from django.http import Http404\nfrom django.urls import resolve\nfrom django.utils.translation import gettext_lazy as _\n\n"
  },
  {
    "path": "debug_toolbar/panels/settings.py",
    "chars": 1051,
    "preview": "from pprint import pformat\n\nfrom django.utils.translation import gettext_lazy as _\nfrom django.views.debug import get_de"
  },
  {
    "path": "debug_toolbar/panels/signals.py",
    "chars": 3414,
    "preview": "import weakref\n\nfrom django.core.signals import (\n    got_request_exception,\n    request_finished,\n    request_started,\n"
  },
  {
    "path": "debug_toolbar/panels/sql/__init__.py",
    "chars": 83,
    "preview": "from debug_toolbar.panels.sql.panel import SQLPanel\n\n__all__ = [SQLPanel.panel_id]\n"
  },
  {
    "path": "debug_toolbar/panels/sql/forms.py",
    "chars": 4569,
    "preview": "import json\n\nfrom django import forms\nfrom django.core.exceptions import ValidationError\nfrom django.db import connectio"
  },
  {
    "path": "debug_toolbar/panels/sql/panel.py",
    "chars": 12881,
    "preview": "import uuid\nfrom collections import defaultdict\n\nfrom asgiref.sync import sync_to_async\nfrom django.db import connection"
  },
  {
    "path": "debug_toolbar/panels/sql/tracking.py",
    "chars": 10129,
    "preview": "import contextlib\nimport contextvars\nimport datetime\nimport json\nfrom time import perf_counter\n\nimport django.test.testc"
  },
  {
    "path": "debug_toolbar/panels/sql/utils.py",
    "chars": 4601,
    "preview": "from functools import cache, lru_cache\nfrom html import escape\nfrom itertools import cycle\n\nimport sqlparse\nfrom django."
  },
  {
    "path": "debug_toolbar/panels/sql/views.py",
    "chars": 3669,
    "preview": "from django.http import HttpResponseBadRequest, JsonResponse\nfrom django.template.loader import render_to_string\nfrom dj"
  },
  {
    "path": "debug_toolbar/panels/staticfiles.py",
    "chars": 5471,
    "preview": "import contextlib\nimport uuid\nfrom contextvars import ContextVar\nfrom os.path import join, normpath\n\nfrom django.contrib"
  },
  {
    "path": "debug_toolbar/panels/templates/__init__.py",
    "chars": 101,
    "preview": "from debug_toolbar.panels.templates.panel import TemplatesPanel\n\n__all__ = [TemplatesPanel.panel_id]\n"
  },
  {
    "path": "debug_toolbar/panels/templates/jinja2.py",
    "chars": 856,
    "preview": "import functools\n\nfrom django.template.backends.jinja2 import Template as JinjaTemplate\nfrom django.template.context imp"
  },
  {
    "path": "debug_toolbar/panels/templates/panel.py",
    "chars": 9475,
    "preview": "from contextlib import contextmanager\nfrom importlib.util import find_spec\nfrom os.path import normpath\nfrom pprint impo"
  },
  {
    "path": "debug_toolbar/panels/templates/views.py",
    "chars": 2518,
    "preview": "from django.core import signing\nfrom django.http import HttpResponseBadRequest, JsonResponse\nfrom django.template import"
  },
  {
    "path": "debug_toolbar/panels/timer.py",
    "chars": 4672,
    "preview": "from time import perf_counter\n\nfrom django.template.loader import render_to_string\nfrom django.templatetags.static impor"
  },
  {
    "path": "debug_toolbar/panels/versions.py",
    "chars": 2097,
    "preview": "import sys\n\nimport django\nfrom django.apps import apps\nfrom django.utils.translation import gettext_lazy as _\n\nfrom debu"
  },
  {
    "path": "debug_toolbar/py.typed",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "debug_toolbar/sanitize.py",
    "chars": 425,
    "preview": "from django.utils.encoding import DjangoUnicodeDecodeError, force_str as force_string\n\n\ndef force_str(s, *args, **kwargs"
  },
  {
    "path": "debug_toolbar/settings.py",
    "chars": 3692,
    "preview": "import os\nimport sys\nimport warnings\nfrom functools import cache\n\nfrom django.conf import settings\nfrom django.dispatch "
  },
  {
    "path": "debug_toolbar/static/debug_toolbar/css/print.css",
    "chars": 43,
    "preview": "#djDebug {\n    display: none !important;\n}\n"
  },
  {
    "path": "debug_toolbar/static/debug_toolbar/css/toolbar.css",
    "chars": 30585,
    "preview": "/* Variable definitions */\n:root {\n    /* Font families are the same as in Django admin/css/base.css */\n    --djdt-font-"
  },
  {
    "path": "debug_toolbar/static/debug_toolbar/js/history.js",
    "chars": 3431,
    "preview": "import { $$, ajaxForm, replaceToolbarState } from \"./utils.js\";\n\nconst djDebug = document.getElementById(\"djDebug\");\n\nfu"
  },
  {
    "path": "debug_toolbar/static/debug_toolbar/js/redirect.js",
    "chars": 48,
    "preview": "document.getElementById(\"redirect_to\").focus();\n"
  },
  {
    "path": "debug_toolbar/static/debug_toolbar/js/timer.js",
    "chars": 3432,
    "preview": "import { $$ } from \"./utils.js\";\n\nfunction insertBrowserTiming() {\n    const timingOffset = performance.timing.navigatio"
  },
  {
    "path": "debug_toolbar/static/debug_toolbar/js/toolbar.js",
    "chars": 14879,
    "preview": "import { $$, ajax, debounce, replaceToolbarState } from \"./utils.js\";\n\nfunction onKeyDown(event) {\n    if (event.keyCode"
  },
  {
    "path": "debug_toolbar/static/debug_toolbar/js/utils.js",
    "chars": 4699,
    "preview": "const $$ = {\n    on(root, eventName, selector, fn) {\n        root.removeEventListener(eventName, fn);\n        root.addEv"
  },
  {
    "path": "debug_toolbar/store.py",
    "chars": 7442,
    "preview": "import contextlib\nimport json\nfrom collections import defaultdict, deque\nfrom collections.abc import Iterable\nfrom typin"
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/base.html",
    "chars": 2094,
    "preview": "{% load i18n static %}\n{% block css %}\n<link{% if toolbar.csp_nonce %} nonce=\"{{ toolbar.csp_nonce }}\"{% endif %} rel=\"s"
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/includes/panel_button.html",
    "chars": 852,
    "preview": "{% load i18n %}\n\n<li id=\"djdt-{{ panel.panel_id }}\" class=\"djDebugPanelButton\">\n  <input type=\"checkbox\" data-cookie=\"dj"
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/includes/panel_content.html",
    "chars": 743,
    "preview": "{% load static %}\n\n{% if panel.has_content and panel.enabled %}\n  <div id=\"{{ panel.panel_id }}\" class=\"djdt-panelConten"
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/includes/theme_selector.html",
    "chars": 3336,
    "preview": "<svg\n  aria-hidden=\"true\"\n  class=\"djdt-hidden theme-auto\"\n  fill=\"currentColor\"\n  viewBox=\"0 0 32 32\"\n  version=\"1.1\"\n "
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/panels/alerts.html",
    "chars": 250,
    "preview": "{% load i18n %}\r\n\r\n{% if alerts %}\r\n  <h4>{% translate \"Alerts found\" %}</h4>\r\n  {% for alert in alerts %}\r\n    <ul>\r\n  "
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/panels/cache.html",
    "chars": 1903,
    "preview": "{% load i18n %}\n<h4>{% translate \"Summary\" %}</h4>\n<table>\n  <thead>\n    <tr>\n      <th>{% translate \"Total calls\" %}</t"
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/panels/community.html",
    "chars": 1549,
    "preview": "{% load i18n %}\n\n<div class=\"djdt-community-panel\">\n    <h2>\n        {% translate \"Community & Contribution\" %}\n    </h"
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/panels/headers.html",
    "chars": 1215,
    "preview": "{% load i18n %}\n\n<h4>{% translate \"Request headers\" %}</h4>\n\n<table>\n  <thead>\n    <tr>\n      <th>{% translate \"Key\" %}<"
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/panels/history.html",
    "chars": 762,
    "preview": "{% load i18n static %}\n<form method=\"get\" action=\"{% url 'djdt:history_refresh' %}\">\n    {{ refresh_form.as_div }}\n    <"
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/panels/history_tr.html",
    "chars": 1781,
    "preview": "{% load i18n %}\n<tr class=\"{% if request_id == current_request_id %}djdt-highlighted{% endif %}\" id=\"historyMain_{{ requ"
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/panels/profiling.html",
    "chars": 1333,
    "preview": "{% load i18n %}\n<table>\n  <thead>\n    <tr>\n      <th>{% translate \"Call\" %}</th>\n      <th>{% translate \"CumTime\" %}</th"
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/panels/request.html",
    "chars": 1423,
    "preview": "{% load i18n %}\n\n<h4>{% translate \"View information\" %}</h4>\n<table>\n  <thead>\n    <tr>\n      <th>{% translate \"View fun"
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/panels/request_variables.html",
    "chars": 542,
    "preview": "{% load i18n %}\n\n{% if variables.list %}\n<table>\n  <colgroup>\n    <col class=\"djdt-width-20\">\n    <col>\n  </colgroup>\n  "
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/panels/settings.html",
    "chars": 328,
    "preview": "{% load i18n %}\n<table>\n  <thead>\n    <tr>\n      <th>{% translate \"Setting\" %}</th>\n      <th>{% translate \"Value\" %}</t"
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/panels/signals.html",
    "chars": 336,
    "preview": "{% load i18n %}\n<table>\n  <thead>\n    <tr>\n      <th>{% translate \"Signal\" %}</th>\n      <th>{% translate \"Receivers\" %}"
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/panels/sql.html",
    "chars": 5890,
    "preview": "{% load i18n l10n %}\n<ul class=\"djdt-databaseLegend\">\n  {% for alias, info in databases %}\n    <li>\n      <strong><span "
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/panels/sql_explain.html",
    "chars": 933,
    "preview": "{% load i18n %}\n<div class=\"djDebugPanelTitle\">\n  <h3>{% translate \"SQL explained\" %}</h3>\n  <button type=\"button\" class"
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/panels/sql_profile.html",
    "chars": 1058,
    "preview": "{% load i18n %}\n<div class=\"djDebugPanelTitle\">\n  <h3>{% translate \"SQL profiled\" %}</h3>\n  <button type=\"button\" class="
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/panels/sql_select.html",
    "chars": 983,
    "preview": "{% load i18n %}\n<div class=\"djDebugPanelTitle\">\n  <h3>{% translate \"SQL selected\" %}</h3>\n  <button type=\"button\" class="
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/panels/staticfiles.html",
    "chars": 1806,
    "preview": "{% load i18n %}\n\n<h4>{% blocktranslate count dirs_count=staticfiles_dirs|length %}Static file path{% plural %}Static fil"
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/panels/template_source.html",
    "chars": 285,
    "preview": "{% load i18n %}\n<div class=\"djDebugPanelTitle\">\n  <h3>{% translate \"Template source:\" %} <code>{{ template_name }}</code"
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/panels/templates.html",
    "chars": 1736,
    "preview": "{% load i18n %}\n<h4>{% blocktranslate count template_count=template_dirs|length %}Template path{% plural %}Template path"
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/panels/timer.html",
    "chars": 1046,
    "preview": "{% load i18n %}\n<h4>{% translate \"Resource usage\" %}</h4>\n<table>\n  <colgroup>\n    <col class=\"djdt-width-20\">\n    <col>"
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/panels/versions.html",
    "chars": 494,
    "preview": "{% load i18n %}\n<table>\n  <colgroup>\n    <col class=\"djdt-width-20\">\n    <col class=\"djdt-width-20\">\n    <col>\n  </colgr"
  },
  {
    "path": "debug_toolbar/templates/debug_toolbar/redirect.html",
    "chars": 2815,
    "preview": "{% load i18n static %}\n<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>Django Debug Toolbar Redirects Panel: {{ sta"
  },
  {
    "path": "debug_toolbar/templatetags/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "debug_toolbar/toolbar.py",
    "chars": 8931,
    "preview": "\"\"\"\nThe main DebugToolbar class that loads and renders the Toolbar.\n\"\"\"\n\nfrom __future__ import annotations\n\nimport logg"
  },
  {
    "path": "debug_toolbar/urls.py",
    "chars": 141,
    "preview": "from debug_toolbar import APP_NAME\nfrom debug_toolbar.toolbar import DebugToolbar\n\napp_name = APP_NAME\nurlpatterns = Deb"
  },
  {
    "path": "debug_toolbar/utils.py",
    "chars": 14268,
    "preview": "from __future__ import annotations\n\nimport inspect\nimport linecache\nimport os.path\nimport sys\nimport warnings\nfrom colle"
  },
  {
    "path": "debug_toolbar/views.py",
    "chars": 1124,
    "preview": "from django.http import HttpRequest, JsonResponse\nfrom django.utils.html import escape\nfrom django.utils.translation imp"
  },
  {
    "path": "docs/Makefile",
    "chars": 640,
    "preview": "# Minimal makefile for Sphinx documentation\n#\n\n# You can set these variables from the command line, and also\n# from the "
  },
  {
    "path": "docs/architecture.rst",
    "chars": 3812,
    "preview": "Architecture\n============\n\nThe Django Debug Toolbar is designed to be flexible and extensible for\ndevelopers and third-p"
  },
  {
    "path": "docs/changes.rst",
    "chars": 37389,
    "preview": "Change log\n==========\n\nPending\n-------\n\n* Replaced ``requirements_dev.txt`` file for ``pyproject.toml`` support with\n  d"
  },
  {
    "path": "docs/checks.rst",
    "chars": 1344,
    "preview": "=============\nSystem checks\n=============\n\nThe following :external:doc:`system checks <topics/checks>` help verify the\nD"
  },
  {
    "path": "docs/commands.rst",
    "chars": 1430,
    "preview": "Commands\n========\n\nThe Debug Toolbar currently provides one Django management command.\n\n``debugsqlshell``\n--------------"
  },
  {
    "path": "docs/conf.py",
    "chars": 2698,
    "preview": "# Configuration file for the Sphinx documentation builder.\n#\n# This file only contains a selection of the most common op"
  },
  {
    "path": "docs/configuration.rst",
    "chars": 13844,
    "preview": "Configuration\n=============\n\nThe debug toolbar provides two settings that you can add in your project's\nsettings module "
  },
  {
    "path": "docs/contributing.rst",
    "chars": 8430,
    "preview": "Contributing\n============\n\nThis is a `Django Commons <https://github.com/django-commons>`_ project. By contributing you "
  },
  {
    "path": "docs/index.rst",
    "chars": 202,
    "preview": "Django Debug Toolbar\n====================\n\n.. toctree::\n   :maxdepth: 2\n\n   installation\n   configuration\n   checks\n   t"
  },
  {
    "path": "docs/installation.rst",
    "chars": 9987,
    "preview": "Installation\n============\n\nProcess\n-------\n\nEach of the following steps needs to be configured for the Debug Toolbar to "
  },
  {
    "path": "docs/make.bat",
    "chars": 795,
    "preview": "@ECHO OFF\r\n\r\npushd %~dp0\r\n\r\nREM Command file for Sphinx documentation\r\n\r\nif \"%SPHINXBUILD%\" == \"\" (\r\n\tset SPHINXBUILD=sp"
  },
  {
    "path": "docs/panels.rst",
    "chars": 13007,
    "preview": "Panels\n======\n\nThe Django Debug Toolbar ships with a series of built-in panels. In addition,\nseveral third-party panels "
  },
  {
    "path": "docs/resources.rst",
    "chars": 3521,
    "preview": "Resources\n=========\n\nThis section includes resources that can be used to learn more about\nthe Django Debug Toolbar.\n\nTut"
  },
  {
    "path": "docs/spelling_wordlist.txt",
    "chars": 644,
    "preview": "Hatchling\nHotwire\nJazzband\nMakefile\nPympler\nRoboto\nTransifex\nWerkzeug\naenable\najax\nasgi\nasync\nbackend\nbackends\nbackporte"
  },
  {
    "path": "docs/tips.rst",
    "chars": 4720,
    "preview": "Tips\n====\n\nThe toolbar isn't displayed!\n----------------------------\n\nThe Debug Toolbar will only display when ``DEBUG ="
  },
  {
    "path": "example/README.rst",
    "chars": 1532,
    "preview": "README\n======\n\nAbout\n-----\n\nThis sample project demonstrates how to use the debug toolbar. It is designed\nto run under t"
  },
  {
    "path": "example/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "example/asgi.py",
    "chars": 407,
    "preview": "\"\"\"\nASGI config for example_async project.\n\nIt exposes the ASGI callable as a module-level variable named ``application`"
  },
  {
    "path": "example/async_/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "example/async_/settings.py",
    "chars": 121,
    "preview": "\"\"\"Django settings for example project.\"\"\"\n\nfrom ..settings import *  # noqa: F403\n\nROOT_URLCONF = \"example.async_.urls\""
  },
  {
    "path": "example/async_/urls.py",
    "chars": 228,
    "preview": "from django.urls import path\n\nfrom example.async_ import views\nfrom example.urls import urlpatterns as sync_urlpatterns\n"
  },
  {
    "path": "example/async_/views.py",
    "chars": 252,
    "preview": "from django.contrib.auth.models import User\nfrom django.http import JsonResponse\n\n\nasync def async_db_view(request):\n   "
  },
  {
    "path": "example/manage.py",
    "chars": 314,
    "preview": "#!/usr/bin/env python\nimport os\nimport sys\n\nsys.path.insert(0, os.path.dirname(os.path.dirname(__file__)))\n\nif __name__ "
  },
  {
    "path": "example/screenshot.py",
    "chars": 3004,
    "preview": "import argparse\nimport importlib\nimport os\nimport signal\nimport subprocess\nfrom time import sleep\n\nfrom selenium.webdriv"
  },
  {
    "path": "example/settings.py",
    "chars": 3633,
    "preview": "\"\"\"Django settings for example project.\"\"\"\n\nimport os\nimport sys\n\nBASE_DIR = os.path.dirname(os.path.dirname(__file__))\n"
  },
  {
    "path": "example/static/test.css",
    "chars": 27,
    "preview": "body {\n    color: green;\n}\n"
  },
  {
    "path": "example/templates/async_db.html",
    "chars": 270,
    "preview": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\n    <title>Async"
  },
  {
    "path": "example/templates/bad_form.html",
    "chars": 276,
    "preview": "{% load cache %}\n<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">"
  },
  {
    "path": "example/templates/cache.html",
    "chars": 257,
    "preview": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\n    <title>Cache"
  },
  {
    "path": "example/templates/htmx/boost.html",
    "chars": 765,
    "preview": "{% load cache %}\n<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">"
  },
  {
    "path": "example/templates/index.html",
    "chars": 2377,
    "preview": "{% load cache %}\n<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">"
  },
  {
    "path": "example/templates/jinja2/index.jinja",
    "chars": 312,
    "preview": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\n    <title>jinja"
  },
  {
    "path": "example/templates/jquery/index.html",
    "chars": 524,
    "preview": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\n    <title>jQuer"
  },
  {
    "path": "example/templates/mootools/index.html",
    "chars": 578,
    "preview": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\n    <title>MooTo"
  },
  {
    "path": "example/templates/prototype/index.html",
    "chars": 592,
    "preview": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\n    <title>Proto"
  },
  {
    "path": "example/templates/turbo/index.html",
    "chars": 1929,
    "preview": "{% load cache %}\n<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">"
  },
  {
    "path": "example/test_views.py",
    "chars": 388,
    "preview": "# Add tests to example app to check how the toolbar is used\n# when running tests for a project.\n# See https://github.com"
  },
  {
    "path": "example/urls.py",
    "chars": 1745,
    "preview": "from django.contrib import admin\nfrom django.urls import path\nfrom django.views.generic import TemplateView\n\nfrom debug_"
  },
  {
    "path": "example/views.py",
    "chars": 1255,
    "preview": "import asyncio\n\nfrom asgiref.sync import sync_to_async\nfrom django.contrib.auth.models import User\nfrom django.core.cach"
  },
  {
    "path": "example/wsgi.py",
    "chars": 208,
    "preview": "\"\"\"WSGI config for example project.\"\"\"\n\nimport os\n\nfrom django.core.wsgi import get_wsgi_application\n\nos.environ.setdefa"
  },
  {
    "path": "pyproject.toml",
    "chars": 3527,
    "preview": "[build-system]\nbuild-backend = \"hatchling.build\"\nrequires = [\n  \"hatchling\",\n]\n\n[project]\nname = \"django-debug-toolbar\"\n"
  },
  {
    "path": "setup.py",
    "chars": 300,
    "preview": "#!/usr/bin/env python3\n\nimport sys\n\nsys.stderr.write(\n    \"\"\"\\\n===============================\nUnsupported installation "
  },
  {
    "path": "tests/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tests/additional_static/base.css",
    "chars": 27,
    "preview": "body {\n    color: green;\n}\n"
  },
  {
    "path": "tests/base.py",
    "chars": 4204,
    "preview": "import contextvars\n\nimport html5lib\nfrom asgiref.local import Local\nfrom django.http import HttpResponse\nfrom django.tes"
  },
  {
    "path": "tests/commands/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tests/commands/test_debugsqlshell.py",
    "chars": 1244,
    "preview": "import io\nimport sys\n\nfrom django.contrib.auth.models import User\nfrom django.core import management\nfrom django.db impo"
  },
  {
    "path": "tests/context_processors.py",
    "chars": 64,
    "preview": "def broken(request):\n    _read = request.non_existing_attribute\n"
  },
  {
    "path": "tests/forms.py",
    "chars": 220,
    "preview": "from django import forms\nfrom django.contrib.auth.models import User\n\n\nclass TemplateReprForm(forms.Form):\n    user = fo"
  },
  {
    "path": "tests/loaders.py",
    "chars": 337,
    "preview": "from django.contrib.auth.models import User\nfrom django.template.loaders.app_directories import Loader\n\n\nclass LoaderWit"
  },
  {
    "path": "tests/middleware.py",
    "chars": 456,
    "preview": "from django.core.cache import cache\n\n\nclass UseCacheAfterToolbar:\n    \"\"\"\n    This middleware exists to use the cache be"
  },
  {
    "path": "tests/models.py",
    "chars": 589,
    "preview": "from django.conf import settings\nfrom django.db import models\nfrom django.db.models import JSONField\n\n\nclass NonAsciiRep"
  },
  {
    "path": "tests/panels/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tests/panels/test_alerts.py",
    "chars": 4452,
    "preview": "from django.http import HttpResponse, StreamingHttpResponse\nfrom django.template import Context, Template\n\nfrom ..base i"
  },
  {
    "path": "tests/panels/test_async_panel_compatibility.py",
    "chars": 1218,
    "preview": "from django.http import HttpResponse\nfrom django.test import AsyncRequestFactory, RequestFactory, TestCase\n\nfrom debug_t"
  },
  {
    "path": "tests/panels/test_cache.py",
    "chars": 5273,
    "preview": "from django.core import cache\n\nfrom debug_toolbar.panels.cache import CachePanel\n\nfrom ..base import BaseTestCase\n\n\nclas"
  },
  {
    "path": "tests/panels/test_custom.py",
    "chars": 1532,
    "preview": "from django.test import override_settings\n\nfrom debug_toolbar.panels import Panel\n\nfrom ..base import IntegrationTestCas"
  },
  {
    "path": "tests/panels/test_history.py",
    "chars": 8113,
    "preview": "import copy\nimport html\n\nfrom django.test import RequestFactory, override_settings\nfrom django.urls import resolve, reve"
  },
  {
    "path": "tests/panels/test_profiling.py",
    "chars": 4165,
    "preview": "import sys\nimport unittest\n\nfrom django.contrib.auth.models import User\nfrom django.db import IntegrityError, transactio"
  },
  {
    "path": "tests/panels/test_redirects.py",
    "chars": 4146,
    "preview": "import copy\n\nfrom django.conf import settings\nfrom django.http import HttpResponse\nfrom django.test import AsyncRequestF"
  },
  {
    "path": "tests/panels/test_request.py",
    "chars": 8869,
    "preview": "from django.http import QueryDict\nfrom django.test import RequestFactory\n\nfrom debug_toolbar.panels.request import Reque"
  },
  {
    "path": "tests/panels/test_settings.py",
    "chars": 2019,
    "preview": "from django.test import RequestFactory, override_settings\n\nfrom debug_toolbar.panels.settings import SettingsPanel\n\nfrom"
  },
  {
    "path": "tests/panels/test_sql.py",
    "chars": 36470,
    "preview": "import asyncio\nimport datetime\nimport os\nimport unittest\nfrom unittest.mock import call, patch\n\nimport django\nfrom asgir"
  },
  {
    "path": "tests/panels/test_staticfiles.py",
    "chars": 5074,
    "preview": "from pathlib import Path\n\nfrom django.conf import settings\nfrom django.contrib.staticfiles import finders, storage\nfrom "
  },
  {
    "path": "tests/panels/test_template.py",
    "chars": 6673,
    "preview": "from unittest import expectedFailure\n\nimport django\nfrom django.contrib.auth.models import User\nfrom django.template imp"
  },
  {
    "path": "tests/panels/test_versions.py",
    "chars": 1341,
    "preview": "from collections import namedtuple\n\nfrom debug_toolbar.panels.versions import VersionsPanel\n\nfrom ..base import BaseTest"
  },
  {
    "path": "tests/settings.py",
    "chars": 4233,
    "preview": "\"\"\"Django settings for tests.\"\"\"\n\nimport os\n\nBASE_DIR = os.path.dirname(os.path.dirname(__file__))\n\n\n# Quick-start devel"
  },
  {
    "path": "tests/sync.py",
    "chars": 594,
    "preview": "\"\"\"\nTaken from channels.db\n\"\"\"\n\nfrom asgiref.sync import SyncToAsync\nfrom django.db import close_old_connections\n\n\nclass"
  },
  {
    "path": "tests/templates/ajax/ajax.html",
    "chars": 576,
    "preview": "{% extends \"base.html\" %}\n\n{% block content %}\n  <div id=\"click_for_ajax\">click for ajax</div>\n\n  <script>\n\n  let click_"
  },
  {
    "path": "tests/templates/base.html",
    "chars": 189,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n        <title>{{ title }}</title>\n        {% block head %}{% endblock %}\n    </head>\n"
  },
  {
    "path": "tests/templates/basic.html",
    "chars": 81,
    "preview": "{% extends \"base.html\" %}\n\n{% block content %}Test for {{ title }}{% endblock %}\n"
  },
  {
    "path": "tests/templates/jinja2/base.html",
    "chars": 150,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n        <title>{{ title }}</title>\n    </head>\n    <body>\n    {% block content %}{% en"
  },
  {
    "path": "tests/templates/jinja2/basic.jinja",
    "chars": 198,
    "preview": "{% extends 'base.html' %}\n\n{% block content %}\nTest for {{ title }} (Jinja)\n{% for i in range(10) %}{{ i }}{% endfor %} "
  }
]

// ... and 52 more files (download for full content)

About this extraction

This page contains the full source code of the django-commons/django-debug-toolbar GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 252 files (1.1 MB), approximately 288.2k tokens, and a symbol index with 826 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!