A panel for django-debug-toolbar that integrates information from line_profiler
Project description
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.
This package provides a panel that incorporates output from line_profiler
This panel will only function with django_debug_toolbar>=1.0, before that it’s functionality was contained in the debug_toolbar.panels.profiling.ProfilingPanel.
This Django Debug Toolbar panel is released under the BSD license, like Django and the Django Debug Toolbar. If you like it, please consider contributing!
The Django Debug Toolbar was originally created by Rob Hudson in August 2008 and was further developed by many contributors.
Installation
To install the line_profiler panel, first install this package with pip install django-debug-toolbar-line-profiling, then add debug_toolbar_line_profiler to the INSTALLED_APPS:
INSTALLED_APPS = ( ... 'debug_toolbar_line_profiler', )
and add the panel to DEBUG_TOOLBAR_PANELS:
DEBUG_TOOLBAR_PANELS = ( ... 'debug_toolbar_line_profiler.panel.ProfilingPanel', )
Configuration
By default, the panel will profile your view function. If you use class based views the panel will profile all functions on the class that don’t start with _. If you want additional code to be profiled, add the @profile_additional decorator like so:
from debug_toolbar_line_profiler import profile_additional from boto.s3.connection import S3Connection ... @profile_additional(S3Connection.make_request) def your_view_code(*args, **kwargs): ...
Signals
There is also a signal (debug_toolbar_line_profiler.signals.profiler_setup) that you can attach to for integrating class based views like django rest framework.
Here is an example:
from rest_framework.viewsets import ViewSet from rest_framework.response import Response from debug_toolbar_line_profiler import signals class AViewSet(ViewSet): def list(self, request): return Response([]) def retrieve(self, request, pk=None): return Response({}) def register_profile_views(sender, profiler, **kwargs): profiler.add_function(AViewSet.list) profiler.add_function(AViewSet.retrieve) signals.profiler_setup.connect(register_profile_views, dispatch_uid='register_profile_views')
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django_debug_toolbar_line_profiling-0.8.1.tar.gz
.
File metadata
- Download URL: django_debug_toolbar_line_profiling-0.8.1.tar.gz
- Upload date:
- Size: 7.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f10ebb8c333c125154a0402bcca039ce4c4cf13d007e7557f2a374ef715dbc26 |
|
MD5 | 76fd1222939395b7d7f8f2a2c0f5590d |
|
BLAKE2b-256 | 2296bb951911dd5d887da4ba6369d442f4aced806876e5bcb0125736cdfcd2c5 |
File details
Details for the file django_debug_toolbar_line_profiling-0.8.1-py3-none-any.whl
.
File metadata
- Download URL: django_debug_toolbar_line_profiling-0.8.1-py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ece552d586bc8492e39b83bdf4b83f47efc90024e8d294afc7fe2b5b08e72c70 |
|
MD5 | 5463ce345efe911d68bbf14ba866a750 |
|
BLAKE2b-256 | 345b0d21dcc74d8e89f2512dc2832d40146735ddf8281a85a03168e173dc82e1 |