- update to 7.9.2:
* 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.
* 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.
* Fixed a "ValueError: min() arg is an empty sequence" error
caused by strange empty modules, found by oss-fuzz.
* Wheels are provided for Windows ARM64 on Python 3.11, 3.12,
and 3.13. Thanks, Finn Womack.
* A number of EncodingWarnings were fixed that could appear if
you've enabled PYTHONWARNDEFAULTENCODING, fixing issue 1966.
Thanks, Henry Schreiner.
* Fixed a race condition when using sys.monitoring with free-
threading Python, closing issue 1970.
OBS-URL: https://build.opensuse.org/request/show/1294221
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-coverage?expand=0&rev=68
* 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.
* 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.
* Fixed a "ValueError: min() arg is an empty sequence" error
caused by strange empty modules, found by oss-fuzz.
* Wheels are provided for Windows ARM64 on Python 3.11, 3.12,
and 3.13. Thanks, Finn Womack.
* A number of EncodingWarnings were fixed that could appear if
you've enabled PYTHONWARNDEFAULTENCODING, fixing issue 1966.
Thanks, Henry Schreiner.
* Fixed a race condition when using sys.monitoring with free-
threading Python, closing issue 1970.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-coverage?expand=0&rev=143
- update to 7.7.1
* The Coverage object has a new method, .Coverage.branch_stats
for getting simple branch information for a module.
* The Coverage constructor<.Coverage> now has a plugins parameter
for passing in plugin objects directly.
* Many constant tests in if statements are now recognized as
being optimized away.
* The experimental sys.monitoring support now works for branch
coverage if you are using Python 3.14.0 alpha 6 or newer.
* A few small tweaks to the sys.monitoring support for Python 3.14.
Please test!
- Add setuptools77.patch to fix tests with setuptools 77
OBS-URL: https://build.opensuse.org/request/show/1256425
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-coverage?expand=0&rev=139
- update to 7.6.10:
* Fix: some descriptions of missing branches in HTML and LCOV
reports were incorrect when multi-line statements were
involved (issue 1874 and issue 1875). These are now fixed.
* Fix: Python 3.14 defers evaluation of annotations by moving
them into separate code objects. That code is rarely
executed, so coverage.py would mark them as missing, as
reported in issue 1908. Now they are ignored by coverage
automatically.
* Fixed an obscure and mysterious problem on PyPy 3.10
seemingly involving mocks, imports, and trace functions:
issue 1902. To be honest, I don't understand the problem or
the solution, but git bisect helped find it, and now it's
fixed.
* Docs: re-wrote the :ref:`subprocess` page to put
multiprocessing first and to highlight the correct use of
:class:`multiprocessing.Pool
<python:multiprocessing.pool.Pool>`.
* Fix: Tomas Uribe fixed a performance problem in the XML
report. Large code bases should produce XML reports much
faster now.
* Fix: the LCOV report code assumed that a branch line that
took no branches meant that the entire line was unexecuted.
This isn't true in a few cases: the line might always raise
an exception, or might have been optimized away. Fixes issue
1896.
* Fix: similarly, the HTML report will now explain that a line
that jumps to none of its expected destinations must have
always raised an exception. Previously, it would say
something nonsensical like, "line 4 didn't jump to line 5
OBS-URL: https://build.opensuse.org/request/show/1234571
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-coverage?expand=0&rev=66
* Fix: some descriptions of missing branches in HTML and LCOV
reports were incorrect when multi-line statements were
involved (issue 1874 and issue 1875). These are now fixed.
* Fix: Python 3.14 defers evaluation of annotations by moving
them into separate code objects. That code is rarely
executed, so coverage.py would mark them as missing, as
reported in issue 1908. Now they are ignored by coverage
automatically.
* Fixed an obscure and mysterious problem on PyPy 3.10
seemingly involving mocks, imports, and trace functions:
issue 1902. To be honest, I don't understand the problem or
the solution, but git bisect helped find it, and now it's
fixed.
* Docs: re-wrote the :ref:`subprocess` page to put
multiprocessing first and to highlight the correct use of
:class:`multiprocessing.Pool
<python:multiprocessing.pool.Pool>`.
* Fix: Tomas Uribe fixed a performance problem in the XML
report. Large code bases should produce XML reports much
faster now.
* Fix: the LCOV report code assumed that a branch line that
took no branches meant that the entire line was unexecuted.
This isn't true in a few cases: the line might always raise
an exception, or might have been optimized away. Fixes issue
1896.
* Fix: similarly, the HTML report will now explain that a line
that jumps to none of its expected destinations must have
always raised an exception. Previously, it would say
something nonsensical like, "line 4 didn't jump to line 5
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-coverage?expand=0&rev=137
- update to 7.6.4:
* fix: multi-line with statements could cause contained
branches to be incorrectly marked as missing (issue 1880).
This is now fixed.
* Fix: nested context managers could incorrectly be analyzed to
flag a missing branch on the last context manager, as
described in issue 1876. This is now fixed.
* Fix: the missing branch message about not exiting a module
had an extra "didn't," as described in issue 1873. This is
now fixed.
* Dropped support for Python 3.8 and PyPy 3.8.
* Fix: a final wildcard match/case clause assigning to a name
(case _ as value) was incorrectly marked as a missing branch.
This is now fixed, closing issue 1860.
* Fewer things are considered branches now. Lambdas,
comprehensions, and generator expressions are no longer
marked as missing branches if they don't complete execution.
Closes issue 1852.
* Fix: the HTML report didn't properly show multi-line
f-strings that end with a backslash continuation. This is
now fixed, closing issue 1836, thanks to LiuYinCarl and Marco
Ricci.
* Fix: the LCOV report now has correct line numbers (fixing
issue 1846) and better branch descriptions for BRDA records
(fixing issue 1850). There are other changes to lcov also,
including a new configuration option :ref:`line_checksums
<config_lcov_line_checksums>` to control whether line
checksums are included in the lcov report. The default is
false. To keep checksums set it to true. All this work is
thanks to Zack Weinberg (pull 1849 and pull 1851).
OBS-URL: https://build.opensuse.org/request/show/1217070
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-coverage?expand=0&rev=65
* fix: multi-line with statements could cause contained
branches to be incorrectly marked as missing (issue 1880).
This is now fixed.
* Fix: nested context managers could incorrectly be analyzed to
flag a missing branch on the last context manager, as
described in issue 1876. This is now fixed.
* Fix: the missing branch message about not exiting a module
had an extra "didn't," as described in issue 1873. This is
now fixed.
* Dropped support for Python 3.8 and PyPy 3.8.
* Fix: a final wildcard match/case clause assigning to a name
(case _ as value) was incorrectly marked as a missing branch.
This is now fixed, closing issue 1860.
* Fewer things are considered branches now. Lambdas,
comprehensions, and generator expressions are no longer
marked as missing branches if they don't complete execution.
Closes issue 1852.
* Fix: the HTML report didn't properly show multi-line
f-strings that end with a backslash continuation. This is
now fixed, closing issue 1836, thanks to LiuYinCarl and Marco
Ricci.
* Fix: the LCOV report now has correct line numbers (fixing
issue 1846) and better branch descriptions for BRDA records
(fixing issue 1850). There are other changes to lcov also,
including a new configuration option :ref:`line_checksums
<config_lcov_line_checksums>` to control whether line
checksums are included in the lcov report. The default is
false. To keep checksums set it to true. All this work is
thanks to Zack Weinberg (pull 1849 and pull 1851).
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-coverage?expand=0&rev=135
- update to 7.6.1:
* Fix: coverage used to fail when measuring code using
:func:`runpy.run_path <python:runpy.run_path>` with a
:class:`Path <python:pathlib.Path>` argument. This is now
fixed, thanks to Ask Hjorth Larsen.
* Fix: backslashes preceding a multi-line backslashed string
could confuse the HTML report. This is now fixed, thanks to
LiuYinCarl.
* Now we publish wheels for Python 3.13, both regular and free-
threaded.
* Exclusion patterns can now be multi-line, thanks to Daniel
Diniz. This enables many interesting exclusion use-cases,
including those requested in issues 118 (entire files), 996
(multiple lines only when appearing together), 1741
(remainder of a function), and 1803 (arbitrary sequence of
marked lines). See the :ref:`multi_line_exclude` section of
the docs for more details and examples.
* The JSON report now includes per-function and per-class
coverage information. Thanks to Daniel Diniz for getting the
work started. This closes issue 1793 and issue 1532.
* Fixed an incorrect calculation of "(no class)" lines in the
HTML classes report.
* Python 3.13.0b3 is supported.
* If you attempt to combine statement coverage data with branch
coverage data, coverage.py used to fail with the message
"Can't combine arc data with line data" or its reverse,
"Can't combine line data with arc data." These messages used
internal terminology, making it hard for people to understand
the problem. They are now changed to mention "branch
coverage data" and "statement coverage data."
OBS-URL: https://build.opensuse.org/request/show/1198085
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-coverage?expand=0&rev=64
* Fix: coverage used to fail when measuring code using
:func:`runpy.run_path <python:runpy.run_path>` with a
:class:`Path <python:pathlib.Path>` argument. This is now
fixed, thanks to Ask Hjorth Larsen.
* Fix: backslashes preceding a multi-line backslashed string
could confuse the HTML report. This is now fixed, thanks to
LiuYinCarl.
* Now we publish wheels for Python 3.13, both regular and free-
threaded.
* Exclusion patterns can now be multi-line, thanks to Daniel
Diniz. This enables many interesting exclusion use-cases,
including those requested in issues 118 (entire files), 996
(multiple lines only when appearing together), 1741
(remainder of a function), and 1803 (arbitrary sequence of
marked lines). See the :ref:`multi_line_exclude` section of
the docs for more details and examples.
* The JSON report now includes per-function and per-class
coverage information. Thanks to Daniel Diniz for getting the
work started. This closes issue 1793 and issue 1532.
* Fixed an incorrect calculation of "(no class)" lines in the
HTML classes report.
* Python 3.13.0b3 is supported.
* If you attempt to combine statement coverage data with branch
coverage data, coverage.py used to fail with the message
"Can't combine arc data with line data" or its reverse,
"Can't combine line data with arc data." These messages used
internal terminology, making it hard for people to understand
the problem. They are now changed to mention "branch
coverage data" and "statement coverage data."
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-coverage?expand=0&rev=133
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.