Timeline mode - see and zoom into an interactive linear timeline!
HTML mode now has interactive options, rather than needing to set the upfront.
Streamlined the design of the HTML page header.
HTML Call stack view supports arrow key navigation.
The way ‘library’ code is detected has been changed. Previously, if the string ‘/lib/’ occurred in the file path, that was considered library code (and collapsed by default). Now, pyinstrument captures the paths of the Python install and any active virtualenv/conda env at profile time. Files that are stored there are considered library. That should give fewer false positives.
Calls to profiler.start() can now pass a target_description parameter, which is displayed in the profile readout.
Check my blog post for more info on the new features.
v4.7.3
Fix a bug introduced in 4.7.0 which would cause the profiler to crash when profiling code with unusual locals, notably some pytest extensions (#332)
Fix a bug that causes pyinstrument to fail to import packages like glom on Python 3.12 or later, which mutate the locals() dict. (#336)
Fix a bug that caused a UnicodeDecodeError on some platforms (#330)
Fix a DivideByZero error that occurs in some situations (#335)
The IPython integration takes greater step to ensure a clean profile output, by ensuring internal frames are trimmed before printing. (#321)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps pyinstrument from 4.7.2 to 5.0.0.
Release notes
Sourced from pyinstrument's releases.
Commits
e362034
Bump version: v5.0.0e5ad9c6
Add timeline screenshot92464eb
Merge pull request #326 from joerick/html-featuresa51f692
Update the versions of artifact actions0cfb26a
Remove python 3.13 special cases187ed13
Some visual improvements and fixes for the call stack viewcbbab96
Add remove_useless_groups_processor to the HTML frontend, which removes group...d9a084b
Console renderer: dont bother printing groups with 0 or 1 hidden frames17ce4c4
New screenshotf088741
Better scrolling logicDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show