SIGN IN SIGN UP

Bump coverage from 7.15.4 to 7.16.0 (#13618)

Bumps [coverage](https://github.com/coveragepy/coveragepy) from 7.15.4
to 7.16.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/coveragepy/coveragepy/releases">coverage's
releases</a>.</em></p>
<blockquote>
<h2>7.16.0</h2>
<h2>Version 7.16.0 — 2026-08-28</h2>
<ul>
<li>When combining files, now path separator slashes will automatically
be converted to the local file system style. This makes it less
necessary to define <code>[paths]</code> configuration to combine data
across operating systems. Fixes <a
href="https://redirect.github.com/coveragepy/coveragepy/issues/2266">issue
2266</a>.</li>
<li>The <a
href="https://coverage.readthedocs.io/en/latest/api_coverage.html#coverage.Coverage.switch_context">Coverage.switch_context()</a>
method now returns the previous context.</li>
<li>Fix: previously, a <code>[paths]</code> pattern would be replaced
everywhere in a file path when it was only meant to be replaced once, in
the leading portion of the path. This is now fixed, in <a
href="https://redirect.github.com/coveragepy/coveragepy/pull/2268">pull
2268</a>.</li>
<li>Fixes to validation of options and configuration settings:
<ul>
<li>Negative precision settings now always cause useful error messages
(<a
href="https://redirect.github.com/coveragepy/coveragepy/pull/2261">pull
2261</a>).</li>
<li>An invalid regex in the <code>--contexts</code> option (or the
<code>[report] contexts</code> setting) reported a confusing “Couldn’t
use data file …: user-defined function raised exception” error. Now it
raises a proper configuration error naming the bad regex, like other
regex settings do (<a
href="https://redirect.github.com/coveragepy/coveragepy/pull/2262">pull
2262</a>).</li>
<li>Non-string values in TOML configuration settings now produce a
helpful error message instead of a traceback. This affects list settings
whose elements aren’t strings (like <code>omit</code>,
<code>exclude_lines</code>, or a <code>[paths]</code> entry), file
settings like <code>data_file</code>, and any wrong-typed value in the
<code>[paths]</code> section (<a
href="https://redirect.github.com/coveragepy/coveragepy/pull/2263">pull
2263</a>).</li>
<li><code>coverage run</code> refuses run-affecting command-line options
like <code>--branch</code> alongside
<code>--concurrency=multiprocessing</code>, since they can’t reach the
subprocesses. The check only recognized <code>multiprocessing</code> as
the entire option value, so
<code>--concurrency=multiprocessing,thread</code> slipped through and
failed later with “Can’t combine statement coverage data with branch
data”. Each named concurrency library is now properly considered (<a
href="https://redirect.github.com/coveragepy/coveragepy/pull/2270">pull
2270</a>).</li>
</ul>
</li>
<li>Fix: <code>coverage annotate -d DIR</code> raised an
<code>AssertionError</code> if any measured file had an extension other
than <code>.py</code>, such as a <code>.pyw</code> file on Windows. The
original extension is now restored on the annotated copy (<a
href="https://redirect.github.com/coveragepy/coveragepy/pull/2265">pull
2265</a>).</li>
</ul>
<p>:arrow_right:  PyPI page: <a
href="https://pypi.org/project/coverage/7.16.0">coverage 7.16.0</a>.
:arrow_right:  To install: <code>python3 -m pip install
coverage==7.16.0</code></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst">coverage's
changelog</a>.</em></p>
<blockquote>
<h2>Version 7.16.0 — 2026-08-28</h2>
<ul>
<li>
<p>When combining files, now path separator slashes will automatically
be
converted to the local file system style. This makes it less necessary
to
define <code>[paths]</code> configuration to combine data across
operating systems.
Fixes <code>issue 2266</code>_.</p>
</li>
<li>
<p>The :meth:<code>.Coverage.switch_context</code> method now returns
the previous context.</p>
</li>
<li>
<p>Fix: previously, a <code>[paths]</code> pattern would be replaced
everywhere in a file
path when it was only meant to be replaced once, in the leading portion
of
the path. This is now fixed, in <code>pull 2268</code>_.</p>
</li>
<li>
<p>Fixes to validation of options and configuration settings:</p>
<ul>
<li>
<p>Negative precision settings now always cause useful error messages
(<code>pull 2261</code>_).</p>
</li>
<li>
<p>An invalid regex in the <code>--contexts</code> option (or the
<code>[report] contexts</code> setting) reported a confusing
&quot;Couldn't use data file ...:
user-defined function raised exception&quot; error. Now it raises a
proper
configuration error naming the bad regex, like other regex settings do
(<code>pull 2262</code>_).</p>
</li>
<li>
<p>Non-string values in TOML configuration settings now produce a
helpful
error message instead of a traceback.  This affects list settings whose
elements aren't strings (like <code>omit</code>,
<code>exclude_lines</code>, or a <code>[paths]</code>
entry), file settings like <code>data_file</code>, and any wrong-typed
value in the
<code>[paths]</code> section (<code>pull 2263</code>_).</p>
</li>
<li>
<p><code>coverage run</code> refuses run-affecting command-line options
like
<code>--branch</code> alongside
<code>--concurrency=multiprocessing</code>, since they can't
reach the subprocesses. The check only recognized
<code>multiprocessing</code> as
the entire option value, so
<code>--concurrency=multiprocessing,thread</code>
slipped through and failed later with &quot;Can't combine statement
coverage
data with branch data&quot;. Each named concurrency library is now
properly
considered (<code>pull 2270</code>_).</p>
</li>
</ul>
</li>
<li>
<p>Fix: <code>coverage annotate -d DIR</code> raised an
<code>AssertionError</code> if any
measured file had an extension other than <code>.py</code>, such as a
<code>.pyw</code> file on
Windows. The original extension is now restored on the annotated copy
(<code>pull 2265</code>_).</p>
</li>
</ul>
<p>.. _pull 2261: <a
href="https://redirect.github.com/coveragepy/coveragepy/pull/2261">coveragepy/coveragepy#2261</a>
.. _pull 2262: <a
href="https://redirect.github.com/coveragepy/coveragepy/pull/2262">coveragepy/coveragepy#2262</a>
.. _pull 2263: <a
href="https://redirect.github.com/coveragepy/coveragepy/pull/2263">coveragepy/coveragepy#2263</a>
.. _pull 2265: <a
href="https://redirect.github.com/coveragepy/coveragepy/pull/2265">coveragepy/coveragepy#2265</a>
.. _issue 2266: <a
href="https://redirect.github.com/coveragepy/coveragepy/issues/2266">coveragepy/coveragepy#2266</a>
.. _pull 2268: <a
href="https://redirect.github.com/coveragepy/coveragepy/pull/2268">coveragepy/coveragepy#2268</a></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/coveragepy/coveragepy/commit/3e9fc1653ef31089d02eb7618b9d9ac9414378fc"><code>3e9fc16</code></a>
docs: prep for 7.16.0</li>
<li><a
href="https://github.com/coveragepy/coveragepy/commit/38be8d13afee6b6525492fc375c739cdfb675e9b"><code>38be8d1</code></a>
build: control check-manifest explicitly</li>
<li><a
href="https://github.com/coveragepy/coveragepy/commit/8eb1266ead5c6d356d3437637a509ff86b566253"><code>8eb1266</code></a>
docs(build): no longer commit sample_html</li>
<li><a
href="https://github.com/coveragepy/coveragepy/commit/1a8b3fa57d56bb70bad62c93d224c18a0fbaae6f"><code>1a8b3fa</code></a>
docs: remove sample_html</li>
<li><a
href="https://github.com/coveragepy/coveragepy/commit/aeaa79b812d1bc637ebb5582ab12c076e192c87e"><code>aeaa79b</code></a>
docs: linklint is now sphinx-linklint</li>
<li><a
href="https://github.com/coveragepy/coveragepy/commit/d5eaf3f6d38f58746bc69e87e64c0b0277a9077d"><code>d5eaf3f</code></a>
test: a branchless way to re-add extensions</li>
<li><a
href="https://github.com/coveragepy/coveragepy/commit/57e52fd431cecc1ca03de2c5b1288e0b330c2ef4"><code>57e52fd</code></a>
docs: adjust CHANGES for <a
href="https://redirect.github.com/coveragepy/coveragepy/issues/2270">#2270</a></li>
<li><a
href="https://github.com/coveragepy/coveragepy/commit/b9d304d77f7ce3d55df3a46339dbc56d1f49df58"><code>b9d304d</code></a>
fix: check for multiprocessing in a --concurrency list (<a
href="https://redirect.github.com/coveragepy/coveragepy/issues/2270">#2270</a>)</li>
<li><a
href="https://github.com/coveragepy/coveragepy/commit/a6ef9284afbc7d1f392821864b64ddbda0051fc5"><code>a6ef928</code></a>
chore: make upgrade</li>
<li><a
href="https://github.com/coveragepy/coveragepy/commit/070461fcfde0437b5b778c2c2a72e433a0a391aa"><code>070461f</code></a>
chore: bump the action-dependencies group with 4 updates (<a
href="https://redirect.github.com/coveragepy/coveragepy/issues/2271">#2271</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/coveragepy/coveragepy/compare/7.15.4...7.16.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coverage&package-manager=pip&previous-version=7.15.4&new-version=7.16.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

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 show <dependency name> 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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
D
dependabot[bot] committed
986ee87a748603efde342e461d9062a049a10845
Parent: bc70b53
Committed by GitHub <noreply@github.com> on 9/1/2026, 11:35:00 AM