You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
If subprocesses spawned yet more subprocesses simultaneously, some coverage
could be missed. This is now fixed, closing issue 2024_.
If subprocesses were created in other directories, their data files were
stranded there and not combined into the totals, as described in issue 2025_. This is now fixed.
On Windows (or maybe only some Windows?) the patch would fail with a ModuleNotFound error trying to import coverage. This is now fixed,
closing issue 2022_.
Originally only options set in the coverage configuration file would apply
to subprocesses. Options set on the coverage run command line (such as --branch) wouldn't be communicated to the subprocesses. This could
lead to combining failures, as described in issue 2021_. Now the entire
configuration is used in subprocesses, regardless of its origin.
Added debug=patch to help diagnose problems.
Fix: really close all SQLite databases, even in-memory ones. Closes issue 2017_.
Fix: some code with NOP bytecodes could report missing branches that are
actually executed. This is now fixed, closing issue 1999_. Python 3.9
still shows the problem.
Fix: the exclusion for if TYPE_CHECKING: was wrong: it marked the branch
as partial, but it should have been a line exclusion so the entire clause
would be excluded. Improves issue 831_.
Fix: changed where .pth files are written for patch = subprocess, closing issue 2006_.
A new configuration option: ":ref:config_run_patch" specifies named patches
to work around some limitations in coverage measurement. These patches are
available:
patch = _exit lets coverage save its data even when :func:os._exit() <python:os._exit> is used to abruptly end the process. This closes
long-standing issue 310_ as well as its duplicates: issue 312, issue 1673, issue 1845, and issue 1941.
patch = subprocess measures coverage in Python subprocesses created
with :mod:subprocess, :func:os.system, or one of the :func:execv <python:os.execl> or :func:spawnv <python:os.spawnl> family of
functions. Closes old issue 367_ and duplicate issue 378_.
patch = execv adjusts the :func:execv <python:os.execl> family of
functions to save coverage data before ending the current program and
starting the next. Not available on Windows. Closes issue 43_ after 15
years!
The HTML report now dimly colors subsequent lines in multi-line statements.
They used to have no color. This gives a better indication of the amount of
code missing in the report. Closes issue 1308_.
Two new exclusion patterns are part of the defaults: ... is automatically
excluded as a line and if TYPE_CHECKING: is excluded as a branch. Closes issue 831_.
A new command-line option: --save-signal=USR1 specifies a signal that
coverage.py will listen for. When the signal is sent, the coverage data will
be saved. This makes it possible to save data from within long-running
processes. Thanks, Arkady Gilinsky <pull 1998_>_.
A new configuration option: ":ref:config_report_partial_also" is a list of
regexes to add as pragmas for partial branches. This parallels the
":ref:config_report_exclude_also" setting for adding line exclusion
patterns.
A few file path configuration settings didn't allow for tilde expansion:
:ref:config_json_output, :ref:config_lcov_output and
:ref:config_run_debug_file. This is now fixed.
Wheels are included for 3.14 now that 3.14 rc1 is available.
We no longer ship a PyPy-specific wheel. PyPy will install the pure-Python
wheel. Closes issue 2001_.
In the very unusual situation of not having a current frame, coverage no
longer crashes when using the sysmon core, fixing issue 2005_.
The "no-ctracer" warning is not issued for Python pre-release versions.
Coverage doesn't ship compiled wheels for those versions, so this was far too
noisy.
On Python 3.14+, the "sysmon" core is now the default if it's supported for
your configuration. Plugins and dynamic contexts are still not supported
with it.
Added a [run] core configuration setting to specify the measurement core,
which was previously only available through the COVERAGE_CORE environment
variable. Finishes issue 1746_.
Fixed incorrect rendering of f-strings with doubled braces, closing issue 1980_.
If the C tracer core can't be imported, a warning ("no-ctracer") is issued
with the reason.
The C tracer core extension module now conforms to PEP 489, closing issue 1977. Thanks, Adam Turner <pull 1978_>_.
Fixed a "ValueError: min() arg is an empty sequence" error caused by strange
empty modules, found by oss-fuzz_.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
7.8.2
->7.10.3
Release Notes
nedbat/coveragepy (coverage)
v7.10.3
Compare Source
Fixes for
patch = subprocess
:If subprocesses spawned yet more subprocesses simultaneously, some coverage
could be missed. This is now fixed, closing
issue 2024
_.If subprocesses were created in other directories, their data files were
stranded there and not combined into the totals, as described in
issue 2025
_. This is now fixed.On Windows (or maybe only some Windows?) the patch would fail with a
ModuleNotFound
error trying to import coverage. This is now fixed,closing
issue 2022
_.Originally only options set in the coverage configuration file would apply
to subprocesses. Options set on the
coverage run
command line (such as--branch
) wouldn't be communicated to the subprocesses. This couldlead to combining failures, as described in
issue 2021
_. Now the entireconfiguration is used in subprocesses, regardless of its origin.
Added
debug=patch
to help diagnose problems.Fix: really close all SQLite databases, even in-memory ones. Closes
issue 2017
_... _issue 2017:https://github.com/nedbat/coveragepy/issues/20177
.. _issue 2021https://github.com/nedbat/coveragepy/issues/202121
.. _issue 202https://github.com/nedbat/coveragepy/issues/2022022
.. _issue 20https://github.com/nedbat/coveragepy/issues/20242024
.. _issue 2https://github.com/nedbat/coveragepy/issues/2025/2025
.. _changes_7-10-2:
v7.10.2
Compare Source
actually executed. This is now fixed, closing
issue 1999
_. Python 3.9still shows the problem.
.. _issue 1999:https://github.com/nedbat/coveragepy/issues/19999
.. _changes_7-10-1:
v7.10.1
Compare Source
Fix: the exclusion for
if TYPE_CHECKING:
was wrong: it marked the branchas partial, but it should have been a line exclusion so the entire clause
would be excluded. Improves
issue 831
_.Fix: changed where .pth files are written for
patch = subprocess
, closingissue 2006
_... _issue 2006:https://github.com/nedbat/coveragepy/issues/20066
.. _changes_7-10-0:
v7.10.0
Compare Source
A new configuration option: ":ref:
config_run_patch
" specifies named patchesto work around some limitations in coverage measurement. These patches are
available:
patch = _exit
lets coverage save its data even when :func:os._exit() <python:os._exit>
is used to abruptly end the process. This closeslong-standing
issue 310
_ as well as its duplicates:issue 312
,issue 1673
,issue 1845
, andissue 1941
.patch = subprocess
measures coverage in Python subprocesses createdwith :mod:
subprocess
, :func:os.system
, or one of the :func:execv <python:os.execl>
or :func:spawnv <python:os.spawnl>
family offunctions. Closes old
issue 367
_ and duplicateissue 378
_.patch = execv
adjusts the :func:execv <python:os.execl>
family offunctions to save coverage data before ending the current program and
starting the next. Not available on Windows. Closes
issue 43
_ after 15years!
The HTML report now dimly colors subsequent lines in multi-line statements.
They used to have no color. This gives a better indication of the amount of
code missing in the report. Closes
issue 1308
_.Two new exclusion patterns are part of the defaults:
...
is automaticallyexcluded as a line and
if TYPE_CHECKING:
is excluded as a branch. Closesissue 831
_.A new command-line option:
--save-signal=USR1
specifies a signal thatcoverage.py will listen for. When the signal is sent, the coverage data will
be saved. This makes it possible to save data from within long-running
processes. Thanks,
Arkady Gilinsky <pull 1998_>
_.A new configuration option: ":ref:
config_report_partial_also
" is a list ofregexes to add as pragmas for partial branches. This parallels the
":ref:
config_report_exclude_also
" setting for adding line exclusionpatterns.
A few file path configuration settings didn't allow for tilde expansion:
:ref:
config_json_output
, :ref:config_lcov_output
and:ref:
config_run_debug_file
. This is now fixed.Wheels are included for 3.14 now that 3.14 rc1 is available.
We no longer ship a PyPy-specific wheel. PyPy will install the pure-Python
wheel. Closes
issue 2001
_.In the very unusual situation of not having a current frame, coverage no
longer crashes when using the sysmon core, fixing
issue 2005
_... _issue 43:https://github.com/nedbat/coveragepy/issues/433
.. _issue 310https://github.com/nedbat/coveragepy/issues/31010
.. _issue 31https://github.com/nedbat/coveragepy/issues/312312
.. _issue 3https://github.com/nedbat/coveragepy/issues/367/367
.. _issue https://github.com/nedbat/coveragepy/issues/378s/378
.. _issuehttps://github.com/nedbat/coveragepy/issues/831es/831
.. _issuehttps://github.com/nedbat/coveragepy/issues/1308es/1308
.. _issuhttps://github.com/nedbat/coveragepy/issues/1673ues/1673
.. _isshttps://github.com/nedbat/coveragepy/issues/1845sues/1845
.. _ishttps://github.com/nedbat/coveragepy/issues/1941ssues/1941
.. _https://github.com/nedbat/coveragepy/pull/1998y/pull/1998
.. _https://github.com/nedbat/coveragepy/issues/2001/issues/2001
.. [https://github.com/nedbat/coveragepy/issues/2005](https://redirect.github.com/nedbat/coveragepy/issues/2005)y/issues/2005
.. _changes_7-9-2:
v7.9.2
Compare Source
Fix: complex conditionals within a line might cause a KeyError when using
sys.monitoring, as reported in
issue 1991
_. This is now fixed.Fix: we can now measure coverage for code in Python archive (.par) files.
Thanks,
Itamer Oren <pull 1984_>
_... _pull 1984:https://github.com/nedbat/coveragepy/pull/19844
.. _issue 1991https://github.com/nedbat/coveragepy/issues/199191
.. _changes_7-9-1:
v7.9.1
Compare Source
The "no-ctracer" warning is not issued for Python pre-release versions.
Coverage doesn't ship compiled wheels for those versions, so this was far too
noisy.
On Python 3.14+, the "sysmon" core is now the default if it's supported for
your configuration. Plugins and dynamic contexts are still not supported
with it.
.. _changes_7-9-0:
v7.9.0
Compare Source
Added a
[run] core
configuration setting to specify the measurement core,which was previously only available through the COVERAGE_CORE environment
variable. Finishes
issue 1746
_.Fixed incorrect rendering of f-strings with doubled braces, closing
issue 1980
_.If the C tracer core can't be imported, a warning ("no-ctracer") is issued
with the reason.
The C tracer core extension module now conforms to
PEP 489
, closingissue 1977
. Thanks,Adam Turner <pull 1978_>
_.Fixed a "ValueError: min() arg is an empty sequence" error caused by strange
empty modules, found by
oss-fuzz
_... _issue 1746:https://github.com/nedbat/coveragepy/issues/17466
.. _issue 1977https://github.com/nedbat/coveragepy/issues/197777
.. _pull 197https://github.com/nedbat/coveragepy/pull/1978978
.. _issue 19https://github.com/nedbat/coveragepy/issues/19801980
.. _PEP 489: https://peps.python.org/pep-0489
.. _oss-fuzz: https://google.github.io/oss-fuzz/
.. _changes_7-8-2:
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.