A configurable set of panels that display various debug information about the current request/response.

Overview

Django Debug Toolbar

Jazzband Build Status Test coverage status Supported Python versions 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:

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 3.2.1. It works on Django ≥ 2.2.

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 <[email protected]> in August 2008 and was further developed by many contributors.

Comments
  • Poor performance in Django 1.11 after template-based widget rendering

    Poor performance in Django 1.11 after template-based widget rendering

    As reported in Django's Trac ticket #27774, enabling the "Templates" panel on a page that does a lot of template-widget rendering (#15667) results in unacceptably slow page load. I'm not sure what an appropriate resolution might be. A possibility could be to have the debug toolbar ignore analysis for widget rendering.

    opened by timgraham 37
  • Added support for Content Security Policy

    Added support for Content Security Policy

    In order to use debug toolbar with a content security policy enabled, no inline scripts or styles can be used. This commit replaces all style attributes with CSS or javascript. It uses data attributes to handle the dynamic styles, like width and color.

    In addition, this required updating jQuery to 1.8, because 1.7 is not CSP compatible.

    See also #307, which began implementing CSP compatibility.

    Improvement Frontend 
    opened by gavinwahl 31
  • debug toolbar causes extra SQL queries

    debug toolbar causes extra SQL queries

    In latest master lazy querysets in template context are re-evaluting on every template context rendering so instead of e.g. 15 queries 100+ sql queries are executed with django-debug-toolbar enabled. Turning off 'debug_toolbar.panels.template.TemplateDebugPanel' brings sql query count back to 15. Extra queries information: http://pix.am/G8M0/

    Latest commit in SQL refactoring branch that works for me was 4d69dbea, starting from 5aff6ee7 debug toolbar either fails with an exception (None in not iterable, not all arguments are converted on string formatting) or generates extra sql queries (I may be wrong because I haven't tried all the commits).

    The setup is postgres, django 1.3 and TemplateResponse, the view is not wrapped in transaction. Using HttpResponse or wrapping view in transaction doesn't change anything.

    (edited: corrected commit numbers)

    opened by kmike 30
  • Add javascript timing metrics to timing panel onLoad if available

    Add javascript timing metrics to timing panel onLoad if available

    Some browsers support navigation timing via javascript. Since these metrics fit the category of timing, this commit adds a section to the timing panel containing key metrics from the browser, triggered soon after the onLoad event.

    The change is plain javascript, so no library dependencies.

    Background: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html

    Screenshot: http://dl.dropbox.com/u/15940111/browser_timing.png

    Tested on Chrome 22 and Firefox 14

    opened by mindsocket 23
  • SHOW_TOOLBAR_CALLBACK no longer supports lambda

    SHOW_TOOLBAR_CALLBACK no longer supports lambda

    in my setup i always have seperate dev settings and in those settings i enable debug toolbar for all requests. i've always done that with the following config

    DEBUG_TOOLBAR_CONFIG = {
        'SHOW_TOOLBAR_CALLBACK': lambda request: True,
    }
    

    after updating my virtualenv this morning i started getting errors that i've tracked down to trying to run rsplit on func_path

    line 45 of debu_toolbar/middleware.py:

        mod_path, func_name = func_path.rsplit('.', 1)
    

    it looks like the meaning of SHOW_TOOLBAR_CALLBACK may have changed to require a string and not support a callable. if that's the case i'm not sure what the solution would be. i'd rather not have to define a function somewhere and point this at it just to return true. i'd prefer if SHOW_TOOLBAR_CALLBACK supported being presented a callable.

    Improvement 
    opened by ross 22
  • Support insertion in StreamingHttpResponse

    Support insertion in StreamingHttpResponse

    Since Django 1.5 StreamingHttpResponse is introduced, this response class does not have content attribute, django-debug-toolbar middleware should be aware of that.

    Now I get this error:

    Traceback (most recent call last):
      File "/usr/lib/python2.7/wsgiref/handlers.py", line 85, in run
        self.result = application(self.environ, self.start_response)
      File "/home/sirex/.buildout/eggs/Django-1.5-py2.7.egg/django/contrib/staticfiles/handlers.py", line 72, in __call__
        return self.application(environ, start_response)
      File "/home/sirex/.buildout/eggs/Django-1.5-py2.7.egg/django/core/handlers/wsgi.py", line 255, in __call__
        response = self.get_response(request)
      File "/home/sirex/.buildout/eggs/Django-1.5-py2.7.egg/django/core/handlers/base.py", line 187, in get_response
        response = middleware_method(request, response)
      File "/home/sirex/.buildout/eggs/django_debug_toolbar-0.9.4-py2.7.egg/debug_toolbar/middleware.py", line 131, in process_response
        smart_unicode(response.content),
      File "/home/sirex/.buildout/eggs/Django-1.5-py2.7.egg/django/http/response.py", line 341, in content
        "Use `streaming_content` instead." % self.__class__.__name__)
    AttributeError: This StreamingHttpResponse instance has no `content` attribute. Use `streaming_content` instead.
    

    I use Django 1.5 and django-debug-toolbar 0.9.4.

    Improvement 
    opened by sirex 19
  • '<' not supported between instances of 'int' and 'str'

    '<' not supported between instances of 'int' and 'str'

    If session keys are not all strings, then this line (https://github.com/jazzband/django-debug-toolbar/blob/6a34e007e773d1243e3c7ba0b0ee07e4b45514ba/debug_toolbar/panels/request.py#L67) generate a TypeError:

    TypeError at /myurl
    
    '<' not supported between instances of 'int' and 'str'
    

    because:

    >>> l = ['a', 1, 'x', 22]
    >>> sorted(l)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: '<' not supported between instances of 'int' and 'str'
    
    
    Beginner friendly 
    opened by OdifYltsaeb 18
  • (urgent security problem) default _show_toolbar causes debug to leak to unprivileged IPs

    (urgent security problem) default _show_toolbar causes debug to leak to unprivileged IPs

            # if not internal ip, and not DEBUG
            if not (remote_addr in settings.INTERNAL_IPS or settings.DEBUG):
                return False
    

    The above line of code causes debug info to be shown to non privileged IPs.

    This is extremely bad and is completely against the documentation:

    "The default checks are that DEBUG must be set to True and the IP of the request must be in INTERNAL_IPS. "

    Please release an urgent fix for this by using:

            # if not internal ip, and not DEBUG
            if not (remote_addr in settings.INTERNAL_IPS and settings.DEBUG):
                return False
    
    opened by foxx 18
  • jQuery clashes

    jQuery clashes

    I'm creating a new issue to track in a single place all the problems related to the way the Debug Toolbar inserts jQuery into the page. #440 was supposed to fix the problem, but it didn't work for the trivial case of an HTML page without any JavaScript.

    I went for a very dumb solution in 2b6f5d6661dac283b7fb1cdfc6e252b6b6367d19. I don't know any better and I'm unable to assess the solutions that have been offered.

    As a consequence, until the other maintainers have a look at this issue or the toolbar gains new maintainers, this issue is unlikely to move forwards.

    I will now close all the issues that are variations of this issue as duplicates.

    Bug Frontend RequireJS 
    opened by aaugustin 17
  • ImproperlyConfigured: The included urlconf project.urls doesn't have any patterns in it (via patch_root_urlconf)

    ImproperlyConfigured: The included urlconf project.urls doesn't have any patterns in it (via patch_root_urlconf)

    patch_root_urlconf appears to cause an ImproperlyConfigured error for me:

    The included urlconf project.urls doesn't have any patterns in it
    

    This happens after adding debug_toolbar to INSTALLED_APPS.

    From the traceback it looks like the admin autodiscover triggers invocation of DDT's patching, but the project urlconf is still empty at that point.

    apps/project/urls.py looks as follows:

    # imports and autocomplete_light setup
    from django.contrib import admin
    admin.autodiscover()
    
    urlpatterns = patterns(
        '',
        (r'^grappelli/', include('grappelli.urls')),
        url(r'^admin/', include(admin.site.urls)),
    
        # …
    )
    

    This does not happen with DDT 0.10.2.

    I have also tried / are currently DDT master.

    Django Version: 1.6.2.dev20140104173735

    Traceback:
    File "/home/daniel/src/django-stable/django/core/handlers/base.py" in get_response
      101.                 resolver_match = resolver.resolve(request.path_info)
    File "/home/daniel/src/django-stable/django/core/urlresolvers.py" in resolve
      318.             for pattern in self.url_patterns:
    File "/home/daniel/src/django-stable/django/core/urlresolvers.py" in url_patterns
      346.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
    File "/home/daniel/src/django-stable/django/core/urlresolvers.py" in urlconf_module
      341.             self._urlconf_module = import_module(self.urlconf_name)
    File "/home/daniel/src/django-stable/django/utils/importlib.py" in import_module
      40.         __import__(name)
    File "/home/daniel/projects/tmm/apps/project/urls.py" in <module>
      15. admin.autodiscover()
    File "/home/daniel/src/django-stable/django/contrib/admin/__init__.py" in autodiscover
      29.             import_module('%s.admin' % app)
    File "/home/daniel/src/django-stable/django/utils/importlib.py" in import_module
      40.         __import__(name)
    File "/home/daniel/src/django-stable/django/contrib/auth/admin.py" in <module>
      182. admin.site.register(Group, GroupAdmin)
    File "/home/daniel/src/django-stable/django/contrib/admin/sites.py" in register
      92.                     admin_class.validate(model)
    File "/home/daniel/src/django-stable/django/contrib/admin/options.py" in validate
      105.         validator = cls.validator_class()
    File "/home/daniel/src/django-stable/django/contrib/admin/validation.py" in __init__
      20.         models.get_apps()
    File "/home/daniel/src/django-stable/django/db/models/loading.py" in get_apps
      139.         self._populate()
    File "/home/daniel/src/django-stable/django/db/models/loading.py" in _populate
      75.                 self.load_app(app_name, True)
    File "/home/daniel/src/django-stable/django/db/models/loading.py" in load_app
      99.             models = import_module('%s.models' % app_name)
    File "/home/daniel/src/django-stable/django/utils/importlib.py" in import_module
      40.         __import__(name)
    File "/home/daniel/.virtualenvs/tmm/src/django-debug-toolbar/debug_toolbar/models.py" in <module>
      63.     patch_root_urlconf()
    File "/home/daniel/.virtualenvs/tmm/src/django-debug-toolbar/debug_toolbar/models.py" in patch_root_urlconf
      51.         reverse('djdt:render_panel')
    File "/home/daniel/src/django-stable/django/core/urlresolvers.py" in reverse
      480.                 app_list = resolver.app_dict[ns]
    File "/home/daniel/src/django-stable/django/core/urlresolvers.py" in app_dict
      310.             self._populate()
    File "/home/daniel/src/django-stable/django/core/urlresolvers.py" in _populate
      262.         for pattern in reversed(self.url_patterns):
    File "/home/daniel/src/django-stable/django/core/urlresolvers.py" in url_patterns
      350.             raise ImproperlyConfigured("The included urlconf %s doesn't have any patterns in it" % self.urlconf_name)
    
    Exception Type: ImproperlyConfigured at /
    Exception Value: The included urlconf project.urls doesn't have any patterns in it
    
    opened by blueyed 17
  • SQL Panel: + button is no longer functional in debug-tool-bar 3.2

    SQL Panel: + button is no longer functional in debug-tool-bar 3.2

    Steps to reproduce:

    1. Refresh a page
    2. Open a the debug toolbar
    3. Select the SQL panel
    4. Press the + button for an SQL request

    Result:

    • Nothing happens, the + button is not responsive (whatever the SQL request)
    • (There is no such issue in earlier versions, including 2.2, 3.0, 3.1.)

    Expected result:

    • The + button should show the details of the SQL request

    Environement:

    • django 3.1.5
    • debug-toolbar 3.2
    • python 3.6.8
    opened by caramdache 16
  • Update translation files.

    Update translation files.

    We're a bit behind on updating the translations. The ideal solution is to have a CI task that verifies that the translations have been updated as a part of a PR.

    I've actually forgotten a lot of this translation process.

    opened by tim-schilling 0
  • Huge amount of store_id access has been raised

    Huge amount of store_id access has been raised

    Hello. Thank you for great works.

    I've update to v3.8.1 and found some issue.

    When I access to SPA page, which access to server api using axios, huge amount of access(*) was recorded and Debug toolbar does not show any panel. * http://localhost:8000/__debug__/history_sidebar/?store_id=03b13fc6002f4d11abd19ca4de7cb732)

    Not SPA page(maybe not access to API server via JavaScript), does not happen.

    Dose anyone else experienced the same problem?

    v3.8.1

    https://user-images.githubusercontent.com/56591/208930764-aef41a86-7a8b-464e-a6e2-903b65ee3b5c.mp4

    v3.7.0 works fine.

    https://user-images.githubusercontent.com/56591/208929306-f0a4241d-e7ae-4091-accc-f2f15f6f5ee7.mp4

    I think this PR https://github.com/jazzband/django-debug-toolbar/pull/1685 was releated.

    OS: macOS X Django: 3.2.16 React: 17.0.2 axios: 0.27.2

    Best regards.

    opened by heavenshell 0
  • Content-Security-Policy and strict-dynamic

    Content-Security-Policy and strict-dynamic

    Django Debug Toolbar is blocked by CSP if we are using strict-dynamic. Django already support it from the box if we can include nonce="{{request.csp_nonce}}" in the template

    opened by sshishov 1
  • Replace aliased imports with their canonical name

    Replace aliased imports with their canonical name

    See #1717

    When I see a settings variable in a Django project I immediately assume that it's django.conf.settings

    When I see dt_settings I have to look it up.

    Also, override immediately tells me django.utils.translation.override. If it's not obvious I sometimes import the module and use the function as translation.override but that happens almost never.

    It's a low priority issue but I think it should be changed if it's possible without breaking too many pull requests :)

    opened by matthiask 4
  • Drop support for Python 3.7

    Drop support for Python 3.7

    Description

    This pull request drops support for Python 3.7. Older versions of the toolbar will still be usable by people still using 3.7. This also makes us use less CI resources, something which is a big plus for me.

    Also, see https://pythonspeed.com/articles/stop-using-python-3.7/

    Checklist:

    • [x] I have added the relevant tests for this change.
    • [x] I have added an item to the Pending section of docs/changes.rst.
    opened by matthiask 0
