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 commands and options
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 merge will merge this PR after your CI passes on it
@dependabot squash and merge will squash and merge this PR after your CI passes on it
@dependabot cancel merge will cancel a previously requested merge and block automerging
@dependabot reopen will reopen this PR if it is closed
@dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
@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)
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.14.13 to 0.14.14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/astral-sh/ruff/releases">ruff's releases</a>.</em></p>
<blockquote>
<h2>0.14.14</h2>
<h2>Release Notes</h2>
<p>Released on 2026-01-22.</p>
<h3>Preview features</h3>
<ul>
<li>Preserve required parentheses in lambda bodies (<a href="https://redirect.github.com/astral-sh/ruff/pull/22747">#22747</a>)</li>
<li>Combine range suppression code diagnostics (<a href="https://redirect.github.com/astral-sh/ruff/pull/22613">#22613</a>)</li>
<li>[<code>airflow</code>] Second positional argument to <code>Asset</code>/<code>Dataset</code> should not be a dictionary (<code>AIR303</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22453">#22453</a>)</li>
<li>[<code>ruff</code>] Detect duplicate entries in <code>__all__</code> (<code>RUF068</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22114">#22114</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>[<code>pyupgrade</code>] Allow shadowing non-builtin bindings (<code>UP029</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22749">#22749</a>)</li>
<li>[<code>pyupgrade</code>] Apply <code>UP045</code> to string arguments of <code>typing.cast</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/22320">#22320</a>)</li>
<li>[<code>flake8-pie</code>] Detect duplicated declared class fields in <code>PIE794</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/22717">#22717</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>flake8-pyi</code>] Fix inconsistent handling of forward references for <code>__new__</code>, <code>__enter__</code>, <code>__aenter__</code> in <code>PYI034</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/22798">#22798</a>)</li>
<li>[<code>flake8-pytest-style</code>] Support <code>check</code> parameter in <code>PT011</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/22725">#22725</a>)</li>
<li>[<code>ruff</code>] Add exception for <code>ctypes.Structure._fields_</code> (<code>RUF012</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22559">#22559</a>)</li>
<li>Many fixes are now marked unsafe if they would remove comments:
<ul>
<li>[<code>flake8-bugbear</code>] <a href="https://redirect.github.com/astral-sh/ruff/pull/22656"><code>B009</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22657"><code>B010</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22658"><code>B013</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22659"><code>B014</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22632"><code>B033</code></a></li>
<li>[<code>flake8-simplify</code>] <a href="https://redirect.github.com/astral-sh/ruff/pull/22662"><code>SIM910</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22661"><code>SIM911</code></a></li>
<li>[<code>pyupgrade</code>] <a href="https://redirect.github.com/astral-sh/ruff/pull/22772"><code>UP007</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22774"><code>UP039</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22773"><code>UP041</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22772"><code>UP045</code></a></li>
<li>[<code>refurb</code>] <a href="https://redirect.github.com/astral-sh/ruff/pull/22767"><code>FURB105</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22681"><code>FURB116</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22680"><code>FURB136</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22679"><code>FURB140</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22670"><code>FURB145</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22669"><code>FURB154</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22668"><code>FURB157</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22667"><code>FURB164</code></a>,<a href="https://redirect.github.com/astral-sh/ruff/pull/22666"><code>FURB181</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22665"><code>FURB188</code></a></li>
<li>[<code>ruff</code>] <a href="https://redirect.github.com/astral-sh/ruff/pull/22663"><code>RUF019</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22664"><code>RUF020</code></a></li>
</ul>
</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Add <code>--exit-non-zero-on-format</code> to formatter exit codes section (<a href="https://redirect.github.com/astral-sh/ruff/pull/22761">#22761</a>)</li>
<li>Update contributing guide for adding a new rule (<a href="https://redirect.github.com/astral-sh/ruff/pull/22779">#22779</a>)</li>
<li>[<code>FastAPI</code>] Document fix safety for <code>FAST001</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/22655">#22655</a>)</li>
<li>[<code>flake8-async</code>] Tweak explanation to focus on latency/efficiency tradeoff (<code>ASYNC110</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22715">#22715</a>)</li>
<li>[<code>pandas-vet</code>] Make example error out-of-the-box (<code>PD002</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22561">#22561</a>)</li>
<li>[<code>refurb</code>] Make the example work out of box (<code>FURB101</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22770">#22770</a>)</li>
<li>[<code>refurb</code>] Make the example work out of box (<code>FURB103</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22769">#22769</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a href="https://github.com/alejsdev"><code>@alejsdev</code></a></li>
<li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li>
<li><a href="https://github.com/caiquejjx"><code>@caiquejjx</code></a></li>
<li><a href="https://github.com/chirizxc"><code>@chirizxc</code></a></li>
<li><a href="https://github.com/denyszhak"><code>@denyszhak</code></a></li>
<li><a href="https://github.com/sjyangkevin"><code>@sjyangkevin</code></a></li>
<li><a href="https://github.com/MeGaGiGaGon"><code>@MeGaGiGaGon</code></a></li>
<li><a href="https://github.com/leandrobbraga"><code>@leandrobbraga</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's changelog</a>.</em></p>
<blockquote>
<h2>0.14.14</h2>
<p>Released on 2026-01-22.</p>
<h3>Preview features</h3>
<ul>
<li>Preserve required parentheses in lambda bodies (<a href="https://redirect.github.com/astral-sh/ruff/pull/22747">#22747</a>)</li>
<li>Combine range suppression code diagnostics (<a href="https://redirect.github.com/astral-sh/ruff/pull/22613">#22613</a>)</li>
<li>[<code>airflow</code>] Second positional argument to <code>Asset</code>/<code>Dataset</code> should not be a dictionary (<code>AIR303</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22453">#22453</a>)</li>
<li>[<code>ruff</code>] Detect duplicate entries in <code>__all__</code> (<code>RUF068</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22114">#22114</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>[<code>pyupgrade</code>] Allow shadowing non-builtin bindings (<code>UP029</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22749">#22749</a>)</li>
<li>[<code>pyupgrade</code>] Apply <code>UP045</code> to string arguments of <code>typing.cast</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/22320">#22320</a>)</li>
<li>[<code>flake8-pie</code>] Detect duplicated declared class fields in <code>PIE794</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/22717">#22717</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>flake8-pyi</code>] Fix inconsistent handling of forward references for <code>__new__</code>, <code>__enter__</code>, <code>__aenter__</code> in <code>PYI034</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/22798">#22798</a>)</li>
<li>[<code>flake8-pytest-style</code>] Support <code>check</code> parameter in <code>PT011</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/22725">#22725</a>)</li>
<li>[<code>ruff</code>] Add exception for <code>ctypes.Structure._fields_</code> (<code>RUF012</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22559">#22559</a>)</li>
<li>Many fixes are now marked unsafe if they would remove comments:
<ul>
<li>[<code>flake8-bugbear</code>] <a href="https://redirect.github.com/astral-sh/ruff/pull/22656"><code>B009</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22657"><code>B010</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22658"><code>B013</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22659"><code>B014</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22632"><code>B033</code></a></li>
<li>[<code>flake8-simplify</code>] <a href="https://redirect.github.com/astral-sh/ruff/pull/22662"><code>SIM910</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22661"><code>SIM911</code></a></li>
<li>[<code>pyupgrade</code>] <a href="https://redirect.github.com/astral-sh/ruff/pull/22772"><code>UP007</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22774"><code>UP039</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22773"><code>UP041</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22772"><code>UP045</code></a></li>
<li>[<code>refurb</code>] <a href="https://redirect.github.com/astral-sh/ruff/pull/22767"><code>FURB105</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22681"><code>FURB116</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22680"><code>FURB136</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22679"><code>FURB140</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22670"><code>FURB145</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22669"><code>FURB154</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22668"><code>FURB157</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22667"><code>FURB164</code></a>,<a href="https://redirect.github.com/astral-sh/ruff/pull/22666"><code>FURB181</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22665"><code>FURB188</code></a></li>
<li>[<code>ruff</code>] <a href="https://redirect.github.com/astral-sh/ruff/pull/22663"><code>RUF019</code></a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/22664"><code>RUF020</code></a></li>
</ul>
</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Add <code>--exit-non-zero-on-format</code> to formatter exit codes section (<a href="https://redirect.github.com/astral-sh/ruff/pull/22761">#22761</a>)</li>
<li>Update contributing guide for adding a new rule (<a href="https://redirect.github.com/astral-sh/ruff/pull/22779">#22779</a>)</li>
<li>[<code>FastAPI</code>] Document fix safety for <code>FAST001</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/22655">#22655</a>)</li>
<li>[<code>flake8-async</code>] Tweak explanation to focus on latency/efficiency tradeoff (<code>ASYNC110</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22715">#22715</a>)</li>
<li>[<code>pandas-vet</code>] Make example error out-of-the-box (<code>PD002</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22561">#22561</a>)</li>
<li>[<code>refurb</code>] Make the example work out of box (<code>FURB101</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22770">#22770</a>)</li>
<li>[<code>refurb</code>] Make the example work out of box (<code>FURB103</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22769">#22769</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a href="https://github.com/alejsdev"><code>@alejsdev</code></a></li>
<li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li>
<li><a href="https://github.com/caiquejjx"><code>@caiquejjx</code></a></li>
<li><a href="https://github.com/chirizxc"><code>@chirizxc</code></a></li>
<li><a href="https://github.com/denyszhak"><code>@denyszhak</code></a></li>
<li><a href="https://github.com/sjyangkevin"><code>@sjyangkevin</code></a></li>
<li><a href="https://github.com/MeGaGiGaGon"><code>@MeGaGiGaGon</code></a></li>
<li><a href="https://github.com/leandrobbraga"><code>@leandrobbraga</code></a></li>
<li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/astral-sh/ruff/commit/8b2e7b36f246b990fe473a84eef25ff429e59ecf"><code>8b2e7b3</code></a> Prepare release v0.14.14 (<a href="https://redirect.github.com/astral-sh/ruff/issues/22813">#22813</a>)</li>
<li><a href="https://github.com/astral-sh/ruff/commit/4c7d1f50fd8d1baf06a3c8885ecd0ded0113d383"><code>4c7d1f5</code></a> [ty] Infer <code>TypedDict</code> types with >=1 required key as being always truthy (<a href="https://redirect.github.com/astral-sh/ruff/issues/2">#2</a>...</li>
<li><a href="https://github.com/astral-sh/ruff/commit/b7de4341535ff2b299695335e0a7b9ebaf297348"><code>b7de434</code></a> add CCfW hooks (<a href="https://redirect.github.com/astral-sh/ruff/issues/22803">#22803</a>)</li>
<li><a href="https://github.com/astral-sh/ruff/commit/b912dfc8788f8f8c351767899df6b72ce3366352"><code>b912dfc</code></a> [<code>pyupgrade</code>] Apply <code>UP045</code> to string arguments of <code>typing.cast</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/22320">#22320</a>)</li>
<li><a href="https://github.com/astral-sh/ruff/commit/1ff062d1cccb8025de184a55c6dfe469a4293249"><code>1ff062d</code></a> [ty] Improve completion rankings for raise-from/except contexts (<a href="https://redirect.github.com/astral-sh/ruff/issues/22775">#22775</a>)</li>
<li><a href="https://github.com/astral-sh/ruff/commit/7e408a51d24db2bca248bb90f2f7938f83efd22b"><code>7e408a5</code></a> Update dependency wrangler to v4.59.1 (<a href="https://redirect.github.com/astral-sh/ruff/issues/22793">#22793</a>)</li>
<li><a href="https://github.com/astral-sh/ruff/commit/ceb876b82300bd237d11e3eb77c46fcf3d3afe85"><code>ceb876b</code></a> [<code>flake8-pyi</code>] Fix inconsistent handling of forward references for <code>__new__</code>,...</li>
<li><a href="https://github.com/astral-sh/ruff/commit/c5b4ee68c90faf0e609fa6553a171a7ba60ebdcb"><code>c5b4ee6</code></a> [ty] Support solving generics involving PEP 695 type aliases (<a href="https://redirect.github.com/astral-sh/ruff/issues/22678">#22678</a>)</li>
<li><a href="https://github.com/astral-sh/ruff/commit/b9a61293153f43df9963c727539309b76ac4756d"><code>b9a6129</code></a> [ty] Improve support for kwarg splats in dictionary literals (<a href="https://redirect.github.com/astral-sh/ruff/issues/22781">#22781</a>)</li>
<li><a href="https://github.com/astral-sh/ruff/commit/f516d47ceb7f6a0c3a95eaaa2c7451a32b5d7120"><code>f516d47</code></a> Update contributing guide for adding a new rule (<a href="https://redirect.github.com/astral-sh/ruff/issues/22779">#22779</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.14.13...0.14.14">compare view</a></li>
</ul>
</details>
<br />
[](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@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>
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.
Bumps ruff from 0.14.13 to 0.14.14.
Release notes
Sourced from ruff's releases.
... (truncated)
Changelog
Sourced from ruff's changelog.
... (truncated)
Commits
8b2e7b3Prepare release v0.14.14 (#22813)4c7d1f5[ty] InferTypedDicttypes with >=1 required key as being always truthy (#2...b7de434add CCfW hooks (#22803)b912dfc[pyupgrade] ApplyUP045to string arguments oftyping.cast(#22320)1ff062d[ty] Improve completion rankings for raise-from/except contexts (#22775)7e408a5Update dependency wrangler to v4.59.1 (#22793)ceb876b[flake8-pyi] Fix inconsistent handling of forward references for__new__,...c5b4ee6[ty] Support solving generics involving PEP 695 type aliases (#22678)b9a6129[ty] Improve support for kwarg splats in dictionary literals (#22781)f516d47Update contributing guide for adding a new rule (#22779)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 commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill 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 versionwill 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 dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)