Releases: nedbat/coveragepy
7.6.8
Version 7.6.8 — 2024-11-23
- 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 because line 4 was never true, and it didn’t jump to line 7 because line 4 was always true.” This was also shown in issue 1896.
➡️ PyPI page: coverage 7.6.8.
➡️ To install: python3 -m pip install coverage==7.6.8
7.6.7
Version 7.6.7 — 2024-11-15
- Fix: ugh, the other assert from 7.6.5 can also be encountered in the wild, so it’s been restored to a conditional. Sorry for the churn.
➡️ PyPI page: coverage 7.6.7.
➡️ To install: python3 -m pip install coverage==7.6.7
7.6.6
Version 7.6.6 — 2024-11-15
- One of the new asserts from 7.6.5 caused problems in real projects, as reported in issue 1891. The assert has been removed.
➡️ PyPI page: coverage 7.6.6.
➡️ To install: python3 -m pip install coverage==7.6.6
7.6.5
Version 7.6.5 — 2024-11-14
- Fix: fine-tuned the exact Python version (3.12.6) when exiting from
with
statements changed how they traced. This affected whether people saw the fix for issue 1880. - Fix: isolate our code more from mocking in the os module that in rare cases can cause bizarre behavior.
- Refactor: some code unreachable code paths in parser.py were changed to asserts. If you encounter any of these, please let me know!
➡️ PyPI page: coverage 7.6.5.
➡️ To install: python3 -m pip install coverage==7.6.5
7.6.4
Version 7.6.4 — 2024-10-20
- Fix: multi-line
with
statements could cause contained branches to be incorrectly marked as missing (issue 1880). This is now fixed.
➡️ PyPI page: coverage 7.6.4.
➡️ To install: python3 -m pip install coverage==7.6.4
7.6.3
Version 7.6.3 — 2024-10-13
- 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.
➡️ PyPI page: coverage 7.6.3.
➡️ To install: python3 -m pip install coverage==7.6.3
7.6.2
Version 7.6.2 — 2024-10-09
- 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 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).
- Fixed the docs for multi-line regex exclusions, closing issue 1863.
- Fixed a potential crash in the C tracer, closing issue 1835, thanks to Jan Kühle.
➡️ PyPI page: coverage 7.6.2.
➡️ To install: python3 -m pip install coverage==7.6.2
7.6.1
Version 7.6.1 — 2024-08-04
- Fix: coverage used to fail when measuring code using https://docs.python.org/3/library/runpy.html#runpy.run_path with a https://docs.python.org/3/library/pathlib.html#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.
➡️ PyPI page: coverage 7.6.1.
➡️ To install: python3 -m pip install coverage==7.6.1
7.6.0
Version 7.6.0 — 2024-07-11
- 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 Multi-line exclusion regexes 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.
➡️ PyPI page: coverage 7.6.0.
➡️ To install: python3 -m pip install coverage==7.6.0
7.5.4
Version 7.5.4 — 2024-06-22
- 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.”
- Fixed a minor branch coverage problem with wildcard match/case cases using names or guard clauses.
- Started testing on 3.13 free-threading (nogil) builds of Python. I’m not claiming full support yet. Closes issue 1799.
➡️ PyPI page: coverage 7.5.4.
➡️ To install: python3 -m pip install coverage==7.5.4