Releases(3.8.1)
  • 3.8.1(Dec 3, 2022)

    Note: 3.8.0 was not released, use 3.8.1

    What's Changed

    • fix: Simplify logic for Panel.enabled property by @adamantike in https://github.com/jazzband/django-debug-toolbar/pull/1676
    • Auto-update History panel with JavaScript fetch requests. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1685
    • Improve the template_source view coverage a bit by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1688
    • Support rerendering the toolbar on HTMX boosted pages. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1686
    • Include panel scripts in content when RENDER_PANELS=True by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1689
    • Fixed #1693 -- Run tests on python 3.11 by @pauloxnet in https://github.com/jazzband/django-debug-toolbar/pull/1694
    • Add divide by zero protection in timer.js by @SmailBestybay in https://github.com/jazzband/django-debug-toolbar/pull/1687
    • Fixed #1695 - Run test on Python 3.11 for Django 4.1 by @pauloxnet in https://github.com/jazzband/django-debug-toolbar/pull/1696
    • Create one-time mouseup listener for each mousedown by @scuml in https://github.com/jazzband/django-debug-toolbar/pull/1697
    • Update package metadata by @ofek in https://github.com/jazzband/django-debug-toolbar/pull/1690
    • Validate and format pyproject.toml by @hugovk in https://github.com/jazzband/django-debug-toolbar/pull/1700
    • Drop Rob's email address in project config. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1699
    • Fix highlighting on history panel by @scuml in https://github.com/jazzband/django-debug-toolbar/pull/1698
    • Allow Language Selection on the Toolbar by @leandrodesouzadev in https://github.com/jazzband/django-debug-toolbar/pull/1703
    • Attach handlers to djDebug instead of document by @scuml in https://github.com/jazzband/django-debug-toolbar/pull/1702
    • Formalize support for Python 3.11. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1713

    New Contributors

    • @adamantike made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1676
    • @SmailBestybay made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1687
    • @ofek made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1690
    • @hugovk made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1700
    • @leandrodesouzadev made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1703

    Full Changelog: https://github.com/jazzband/django-debug-toolbar/compare/3.7...3.8.1

    Source code(tar.gz)
    Source code(zip)
  • 3.8(Dec 3, 2022)

  • 3.7(Sep 25, 2022)

    What's Changed

    • Fix JS linting error from pre-commit. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1670
    • Use system font stack in the toolbar by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1672
    • Profiling panel improvements by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1669
    • added functionality to keep unsort the session dict by @ritiksoni00 in https://github.com/jazzband/django-debug-toolbar/pull/1673

    New Contributors

    • @ritiksoni00 made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1673

    Full Changelog: https://github.com/jazzband/django-debug-toolbar/compare/3.6...3.7

    Source code(tar.gz)
    Source code(zip)
  • 3.6(Aug 23, 2022)

    What's Changed

    • Remove unused import from installation.rst by @jonatron in https://github.com/jazzband/django-debug-toolbar/pull/1648
    • Check if djdt-store-id is in all headers before usage. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1651
    • docs: Fix a few typos by @timgates42 in https://github.com/jazzband/django-debug-toolbar/pull/1652
    • Make Selenium tests pass, hopefully by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1655
    • Add Django 4.1 to classifiers by @hramezani in https://github.com/jazzband/django-debug-toolbar/pull/1656
    • Remove signed_data_view decorator to support url type checking. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1658
    • Upgrade GitHub Actions by @cclauss in https://github.com/jazzband/django-debug-toolbar/pull/1660
    • Fix #1662: Avoid assigning arbitrary attributes to SafeString instances by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1663

    New Contributors

    • @jonatron made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1648
    • @timgates42 made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1652

    Full Changelog: https://github.com/jazzband/django-debug-toolbar/compare/3.5...3.6

    Source code(tar.gz)
    Source code(zip)
  • 3.5(Jun 24, 2022)

    What's Changed

    • Explicit external link, hopefully fixes the docs linting action by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1618
    • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/jazzband/django-debug-toolbar/pull/1617
    • Add the upcoming Django 4.1 to the CI matrix by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1623
    • Remove a couple of archived third-party repos by @cclauss in https://github.com/jazzband/django-debug-toolbar/pull/1622
    • Replace OrderedDict by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1625
    • Fix #1621: Do not crash when encountering unexpected data in the request by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1624
    • Cache panel work by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1626
    • Get PostgreSQL transaction tracking working by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1619
    • Add pyflame to the list of third-party panels by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1628
    • Fix cache panel miss counting by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1629
    • Stacktrace cleanups by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1630
    • Increase minimum coverage percentage to 93% by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1632
    • Stack trace rework by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1631
    • Minor documentation updates by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1634
    • Reimplement HIDE_IN_STACKTRACES machinery by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1635
    • Rework similary/duplicate query grouping by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1636
    • Simplify SQLPanel._queries data structure by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1638
    • Tweak get_stack_trace() API by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1637

    New Contributors

    • @cclauss made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1622

    And thank you @living180 for the plethora of PRs this release.

    Full Changelog: https://github.com/jazzband/django-debug-toolbar/compare/3.4...3.5

    Source code(tar.gz)
    Source code(zip)
  • 3.4(May 3, 2022)

    What's Changed

    • The path may not always be a true path for stacktraces. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1613
    • Add changelog for unpacking error when rendering stacktrace. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1614
    • Rename SQLPanel context var to control SQL access. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1615

    Full Changelog: https://github.com/jazzband/django-debug-toolbar/compare/3.3...3.4

    Source code(tar.gz)
    Source code(zip)
  • 3.3(May 3, 2022)

    What's Changed

    • Drop support for Django 3.1 by @hramezani in https://github.com/jazzband/django-debug-toolbar/pull/1548
    • Drop support for Django 2.2 by @hramezani in https://github.com/jazzband/django-debug-toolbar/pull/1551
    • Added MrBenn Panel to Third Party Panels by @robertispas in https://github.com/jazzband/django-debug-toolbar/pull/1554
    • Add pyupgrade and django-upgrade pre-commit hooks by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1553
    • Documentation fix in installation.rst by @angusholder in https://github.com/jazzband/django-debug-toolbar/pull/1555
    • Don't raise W006 warning when app loader is specified. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1556
    • Remove codecov, solely use coverage. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1542
    • Remove the codecov badge, we're not using codecov anymore by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1557
    • Move settings reset logic to settings module. by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1559
    • Avoid installing middleware if Content-Encoding is set at all by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1560
    • Test middleware not injecting when Content-Encoding is set by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1562
    • Ignore all coverage files from Git by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1563
    • Specify code coverage as a static value. by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1558
    • Fix #1565 Remove Python 3.6 due to EOL by @pauloxnet in https://github.com/jazzband/django-debug-toolbar/pull/1566
    • Implement CacheStatTracker.get_or_set by @francoisfreitag in https://github.com/jazzband/django-debug-toolbar/pull/1570
    • Optimize render_stacktrace() by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1571
    • Remove unnecessary mock dependency by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1572
    • Optimize SQL reformatting by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1574
    • Fix USE_TZ RemovedInDjango50Warning by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1573
    • Fix #1581: Duplicate the 'djdt' app_name to avoid importing the toolbar early by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1582
    • unsigning history forms by @gone in https://github.com/jazzband/django-debug-toolbar/pull/1583
    • adding a green flash to new rows in the history table on refresh by @gone in https://github.com/jazzband/django-debug-toolbar/pull/1578
    • Adding Update on ajax feature by @gone in https://github.com/jazzband/django-debug-toolbar/pull/1577
    • Fix link to pre-commit homepage by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1589
    • Order History panels requests descending chronologically. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1587
    • Single source 'djdt' app name by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1588
    • Various minor documentation fixes by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1592
    • Fix Docker instruction when host IP has more than 1 digit by @RomainGehrig in https://github.com/jazzband/django-debug-toolbar/pull/1594
    • Fix sql recording for async views by @bellini666 in https://github.com/jazzband/django-debug-toolbar/pull/1585
    • Preserve logs that LoggingPanel would previously overwrite by @riwatt in https://github.com/jazzband/django-debug-toolbar/pull/1603
    • Fix and improve .assertValidHTML() test method by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1597

    New Contributors

    • @robertispas made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1554
    • @angusholder made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1555
    • @RomainGehrig made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1594
    • @bellini666 made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1585
    • @riwatt made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1603

    Full Changelog: https://github.com/jazzband/django-debug-toolbar/compare/3.2.4...3.3

    Source code(tar.gz)
    Source code(zip)
  • 3.2.4(Dec 15, 2021)

    What's Changed

    • Revert PR 1426 - PostGIS param stripping. This was removing leading and trailing characters from string typed parameters for postgres applications.

    Full Changelog: https://github.com/jazzband/django-debug-toolbar/compare/3.2.3...3.2.4

    Source code(tar.gz)
    Source code(zip)
  • 3.2.3(Dec 12, 2021)

    What's Changed

    • Update translations and revert xgettext aliasing. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1494
    • Utilize pre-commit to help devs follow style guidelines by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1495
    • Changed cache monkey-patching for Django 3.2+ by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1497
    • Add check and docs for TEMPLATES APP_DIRS=False. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1498
    • Update tox and github actions. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1500
    • Possibly fix an infinite recursion crash by avoid str() inside repr() by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1507
    • Add Django 4.0a1 to tox.ini by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1508
    • Fix transifex link (net -> com) by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1510
    • Add support for Python 3.10 by @joshuadavidthomas in https://github.com/jazzband/django-debug-toolbar/pull/1511
    • Additional readme warning when using docker by @daniel-butler in https://github.com/jazzband/django-debug-toolbar/pull/1294
    • Fix SQL selected / SQL explain for gis queries by @jieter in https://github.com/jazzband/django-debug-toolbar/pull/1426
    • Allow using ProfilingPanel as non last panel by @noamkush in https://github.com/jazzband/django-debug-toolbar/pull/1299
    • Update tox.ini by @auvipy in https://github.com/jazzband/django-debug-toolbar/pull/1519
    • Solve spelling mistake in documentation installation page by @mahbd in https://github.com/jazzband/django-debug-toolbar/pull/1520
    • Add Python 3.10 test pipeline for Django 3.2 by @hramezani in https://github.com/jazzband/django-debug-toolbar/pull/1521
    • Run CI tests weekly. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1523
    • Fix test_param_conversion for Django 4.1 and mysql by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1526
    • Remove settings import from install instructions. by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1528
    • Add a big warning regarding the security implications of changing SHOW_TOOLBAR_CALLBACK by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1530
    • Update Django 4.0 version in tox.ini to RC1 by @pauloxnet in https://github.com/jazzband/django-debug-toolbar/pull/1531
    • Improve installation instructions by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1533
    • Fix settings docs by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1534
    • Use only pre-commit for style linters and fixers by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1535
    • Update translations for a bunch of languages. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1525
    • Update DE locale by @Baltrunas in https://github.com/jazzband/django-debug-toolbar/pull/1505
    • Discourage insecure SHOW_TOOLBAR_CALLBACK values by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1539
    • Create urls module and remove import package from docs. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1537

    New Contributors

    • @joshuadavidthomas made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1511
    • @pre-commit-ci made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1512
    • @jazzband-bot made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1516
    • @daniel-butler made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1294
    • @noamkush made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1299
    • @auvipy made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1519
    • @mahbd made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1520
    • @pauloxnet made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1531
    • @Baltrunas made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1505

    Full Changelog: https://github.com/jazzband/django-debug-toolbar/compare/3.2.2...3.2.3

    Source code(tar.gz)
    Source code(zip)
  • 3.2.2(Oct 26, 2021)

    What's Changed

    • Use current_thread instead of currentThread method that was deprecated in Python 3.10 by @tirkarthi in https://github.com/jazzband/django-debug-toolbar/pull/1465
    • Drop support for Django 3.0. by @hramezani in https://github.com/jazzband/django-debug-toolbar/pull/1461
    • Support JS events when loading a panel. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1441
    • Use twine to check generated package and readme by @francoisfreitag in https://github.com/jazzband/django-debug-toolbar/pull/1468
    • Use default app config discovery by @francoisfreitag in https://github.com/jazzband/django-debug-toolbar/pull/1467
    • Show template context on included templates by @gilmrjc in https://github.com/jazzband/django-debug-toolbar/pull/1436
    • Keep the toolbar handle in bounds by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1472
    • Fixes #1239 by @saemideluxe in https://github.com/jazzband/django-debug-toolbar/pull/1475
    • Extract common base cursor wrapper class by @jayaddison in https://github.com/jazzband/django-debug-toolbar/pull/1479
    • updated Slovak translation by @eriktelepovsky in https://github.com/jazzband/django-debug-toolbar/pull/1480
    • Fixes and improvements to history views by @ashwch in https://github.com/jazzband/django-debug-toolbar/pull/1484
    • Add test coverage to ensure that SQL tracker wrappers are applied only once to database cursors by @jayaddison in https://github.com/jazzband/django-debug-toolbar/pull/1478
    • Correct RENDER_PANELS functionality and when enabled disable HistoryPanel by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1440
    • Add: response status to HistoryPanel by @psacawa in https://github.com/jazzband/django-debug-toolbar/pull/1490
    • Support for request-level urlconf overrides by @NielkS in https://github.com/jazzband/django-debug-toolbar/pull/1488
    • Version 3.2.2 by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1492

    New Contributors

    • @tirkarthi made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1465
    • @saemideluxe made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1475
    • @jayaddison made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1479
    • @eriktelepovsky made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1480
    • @ashwch made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1484
    • @psacawa made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1490
    • @NielkS made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1488

    Full Changelog: https://github.com/jazzband/django-debug-toolbar/compare/3.2.1...3.2.2

    Source code(tar.gz)
    Source code(zip)
