In Python 3.12 and above, you can try an experimental core based on the new sys.monitoring <python:sys.monitoring> module by defining a COVERAGE_CORE=sysmon environment variable. This should be faster for line coverage, but not for branch coverage, and plugins and dynamic contexts are not yet supported with it. I am very interested to hear how it works (or doesn't!) for you.
Fix: the change for multi-line signature exclusions in 7.3.3 broke other forms of nested clauses being excluded properly. This is now fixed, closing issue 1713.
Fix: in the HTML report, selecting code for copying won't select the line numbers also. Thanks, Robert Harris.
Fix: XML reports could fail with a TypeError if files had numeric components that were duplicates except for leading zeroes, like file1.py and file001.py. Fixes issue 1709.
The coverage annotate command used to announce that it would be removed in a future version. Enough people got in touch to say that they use it, so it will stay. Don't expect it to keep up with other new features though.
Added new debug options <cmd_run_debug>:
pytest writes the pytest test name into the debug output.
dataop2 writes the full data being added to CoverageData objects.
The coverage lcov command ignored the [report] exclude_lines and [report] exclude_also settings (issue 1684). This is now fixed, thanks Jacqueline Lee.
Sometimes SQLite will create journal files alongside the coverage.py database files. These are ephemeral, but could be mistakenly included when combining data files. Now they are always ignored, fixing issue 1605. Thanks to Brad Smith for suggesting fixes and providing detailed debugging.
On Python 3.12+, we now disable SQLite writing journal files, which should be a little faster.
The new 3.12 soft keyword type is properly bolded in HTML reports.
Removed the "fullcoverage" feature used by CPython to measure the coverage of early-imported standard library modules. CPython stopped using it in 2021, and it stopped working completely in Python 3.13.
The semantics of stars in file patterns has been clarified in the docs. A leading or trailing star matches any number of path components, like a double star would. This is different than the behavior of a star in the middle of a pattern. This discrepancy was identified by Sviatoslav Sydorenko, who provided patient detailed diagnosis and graciously agreed to a pragmatic resolution.
The API docs were missing from the last version. They are now restored.
Added a .Coverage.collect context manager to start and stop coverage data collection.
Dropped support for Python 3.7.
Fix: in unusual circumstances, SQLite cannot be set to asynchronous mode. Coverage.py would fail with the error Safety level may not be changed inside a transaction. This is now avoided, closing issue 1646. Thanks to Michael Bell for the detailed bug report.
In Python 3.12 and above, you can try an experimental core based on the new
:mod:sys.monitoring <python:sys.monitoring> module by defining a
COVERAGE_CORE=sysmon environment variable. This should be faster for
line coverage, but not for branch coverage, and plugins and dynamic contexts
are not yet supported with it. I am very interested to hear how it works (or
doesn't!) for you.
.. _changes_7-3-4:
Version 7.3.4 — 2023-12-20
Fix: the change for multi-line signature exclusions in 7.3.3 broke other
forms of nested clauses being excluded properly. This is now fixed, closing
issue 1713_.
Fix: in the HTML report, selecting code for copying won't select the line
numbers also. Thanks, Robert Harris <pull 1717_>_.
Fix: function definitions with multi-line signatures can now be excluded by
matching any of the lines, closing issue 684. Thanks, Jan Rusak, Maciej Kowalczyk and Joanna Ejzel <pull 1705_>.
Fix: XML reports could fail with a TypeError if files had numeric components
that were duplicates except for leading zeroes, like file1.py and
file001.py. Fixes issue 1709_.
The coverage annotate command used to announce that it would be removed
in a future version. Enough people got in touch to say that they use it, so
it will stay. Don't expect it to keep up with other new features though.
Added new :ref:debug options <cmd_run_debug>:
pytest writes the pytest test name into the debug output.
dataop2 writes the full data being added to CoverageData objects.
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 coverage[toml] from 7.2.5 to 7.4.0.
Release notes
Sourced from coverage[toml]'s releases.
... (truncated)
Changelog
Sourced from coverage[toml]'s changelog.
... (truncated)
Commits
23a015c
docs: sample HTML for 7.4.04f020d4
docs: prep for 7.4.05bb88c3
build: temporarily disable metacov, it's flaky now with sysmon support3879b97
docs: mention sys.monitoring support9a84eeb
style: environment variable names should be monospace7882b8c
refactor: clean lint and mypy for sysmon et al5dad1a1
test: test which core we getb7e0c34
fix: don't default to sysmon yete5babcf
docs: explain the COVERAGE_*_CORE testing variablesebdc277
fix: usecore
more consistently thantracer
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