Aggregate profiling for WSGI requests
This package provides a WSGI middleware component which aggregates profiling data across all requests to a WSGI application. It provides a minimal web GUI for viewing profiling data.
Install using setuptools, e.g. (within a virtualenv):
$ easy_install repoze.profile
or via pip:
$ pip install repoze.profile
For details on using the various components, please see the documentation in docs/index.rst. A rendered version of that documentation is also available online:
Please report bugs in this package to
Obtaining Source Code
Download development or tagged versions of the software by visiting:
- Add support for Python 3.6 and 3.7.
- Drop support for Python 3.3.
- Add decorator for profiling individual functions.
- Add support for Python 3.5.
- Drop support for Python 2.6 and Python 3.2.
- Add support for testing on Travis-CI.
- Add support for Python 3.4.
- No changes since 2.0b1.
- Add support for building docs / exercising doctest snippets under tox.
- Add setup.py docs alias (installs Sphinx).
- Note support for PyPy.
- Add support for Python 3.3.
- Drop support for Python 2.4 / 2.5.
- This release is the last which will maintain support for Python 2.4 / Python 2.5.
- Added an unwind configuration option. If unwind is True, the iterable returned by the downstream application will be consumed and turned into a list during profiling. This allows you to profile applications which return generators or other iterables that do “real work”.
- Applications which return generators that do “real work” will now need to supply the unwind flag to configuration to see that work in profile output.
- Added an option to filter profile output by filename. Thanks to Shish for the patch.
- Put a lock around “index” method in order to prevent exceptions when trying to view profile data as it’s being generated. Closes http://bugs.repoze.org/issue168.
- Removed these dependencies: meld3, paste.
- A new paste.filter_app_factory entry point has been added named main which points to the profiler. This allows for the simplified spelling egg:repoze.profile in paste.ini files when referring to the profile middleware (instead of the older, more verbose egg:repoze.profile#profiler. The older alias continues to work as well.
- The new canonical import location for the profiling middleware is repoze.profile.ProfileMiddleware. Older imports continue to work.
- Remove ez_setup.py.
- Python 3.2 compatibility.
- Converted documentation to Sphinx.
- Ensure we consume generators returned by the wrapped application. Fixes http://bugs.repoze.org/issue169
- 100% test coverage.
- Get rid of spurious measurements of testing scaffolding in profile output (show no calls that are inside r.profile itself).
- Relax the pinned requirement on elementtree < 1.2.7.
- Made the pyprof2calltree dependency conditional on the Python version. This package depends on Python >= 2.5.
- Added optional support for directly writing out the profiling data in the KCacheGrind format.
- Avoid a dependency on elementtree when used with Python 2.5 and later. In those Python versions we used the built-in xml.etree support.
- discard_first_request = true did not work!
- Added tests for discard_first_request and flush_at_shutdown.
- Converted CHANGES.txt to ReST.
- Bump ez_setup.py version.
- discard_first_request = false did not work.
- Clearing the profile data from the user interface did not properly
- discard profiler state.
- Initial PyPI release.
- Added compatibility with Python 2.5.
- Made setup.py depend explicitly on ElementTree 1.2.6: meld needs it but meld isn’t a setuptools package.
- Added a browser UI.
- Added a knob to control discard at shutdown.
- Initial release.
Release history Release notifications
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size & hash SHA256 hash help||File type||Python version||Upload date|
|repoze.profile-2.3-py3-none-any.whl (14.4 kB) Copy SHA256 hash SHA256||Wheel||py3|
|repoze.profile-2.3.tar.gz (141.3 kB) Copy SHA256 hash SHA256||Source||None|