The definitive testing tool for Python. Born under the banner of Behavior Driven Development (BDD).

mamba: the definitive test runner for Python mamba is the definitive test runner for Python. Born under the banner of behavior-driven development. Ins

Néstor Salceda 502 Dec 30, 2022
This project demonstrates selenium's ability to extract files from a website.

This project demonstrates selenium's ability to extract files from a website. I've added the challenge of connecting over TOR. This package also includes a personal archive site built in NodeJS and A

2 Jan 16, 2022
HTTP client mocking tool for Python - inspired by Fakeweb for Ruby

HTTPretty 1.0.5 HTTP Client mocking tool for Python created by Gabriel Falcão . It provides a full fake TCP socket module. Inspired by FakeWeb Github

Gabriel Falcão 2k Jan 06, 2023
Python Projects - Few Python projects with Testing using Pytest

Python_Projects Few Python projects : Fast_API_Docker_PyTest- Just a simple auto

Tal Mogendorff 1 Jan 22, 2022
Automates hiketop+ crystal earning using python and appium

hikepy Works on poco x3 idk about your device deponds on resolution Prerquests Android sdk java adb Setup Go to https://appium.io/ Download and instal

4 Aug 26, 2022
DUCKSPLOIT - Windows Hacking FrameWork using Reverse Shell

