Version 7.12.0 — 2025-11-18
- The HTML report now shows separate coverage totals for statements and branches, as well as the usual combined coverage percentage. Thanks to Ryuta Otsuka for the discussion and the implementation.
- The JSON report now includes separate coverage totals for statements and branches, thanks to Ryuta Otsuka.
- Fix:
except*clauses were not handled properly under the “sysmon” measurement core, causing KeyError exceptions as described in issue 2086. This is now fixed. - Fix: we now defend against aggressive mocking of
open()that could cause errors inside coverage.py. An example of a failure is in issue 2083. - Fix: in unusual cases where a test suite intentionally exhausts the system’s file descriptors to test handling errors in
open(), coverage.py would fail when trying to open source files, as described in issue 2091. This is now fixed. - A small tweak to the HTML report: file paths now use thin spaces around slashes to make them easier to read.
➡️ PyPI page: coverage 7.12.0.
➡️ To install: python3 -m pip install coverage==7.12.0