Ducksploit Install Ducksploit Hacker setup raspberry pico Download https://githu

2 Jan 31, 2022
A rewrite of Python's builtin doctest module (with pytest plugin integration) but without all the weirdness

The xdoctest package is a re-write of Python's builtin doctest module. It replaces the old regex-based parser with a new abstract-syntax-tree based pa

Jon Crall 174 Dec 16, 2022
Automatically mock your HTTP interactions to simplify and speed up testing

VCR.py 📼 This is a Python version of Ruby's VCR library. Source code https://github.com/kevin1024/vcrpy Documentation https://vcrpy.readthedocs.io/ R

Kevin McCarthy 2.3k Jan 01, 2023
Selenium Manager

SeleniumManager I'm fed up with always having to struggle unnecessarily when I have to use Selenium on a new machine, so I made this little python mod

Victor Vague 1 Dec 24, 2021
Python wrapper of Android uiautomator test tool.

uiautomator This module is a Python wrapper of Android uiautomator testing framework. It works on Android 4.1+ (API Level 16~30) simply with Android d

xiaocong 1.9k Dec 30, 2022
User-oriented Web UI browser tests in Python

Selene - User-oriented Web UI browser tests in Python (Selenide port) Main features: User-oriented API for Selenium Webdriver (code like speak common

Iakiv Kramarenko 575 Jan 02, 2023
MultiPy lets you conveniently keep track of your python scripts for personal use or showcase by loading and grouping them into categories. It allows you to either run each script individually or together with just one click.

MultiPy About MultiPy is a graphical user interface built using Dear PyGui Python GUI Framework that lets you conveniently keep track of your python s

56 Oct 29, 2022
RAT-el is an open source penetration test tool that allows you to take control of a windows machine.

To prevent RATel from being detected by antivirus, please do not upload the payload to TOTAL VIRUS. Each month I will test myself if the payload gets detected by antivirus. So you’ll have a photo eve

218 Dec 16, 2022
A Library for Working with Sauce Labs

Robotframework - Sauce Labs Plugin This is a plugin for the SeleniumLibrary to help with using Sauce Labs. This library is a plugin extension of the S

joshin4colours 6 Oct 12, 2021
Doing dirty (but extremely useful) things with equals.

Doing dirty (but extremely useful) things with equals. Documentation: dirty-equals.helpmanual.io Source Code: github.com/samuelcolvin/dirty-equals dir

Samuel Colvin 602 Jan 05, 2023
Tools for test driven data-wrangling and data validation.

datatest: Test driven data-wrangling and data validation Datatest helps to speed up and formalize data-wrangling and data validation tasks. It impleme

269 Dec 16, 2022
This package is a python library with tools for the Molecular Simulation - Software Gromos.

This package is a python library with tools for the Molecular Simulation - Software Gromos. It allows you to easily set up, manage and analyze simulations in python.

14 Sep 28, 2022
To automate the generation and validation tests of COSE/CBOR Codes and it's base45/2D Code representations

To automate the generation and validation tests of COSE/CBOR Codes and it's base45/2D Code representations, a lot of data has to be collected to ensure the variance of the tests. This respository was

160 Jul 25, 2022
Fi - A simple Python 3.9+ command-line application for managing Fidelity portfolios

fi fi is a simple Python 3.9+ command-line application for managing Fidelity por

Darik Harter 2 Feb 26, 2022
fsociety Hacking Tools Pack – A Penetration Testing Framework

Fsociety Hacking Tools Pack A Penetration Testing Framework, you will have every script that a hacker needs. Works with Python 2. For a Python 3 versi

Manisso 8.2k Jan 03, 2023