dependabot[bot] opened a new pull request, #4280:
URL: https://github.com/apache/iggy/pull/4280

   Bumps the python group with 2 updates in the /bdd/python directory: 
[pyrefly](https://github.com/facebook/pyrefly) and 
[ruff](https://github.com/astral-sh/ruff).
   Bumps the python group with 2 updates in the /examples/python directory: 
[pyrefly](https://github.com/facebook/pyrefly) and 
[ruff](https://github.com/astral-sh/ruff).
   Bumps the python group with 2 updates in the /foreign/python directory: 
[pyrefly](https://github.com/facebook/pyrefly) and 
[ruff](https://github.com/astral-sh/ruff).
   
   Updates `pyrefly` from 1.2.0 to 1.3.1
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/facebook/pyrefly/releases";>pyrefly's 
releases</a>.</em></p>
   <blockquote>
   <h2>Pyrefly v1.3.1</h2>
   <p><em>Release date: September 14, 2026</em></p>
   <p>Pyrefly v1.3.1 is a patch release with a single bug fix.</p>
   <hr />
   <h2>🐛 Bug fixes</h2>
   <ul>
   <li><strong><a 
href="https://redirect.github.com/facebook/pyrefly/issues/4909";>#4909</a>:</strong>
 Fixed a critical issue where Pyrefly would immediately crash on startup with a 
thread panic when empty or relative base paths were encountered during 
configuration. The server now safely resolves these paths against the working 
directory, preventing the crash and allowing normal operation.</li>
   </ul>
   <p>Thank-you to all our contributors who found these bugs and reported them! 
Did you know this is one of the most helpful contributions you can make to an 
open-source project? If you find any bugs in Pyrefly we want to know about 
them! Please open a bug report issue <a 
href="https://github.com/facebook/pyrefly/issues";>here</a>.</p>
   <hr />
   <h2>📦 Upgrade</h2>
   <pre lang="bash"><code>pip install --upgrade pyrefly==1.3.1
   </code></pre>
   <h3>How to safely upgrade your codebase</h3>
   <p>Upgrading the version of Pyrefly you're using or a third-party library 
you depend on can reveal new type errors in your code. Fixing them all at once 
is often unrealistic. We've written scripts to help you temporarily silence 
them. After upgrading, follow these steps:</p>
   <ol>
   <li><code>pyrefly check --suppress-errors</code></li>
   <li>Run your code formatter of choice</li>
   <li><code>pyrefly check --remove-unused-ignores</code></li>
   <li>Repeat until you achieve a clean formatting run and a clean type 
check.</li>
   </ol>
   <p>This will add <code># pyrefly: ignore</code> comments to your code, 
enabling you to silence errors and return to fix them later. This can make the 
process of upgrading a large codebase much more manageable.</p>
   <p>Read more about error suppressions in the <a 
href="https://pyrefly.org/en/docs/error-suppressions/";>Pyrefly 
documentation</a>.</p>
   <h2>Pyrefly v1.3.0</h2>
   <p><em>Release date: September 10, 2026</em></p>
   <p>Pyrefly v1.3.0 bundles <strong>934 commits</strong> from <strong>71 
contributors</strong>.</p>
   <hr />
   <h2>🔍Release Highlights</h2>
   <h3>Type Checking</h3>
   <ul>
   <li><strong>New diagnostics and more accurate type inference.</strong> 
Pyrefly now catches invalid literal regular expressions, invalid 
<code>mock.patch</code> targets, unsupported <code>dataclass_transform</code> 
arguments, incompatible <code>Protocol.__call__</code> overrides, and 
unimplemented abstract methods. Pattern-match exhaustiveness, overload 
resolution, narrowing, and generic inference are also more accurate.</li>
   <li><strong>Better support for major Python frameworks.</strong> Pyrefly 
understands same-file Django reverse relationships, checks SQLAlchemy updates 
against model fields, and recognizes attributes registered on PyTorch 
modules.</li>
   </ul>
   <h3>Language Server</h3>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/3e3177d0f4755b56c2d5a710d830eed89b14c2e3";><code>3e3177d</code></a>
 cut 1.3.1</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/344571484426e55054ac8658015ef6cd0a72fe8c";><code>3445714</code></a>
 release notes for v1.3.1</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/c1be891c4aac146af9d5e8f80c3971ca126253d6";><code>c1be891</code></a>
 fix pyrefly instantly dies with with thread panic <a 
href="https://redirect.github.com/facebook/pyrefly/issues/4909";>#4909</a> (<a 
href="https://redirect.github.com/facebook/pyrefly/issues/4925";>#4925</a>)</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/624bdc4dd177b055a4e98cd82084528921da9c2c";><code>624bdc4</code></a>
 cut 1.3.0</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/ad6958ceef36af1ae0fe32048894477c66cdf946";><code>ad6958c</code></a>
 feat: support Pyrefly-specific type ignore codes</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/f1d8f621bb84d78f15b93683e0c1b2d4945e0bf3";><code>f1d8f62</code></a>
 Bump fast-uri from 3.1.5 to 3.1.7 in /website (<a 
href="https://redirect.github.com/facebook/pyrefly/issues/4789";>#4789</a>)</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/cb178b986fd37a81f45609387e29263455487e74";><code>cb178b9</code></a>
 add type stubs for remaining jax.lax APIs (<a 
href="https://redirect.github.com/facebook/pyrefly/issues/4875";>#4875</a>)</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/8ee41cafc5b96c666f7067103954076fff21fc2b";><code>8ee41ca</code></a>
 Model polars join(..., coalesce=...) (<a 
href="https://redirect.github.com/facebook/pyrefly/issues/4833";>#4833</a>) (<a 
href="https://redirect.github.com/facebook/pyrefly/issues/4859";>#4859</a>)</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/5d00010869f817a8dce46c5b1e1966df34a4616f";><code>5d00010</code></a>
 Find methods and other nested definitions in workspace symbols</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/5b392caf81196c8d3b52ec56320246ce0c451e18";><code>5b392ca</code></a>
 Cache flat symbols for first-party modules</li>
   <li>Additional commits viewable in <a 
href="https://github.com/facebook/pyrefly/compare/1.2.0...1.3.1";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `ruff` from 0.16.6 to 0.16.8
   <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.16.8</h2>
   <h2>Release Notes</h2>
   <p>Released on 2026-09-16.</p>
   <h3>Bug fixes</h3>
   <ul>
   <li>Visit functional <code>TypedDict</code> keyword arguments correctly (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28584";>#28584</a>)</li>
   <li>[<code>flake8-simplify</code>] Detect nested <code>async with</code> 
under sync parent (<code>SIM117</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/27821";>#27821</a>)</li>
   <li>[<code>flake8-simplify</code>] Preserve operand order in 
<code>SIM109</code> fix (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/27824";>#27824</a>)</li>
   <li>[<code>pyupgrade</code>] Preserve required parentheses in multiline 
<code>UP040</code> fixes (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28164";>#28164</a>)</li>
   <li>[<code>pyupgrade</code>] Skip <code>TypeVarTuple</code> and 
<code>ParamSpec</code> conversions with bounds or constraints 
(<code>UP040</code>, <code>UP046</code>, <code>UP047</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28505";>#28505</a>)</li>
   </ul>
   <h3>Rule changes</h3>
   <ul>
   <li>Add support for <code>__lazy_modules__</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28459";>#28459</a>)</li>
   <li>Recognize PEP-728 <code>TypedDict</code> class keywords (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28533";>#28533</a>)</li>
   <li>Recognize quoted types in <code>typing.TypeForm</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28507";>#28507</a>)</li>
   <li>Support conditional assignment to <code>__lazy_modules__</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28491";>#28491</a>)</li>
   <li>[<code>flake8-type-checking</code>] Prefer lazy imports over 
<code>TYPE_CHECKING</code> on Python 3.15 and later (<code>TC001</code>, 
<code>TC002</code>, <code>TC003</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28541";>#28541</a>)</li>
   <li>[<code>pyupgrade</code>] Make the fix for <code>UP040</code> always 
unsafe (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28526";>#28526</a>)</li>
   <li>[<code>pyupgrade</code>] Stop recommending deprecated 
<code>ByteString</code> aliases (<code>UP035</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28498";>#28498</a>)</li>
   <li>[<code>ruff</code>, <code>flake8-use-pathlib</code>] Recognize the 
<code>parent_mode</code> argument (<code>RUF064</code>, <code>PTH103</code>) 
(<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28528";>#28528</a>)</li>
   <li>[<code>ruff</code>] Detect <code>\Z</code> in 
<code>pytest.raises()</code> match patterns (<code>RUF043</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28598";>#28598</a>)</li>
   </ul>
   <h3>CLI</h3>
   <ul>
   <li>Use rule name and code in formatter incompatibility warnings (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28571";>#28571</a>)</li>
   </ul>
   <h3>Configuration</h3>
   <ul>
   <li>[<code>flake8-tidy-imports</code>] Add <code>extend-banned-api</code> 
(<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28644";>#28644</a>)</li>
   </ul>
   <h3>Contributors</h3>
   <ul>
   <li><a 
href="https://github.com/VedantMadane";><code>@​VedantMadane</code></a></li>
   <li><a href="https://github.com/alzeph";><code>@​alzeph</code></a></li>
   <li><a 
href="https://github.com/charliermarsh";><code>@​charliermarsh</code></a></li>
   <li><a 
href="https://github.com/fredrikblau";><code>@​fredrikblau</code></a></li>
   <li><a href="https://github.com/ntBre";><code>@​ntBre</code></a></li>
   <li><a href="https://github.com/zsol";><code>@​zsol</code></a></li>
   <li><a 
href="https://github.com/Aniket-a14";><code>@​Aniket-a14</code></a></li>
   <li><a href="https://github.com/r-b-1";><code>@​r-b-1</code></a></li>
   </ul>
   <h2>Install ruff 0.16.8</h2>
   <h3>Install prebuilt binaries via shell script</h3>
   <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf 
https://releases.astral.sh/github/ruff/releases/download/0.16.8/ruff-installer.sh
 | sh
   &lt;/tr&gt;&lt;/table&gt; 
   </code></pre>
   </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.16.8</h2>
   <p>Released on 2026-09-16.</p>
   <h3>Bug fixes</h3>
   <ul>
   <li>Visit functional <code>TypedDict</code> keyword arguments correctly (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28584";>#28584</a>)</li>
   <li>[<code>flake8-simplify</code>] Detect nested <code>async with</code> 
under sync parent (<code>SIM117</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/27821";>#27821</a>)</li>
   <li>[<code>flake8-simplify</code>] Preserve operand order in 
<code>SIM109</code> fix (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/27824";>#27824</a>)</li>
   <li>[<code>pyupgrade</code>] Preserve required parentheses in multiline 
<code>UP040</code> fixes (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28164";>#28164</a>)</li>
   <li>[<code>pyupgrade</code>] Skip <code>TypeVarTuple</code> and 
<code>ParamSpec</code> conversions with bounds or constraints 
(<code>UP040</code>, <code>UP046</code>, <code>UP047</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28505";>#28505</a>)</li>
   </ul>
   <h3>Rule changes</h3>
   <ul>
   <li>Add support for <code>__lazy_modules__</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28459";>#28459</a>)</li>
   <li>Recognize PEP-728 <code>TypedDict</code> class keywords (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28533";>#28533</a>)</li>
   <li>Recognize quoted types in <code>typing.TypeForm</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28507";>#28507</a>)</li>
   <li>Support conditional assignment to <code>__lazy_modules__</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28491";>#28491</a>)</li>
   <li>[<code>flake8-type-checking</code>] Prefer lazy imports over 
<code>TYPE_CHECKING</code> on Python 3.15 and later (<code>TC001</code>, 
<code>TC002</code>, <code>TC003</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28541";>#28541</a>)</li>
   <li>[<code>pyupgrade</code>] Make the fix for <code>UP040</code> always 
unsafe (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28526";>#28526</a>)</li>
   <li>[<code>pyupgrade</code>] Stop recommending deprecated 
<code>ByteString</code> aliases (<code>UP035</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28498";>#28498</a>)</li>
   <li>[<code>ruff</code>, <code>flake8-use-pathlib</code>] Recognize the 
<code>parent_mode</code> argument (<code>RUF064</code>, <code>PTH103</code>) 
(<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28528";>#28528</a>)</li>
   <li>[<code>ruff</code>] Detect <code>\Z</code> in 
<code>pytest.raises()</code> match patterns (<code>RUF043</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28598";>#28598</a>)</li>
   </ul>
   <h3>CLI</h3>
   <ul>
   <li>Use rule name and code in formatter incompatibility warnings (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28571";>#28571</a>)</li>
   </ul>
   <h3>Configuration</h3>
   <ul>
   <li>[<code>flake8-tidy-imports</code>] Add <code>extend-banned-api</code> 
(<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28644";>#28644</a>)</li>
   </ul>
   <h3>Contributors</h3>
   <ul>
   <li><a 
href="https://github.com/VedantMadane";><code>@​VedantMadane</code></a></li>
   <li><a href="https://github.com/alzeph";><code>@​alzeph</code></a></li>
   <li><a 
href="https://github.com/charliermarsh";><code>@​charliermarsh</code></a></li>
   <li><a 
href="https://github.com/fredrikblau";><code>@​fredrikblau</code></a></li>
   <li><a href="https://github.com/ntBre";><code>@​ntBre</code></a></li>
   <li><a href="https://github.com/zsol";><code>@​zsol</code></a></li>
   <li><a 
href="https://github.com/Aniket-a14";><code>@​Aniket-a14</code></a></li>
   <li><a href="https://github.com/r-b-1";><code>@​r-b-1</code></a></li>
   </ul>
   <h2>0.16.7</h2>
   <p>Released on 2026-09-10.</p>
   <h3>Preview features</h3>
   <ul>
   <li>[<code>ruff</code>] Add rule for default values on method receivers 
(<code>RUF077</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/26700";>#26700</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/62914c4b9b79a9e5004374a9c482ad2ed69290e1";><code>62914c4</code></a>
 Bump version to 0.16.8 (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28648";>#28648</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/c47e0cdc665f56536ce7f7a8ac40fa0ff3f79482";><code>c47e0cd</code></a>
 [ty] Bound aliased intersection expansion during inference (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28546";>#28546</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/ff4747b509ab4fffbe5689fcae39caa7503d1dcf";><code>ff4747b</code></a>
 renovate: update uv hashes correctly with setup-uv (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28621";>#28621</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/94efeaa28630d80b2a74adf3c3963de99ed4ee29";><code>94efeaa</code></a>
 [ty] Compact reachable binding and declaration histories (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28349";>#28349</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/50020fb1e8aa83b0826fa6f5f33a1e93c10cc60e";><code>50020fb</code></a>
 [ty] Avoid storing constraint nodes twice (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28375";>#28375</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/446bb68da50014bb75f5ce1504a80c5883e3b0b2";><code>446bb68</code></a>
 [ty] Compare bound-method receivers before signatures (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28384";>#28384</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/304ab86be5de6507e276ab09f5b43f44aeb92469";><code>304ab86</code></a>
 [<code>flake8-type-checking</code>] Prefer lazy imports over 
<code>TYPE_CHECKING</code> on 3.15+ (`...</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/d940b244f7512427b0d87c7953e88c60e69f9bdf";><code>d940b24</code></a>
 [ty] Watch script dependencies in CLI watch mode (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28125";>#28125</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/fe9f065a504127b11da72c2ff6d7813ddf3ce8ac";><code>fe9f065</code></a>
 [flake8-tidy-imports] Add <code>extend-banned-api</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28644";>#28644</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/31131db44f057cce68fa6b95552b7db54167b0b3";><code>31131db</code></a>
 [ty] Support <code>type[A &amp; B]</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/27124";>#27124</a>)</li>
   <li>Additional commits viewable in <a 
href="https://github.com/astral-sh/ruff/compare/0.16.6...0.16.8";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `pyrefly` from 1.2.0 to 1.3.1
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/facebook/pyrefly/releases";>pyrefly's 
releases</a>.</em></p>
   <blockquote>
   <h2>Pyrefly v1.3.1</h2>
   <p><em>Release date: September 14, 2026</em></p>
   <p>Pyrefly v1.3.1 is a patch release with a single bug fix.</p>
   <hr />
   <h2>🐛 Bug fixes</h2>
   <ul>
   <li><strong><a 
href="https://redirect.github.com/facebook/pyrefly/issues/4909";>#4909</a>:</strong>
 Fixed a critical issue where Pyrefly would immediately crash on startup with a 
thread panic when empty or relative base paths were encountered during 
configuration. The server now safely resolves these paths against the working 
directory, preventing the crash and allowing normal operation.</li>
   </ul>
   <p>Thank-you to all our contributors who found these bugs and reported them! 
Did you know this is one of the most helpful contributions you can make to an 
open-source project? If you find any bugs in Pyrefly we want to know about 
them! Please open a bug report issue <a 
href="https://github.com/facebook/pyrefly/issues";>here</a>.</p>
   <hr />
   <h2>📦 Upgrade</h2>
   <pre lang="bash"><code>pip install --upgrade pyrefly==1.3.1
   </code></pre>
   <h3>How to safely upgrade your codebase</h3>
   <p>Upgrading the version of Pyrefly you're using or a third-party library 
you depend on can reveal new type errors in your code. Fixing them all at once 
is often unrealistic. We've written scripts to help you temporarily silence 
them. After upgrading, follow these steps:</p>
   <ol>
   <li><code>pyrefly check --suppress-errors</code></li>
   <li>Run your code formatter of choice</li>
   <li><code>pyrefly check --remove-unused-ignores</code></li>
   <li>Repeat until you achieve a clean formatting run and a clean type 
check.</li>
   </ol>
   <p>This will add <code># pyrefly: ignore</code> comments to your code, 
enabling you to silence errors and return to fix them later. This can make the 
process of upgrading a large codebase much more manageable.</p>
   <p>Read more about error suppressions in the <a 
href="https://pyrefly.org/en/docs/error-suppressions/";>Pyrefly 
documentation</a>.</p>
   <h2>Pyrefly v1.3.0</h2>
   <p><em>Release date: September 10, 2026</em></p>
   <p>Pyrefly v1.3.0 bundles <strong>934 commits</strong> from <strong>71 
contributors</strong>.</p>
   <hr />
   <h2>🔍Release Highlights</h2>
   <h3>Type Checking</h3>
   <ul>
   <li><strong>New diagnostics and more accurate type inference.</strong> 
Pyrefly now catches invalid literal regular expressions, invalid 
<code>mock.patch</code> targets, unsupported <code>dataclass_transform</code> 
arguments, incompatible <code>Protocol.__call__</code> overrides, and 
unimplemented abstract methods. Pattern-match exhaustiveness, overload 
resolution, narrowing, and generic inference are also more accurate.</li>
   <li><strong>Better support for major Python frameworks.</strong> Pyrefly 
understands same-file Django reverse relationships, checks SQLAlchemy updates 
against model fields, and recognizes attributes registered on PyTorch 
modules.</li>
   </ul>
   <h3>Language Server</h3>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/3e3177d0f4755b56c2d5a710d830eed89b14c2e3";><code>3e3177d</code></a>
 cut 1.3.1</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/344571484426e55054ac8658015ef6cd0a72fe8c";><code>3445714</code></a>
 release notes for v1.3.1</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/c1be891c4aac146af9d5e8f80c3971ca126253d6";><code>c1be891</code></a>
 fix pyrefly instantly dies with with thread panic <a 
href="https://redirect.github.com/facebook/pyrefly/issues/4909";>#4909</a> (<a 
href="https://redirect.github.com/facebook/pyrefly/issues/4925";>#4925</a>)</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/624bdc4dd177b055a4e98cd82084528921da9c2c";><code>624bdc4</code></a>
 cut 1.3.0</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/ad6958ceef36af1ae0fe32048894477c66cdf946";><code>ad6958c</code></a>
 feat: support Pyrefly-specific type ignore codes</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/f1d8f621bb84d78f15b93683e0c1b2d4945e0bf3";><code>f1d8f62</code></a>
 Bump fast-uri from 3.1.5 to 3.1.7 in /website (<a 
href="https://redirect.github.com/facebook/pyrefly/issues/4789";>#4789</a>)</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/cb178b986fd37a81f45609387e29263455487e74";><code>cb178b9</code></a>
 add type stubs for remaining jax.lax APIs (<a 
href="https://redirect.github.com/facebook/pyrefly/issues/4875";>#4875</a>)</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/8ee41cafc5b96c666f7067103954076fff21fc2b";><code>8ee41ca</code></a>
 Model polars join(..., coalesce=...) (<a 
href="https://redirect.github.com/facebook/pyrefly/issues/4833";>#4833</a>) (<a 
href="https://redirect.github.com/facebook/pyrefly/issues/4859";>#4859</a>)</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/5d00010869f817a8dce46c5b1e1966df34a4616f";><code>5d00010</code></a>
 Find methods and other nested definitions in workspace symbols</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/5b392caf81196c8d3b52ec56320246ce0c451e18";><code>5b392ca</code></a>
 Cache flat symbols for first-party modules</li>
   <li>Additional commits viewable in <a 
href="https://github.com/facebook/pyrefly/compare/1.2.0...1.3.1";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `ruff` from 0.16.6 to 0.16.8
   <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.16.8</h2>
   <h2>Release Notes</h2>
   <p>Released on 2026-09-16.</p>
   <h3>Bug fixes</h3>
   <ul>
   <li>Visit functional <code>TypedDict</code> keyword arguments correctly (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28584";>#28584</a>)</li>
   <li>[<code>flake8-simplify</code>] Detect nested <code>async with</code> 
under sync parent (<code>SIM117</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/27821";>#27821</a>)</li>
   <li>[<code>flake8-simplify</code>] Preserve operand order in 
<code>SIM109</code> fix (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/27824";>#27824</a>)</li>
   <li>[<code>pyupgrade</code>] Preserve required parentheses in multiline 
<code>UP040</code> fixes (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28164";>#28164</a>)</li>
   <li>[<code>pyupgrade</code>] Skip <code>TypeVarTuple</code> and 
<code>ParamSpec</code> conversions with bounds or constraints 
(<code>UP040</code>, <code>UP046</code>, <code>UP047</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28505";>#28505</a>)</li>
   </ul>
   <h3>Rule changes</h3>
   <ul>
   <li>Add support for <code>__lazy_modules__</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28459";>#28459</a>)</li>
   <li>Recognize PEP-728 <code>TypedDict</code> class keywords (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28533";>#28533</a>)</li>
   <li>Recognize quoted types in <code>typing.TypeForm</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28507";>#28507</a>)</li>
   <li>Support conditional assignment to <code>__lazy_modules__</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28491";>#28491</a>)</li>
   <li>[<code>flake8-type-checking</code>] Prefer lazy imports over 
<code>TYPE_CHECKING</code> on Python 3.15 and later (<code>TC001</code>, 
<code>TC002</code>, <code>TC003</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28541";>#28541</a>)</li>
   <li>[<code>pyupgrade</code>] Make the fix for <code>UP040</code> always 
unsafe (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28526";>#28526</a>)</li>
   <li>[<code>pyupgrade</code>] Stop recommending deprecated 
<code>ByteString</code> aliases (<code>UP035</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28498";>#28498</a>)</li>
   <li>[<code>ruff</code>, <code>flake8-use-pathlib</code>] Recognize the 
<code>parent_mode</code> argument (<code>RUF064</code>, <code>PTH103</code>) 
(<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28528";>#28528</a>)</li>
   <li>[<code>ruff</code>] Detect <code>\Z</code> in 
<code>pytest.raises()</code> match patterns (<code>RUF043</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28598";>#28598</a>)</li>
   </ul>
   <h3>CLI</h3>
   <ul>
   <li>Use rule name and code in formatter incompatibility warnings (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28571";>#28571</a>)</li>
   </ul>
   <h3>Configuration</h3>
   <ul>
   <li>[<code>flake8-tidy-imports</code>] Add <code>extend-banned-api</code> 
(<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28644";>#28644</a>)</li>
   </ul>
   <h3>Contributors</h3>
   <ul>
   <li><a 
href="https://github.com/VedantMadane";><code>@​VedantMadane</code></a></li>
   <li><a href="https://github.com/alzeph";><code>@​alzeph</code></a></li>
   <li><a 
href="https://github.com/charliermarsh";><code>@​charliermarsh</code></a></li>
   <li><a 
href="https://github.com/fredrikblau";><code>@​fredrikblau</code></a></li>
   <li><a href="https://github.com/ntBre";><code>@​ntBre</code></a></li>
   <li><a href="https://github.com/zsol";><code>@​zsol</code></a></li>
   <li><a 
href="https://github.com/Aniket-a14";><code>@​Aniket-a14</code></a></li>
   <li><a href="https://github.com/r-b-1";><code>@​r-b-1</code></a></li>
   </ul>
   <h2>Install ruff 0.16.8</h2>
   <h3>Install prebuilt binaries via shell script</h3>
   <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf 
https://releases.astral.sh/github/ruff/releases/download/0.16.8/ruff-installer.sh
 | sh
   &lt;/tr&gt;&lt;/table&gt; 
   </code></pre>
   </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.16.8</h2>
   <p>Released on 2026-09-16.</p>
   <h3>Bug fixes</h3>
   <ul>
   <li>Visit functional <code>TypedDict</code> keyword arguments correctly (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28584";>#28584</a>)</li>
   <li>[<code>flake8-simplify</code>] Detect nested <code>async with</code> 
under sync parent (<code>SIM117</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/27821";>#27821</a>)</li>
   <li>[<code>flake8-simplify</code>] Preserve operand order in 
<code>SIM109</code> fix (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/27824";>#27824</a>)</li>
   <li>[<code>pyupgrade</code>] Preserve required parentheses in multiline 
<code>UP040</code> fixes (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28164";>#28164</a>)</li>
   <li>[<code>pyupgrade</code>] Skip <code>TypeVarTuple</code> and 
<code>ParamSpec</code> conversions with bounds or constraints 
(<code>UP040</code>, <code>UP046</code>, <code>UP047</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28505";>#28505</a>)</li>
   </ul>
   <h3>Rule changes</h3>
   <ul>
   <li>Add support for <code>__lazy_modules__</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28459";>#28459</a>)</li>
   <li>Recognize PEP-728 <code>TypedDict</code> class keywords (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28533";>#28533</a>)</li>
   <li>Recognize quoted types in <code>typing.TypeForm</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28507";>#28507</a>)</li>
   <li>Support conditional assignment to <code>__lazy_modules__</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28491";>#28491</a>)</li>
   <li>[<code>flake8-type-checking</code>] Prefer lazy imports over 
<code>TYPE_CHECKING</code> on Python 3.15 and later (<code>TC001</code>, 
<code>TC002</code>, <code>TC003</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28541";>#28541</a>)</li>
   <li>[<code>pyupgrade</code>] Make the fix for <code>UP040</code> always 
unsafe (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28526";>#28526</a>)</li>
   <li>[<code>pyupgrade</code>] Stop recommending deprecated 
<code>ByteString</code> aliases (<code>UP035</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28498";>#28498</a>)</li>
   <li>[<code>ruff</code>, <code>flake8-use-pathlib</code>] Recognize the 
<code>parent_mode</code> argument (<code>RUF064</code>, <code>PTH103</code>) 
(<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28528";>#28528</a>)</li>
   <li>[<code>ruff</code>] Detect <code>\Z</code> in 
<code>pytest.raises()</code> match patterns (<code>RUF043</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28598";>#28598</a>)</li>
   </ul>
   <h3>CLI</h3>
   <ul>
   <li>Use rule name and code in formatter incompatibility warnings (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28571";>#28571</a>)</li>
   </ul>
   <h3>Configuration</h3>
   <ul>
   <li>[<code>flake8-tidy-imports</code>] Add <code>extend-banned-api</code> 
(<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28644";>#28644</a>)</li>
   </ul>
   <h3>Contributors</h3>
   <ul>
   <li><a 
href="https://github.com/VedantMadane";><code>@​VedantMadane</code></a></li>
   <li><a href="https://github.com/alzeph";><code>@​alzeph</code></a></li>
   <li><a 
href="https://github.com/charliermarsh";><code>@​charliermarsh</code></a></li>
   <li><a 
href="https://github.com/fredrikblau";><code>@​fredrikblau</code></a></li>
   <li><a href="https://github.com/ntBre";><code>@​ntBre</code></a></li>
   <li><a href="https://github.com/zsol";><code>@​zsol</code></a></li>
   <li><a 
href="https://github.com/Aniket-a14";><code>@​Aniket-a14</code></a></li>
   <li><a href="https://github.com/r-b-1";><code>@​r-b-1</code></a></li>
   </ul>
   <h2>0.16.7</h2>
   <p>Released on 2026-09-10.</p>
   <h3>Preview features</h3>
   <ul>
   <li>[<code>ruff</code>] Add rule for default values on method receivers 
(<code>RUF077</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/26700";>#26700</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/62914c4b9b79a9e5004374a9c482ad2ed69290e1";><code>62914c4</code></a>
 Bump version to 0.16.8 (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28648";>#28648</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/c47e0cdc665f56536ce7f7a8ac40fa0ff3f79482";><code>c47e0cd</code></a>
 [ty] Bound aliased intersection expansion during inference (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28546";>#28546</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/ff4747b509ab4fffbe5689fcae39caa7503d1dcf";><code>ff4747b</code></a>
 renovate: update uv hashes correctly with setup-uv (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28621";>#28621</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/94efeaa28630d80b2a74adf3c3963de99ed4ee29";><code>94efeaa</code></a>
 [ty] Compact reachable binding and declaration histories (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28349";>#28349</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/50020fb1e8aa83b0826fa6f5f33a1e93c10cc60e";><code>50020fb</code></a>
 [ty] Avoid storing constraint nodes twice (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28375";>#28375</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/446bb68da50014bb75f5ce1504a80c5883e3b0b2";><code>446bb68</code></a>
 [ty] Compare bound-method receivers before signatures (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28384";>#28384</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/304ab86be5de6507e276ab09f5b43f44aeb92469";><code>304ab86</code></a>
 [<code>flake8-type-checking</code>] Prefer lazy imports over 
<code>TYPE_CHECKING</code> on 3.15+ (`...</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/d940b244f7512427b0d87c7953e88c60e69f9bdf";><code>d940b24</code></a>
 [ty] Watch script dependencies in CLI watch mode (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28125";>#28125</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/fe9f065a504127b11da72c2ff6d7813ddf3ce8ac";><code>fe9f065</code></a>
 [flake8-tidy-imports] Add <code>extend-banned-api</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28644";>#28644</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/31131db44f057cce68fa6b95552b7db54167b0b3";><code>31131db</code></a>
 [ty] Support <code>type[A &amp; B]</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/27124";>#27124</a>)</li>
   <li>Additional commits viewable in <a 
href="https://github.com/astral-sh/ruff/compare/0.16.6...0.16.8";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `pyrefly` from 1.2.0 to 1.3.1
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/facebook/pyrefly/releases";>pyrefly's 
releases</a>.</em></p>
   <blockquote>
   <h2>Pyrefly v1.3.1</h2>
   <p><em>Release date: September 14, 2026</em></p>
   <p>Pyrefly v1.3.1 is a patch release with a single bug fix.</p>
   <hr />
   <h2>🐛 Bug fixes</h2>
   <ul>
   <li><strong><a 
href="https://redirect.github.com/facebook/pyrefly/issues/4909";>#4909</a>:</strong>
 Fixed a critical issue where Pyrefly would immediately crash on startup with a 
thread panic when empty or relative base paths were encountered during 
configuration. The server now safely resolves these paths against the working 
directory, preventing the crash and allowing normal operation.</li>
   </ul>
   <p>Thank-you to all our contributors who found these bugs and reported them! 
Did you know this is one of the most helpful contributions you can make to an 
open-source project? If you find any bugs in Pyrefly we want to know about 
them! Please open a bug report issue <a 
href="https://github.com/facebook/pyrefly/issues";>here</a>.</p>
   <hr />
   <h2>📦 Upgrade</h2>
   <pre lang="bash"><code>pip install --upgrade pyrefly==1.3.1
   </code></pre>
   <h3>How to safely upgrade your codebase</h3>
   <p>Upgrading the version of Pyrefly you're using or a third-party library 
you depend on can reveal new type errors in your code. Fixing them all at once 
is often unrealistic. We've written scripts to help you temporarily silence 
them. After upgrading, follow these steps:</p>
   <ol>
   <li><code>pyrefly check --suppress-errors</code></li>
   <li>Run your code formatter of choice</li>
   <li><code>pyrefly check --remove-unused-ignores</code></li>
   <li>Repeat until you achieve a clean formatting run and a clean type 
check.</li>
   </ol>
   <p>This will add <code># pyrefly: ignore</code> comments to your code, 
enabling you to silence errors and return to fix them later. This can make the 
process of upgrading a large codebase much more manageable.</p>
   <p>Read more about error suppressions in the <a 
href="https://pyrefly.org/en/docs/error-suppressions/";>Pyrefly 
documentation</a>.</p>
   <h2>Pyrefly v1.3.0</h2>
   <p><em>Release date: September 10, 2026</em></p>
   <p>Pyrefly v1.3.0 bundles <strong>934 commits</strong> from <strong>71 
contributors</strong>.</p>
   <hr />
   <h2>🔍Release Highlights</h2>
   <h3>Type Checking</h3>
   <ul>
   <li><strong>New diagnostics and more accurate type inference.</strong> 
Pyrefly now catches invalid literal regular expressions, invalid 
<code>mock.patch</code> targets, unsupported <code>dataclass_transform</code> 
arguments, incompatible <code>Protocol.__call__</code> overrides, and 
unimplemented abstract methods. Pattern-match exhaustiveness, overload 
resolution, narrowing, and generic inference are also more accurate.</li>
   <li><strong>Better support for major Python frameworks.</strong> Pyrefly 
understands same-file Django reverse relationships, checks SQLAlchemy updates 
against model fields, and recognizes attributes registered on PyTorch 
modules.</li>
   </ul>
   <h3>Language Server</h3>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/3e3177d0f4755b56c2d5a710d830eed89b14c2e3";><code>3e3177d</code></a>
 cut 1.3.1</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/344571484426e55054ac8658015ef6cd0a72fe8c";><code>3445714</code></a>
 release notes for v1.3.1</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/c1be891c4aac146af9d5e8f80c3971ca126253d6";><code>c1be891</code></a>
 fix pyrefly instantly dies with with thread panic <a 
href="https://redirect.github.com/facebook/pyrefly/issues/4909";>#4909</a> (<a 
href="https://redirect.github.com/facebook/pyrefly/issues/4925";>#4925</a>)</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/624bdc4dd177b055a4e98cd82084528921da9c2c";><code>624bdc4</code></a>
 cut 1.3.0</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/ad6958ceef36af1ae0fe32048894477c66cdf946";><code>ad6958c</code></a>
 feat: support Pyrefly-specific type ignore codes</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/f1d8f621bb84d78f15b93683e0c1b2d4945e0bf3";><code>f1d8f62</code></a>
 Bump fast-uri from 3.1.5 to 3.1.7 in /website (<a 
href="https://redirect.github.com/facebook/pyrefly/issues/4789";>#4789</a>)</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/cb178b986fd37a81f45609387e29263455487e74";><code>cb178b9</code></a>
 add type stubs for remaining jax.lax APIs (<a 
href="https://redirect.github.com/facebook/pyrefly/issues/4875";>#4875</a>)</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/8ee41cafc5b96c666f7067103954076fff21fc2b";><code>8ee41ca</code></a>
 Model polars join(..., coalesce=...) (<a 
href="https://redirect.github.com/facebook/pyrefly/issues/4833";>#4833</a>) (<a 
href="https://redirect.github.com/facebook/pyrefly/issues/4859";>#4859</a>)</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/5d00010869f817a8dce46c5b1e1966df34a4616f";><code>5d00010</code></a>
 Find methods and other nested definitions in workspace symbols</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/5b392caf81196c8d3b52ec56320246ce0c451e18";><code>5b392ca</code></a>
 Cache flat symbols for first-party modules</li>
   <li>Additional commits viewable in <a 
href="https://github.com/facebook/pyrefly/compare/1.2.0...1.3.1";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `ruff` from 0.16.6 to 0.16.8
   <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.16.8</h2>
   <h2>Release Notes</h2>
   <p>Released on 2026-09-16.</p>
   <h3>Bug fixes</h3>
   <ul>
   <li>Visit functional <code>TypedDict</code> keyword arguments correctly (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28584";>#28584</a>)</li>
   <li>[<code>flake8-simplify</code>] Detect nested <code>async with</code> 
under sync parent (<code>SIM117</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/27821";>#27821</a>)</li>
   <li>[<code>flake8-simplify</code>] Preserve operand order in 
<code>SIM109</code> fix (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/27824";>#27824</a>)</li>
   <li>[<code>pyupgrade</code>] Preserve required parentheses in multiline 
<code>UP040</code> fixes (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28164";>#28164</a>)</li>
   <li>[<code>pyupgrade</code>] Skip <code>TypeVarTuple</code> and 
<code>ParamSpec</code> conversions with bounds or constraints 
(<code>UP040</code>, <code>UP046</code>, <code>UP047</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28505";>#28505</a>)</li>
   </ul>
   <h3>Rule changes</h3>
   <ul>
   <li>Add support for <code>__lazy_modules__</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28459";>#28459</a>)</li>
   <li>Recognize PEP-728 <code>TypedDict</code> class keywords (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28533";>#28533</a>)</li>
   <li>Recognize quoted types in <code>typing.TypeForm</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28507";>#28507</a>)</li>
   <li>Support conditional assignment to <code>__lazy_modules__</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28491";>#28491</a>)</li>
   <li>[<code>flake8-type-checking</code>] Prefer lazy imports over 
<code>TYPE_CHECKING</code> on Python 3.15 and later (<code>TC001</code>, 
<code>TC002</code>, <code>TC003</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28541";>#28541</a>)</li>
   <li>[<code>pyupgrade</code>] Make the fix for <code>UP040</code> always 
unsafe (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28526";>#28526</a>)</li>
   <li>[<code>pyupgrade</code>] Stop recommending deprecated 
<code>ByteString</code> aliases (<code>UP035</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28498";>#28498</a>)</li>
   <li>[<code>ruff</code>, <code>flake8-use-pathlib</code>] Recognize the 
<code>parent_mode</code> argument (<code>RUF064</code>, <code>PTH103</code>) 
(<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28528";>#28528</a>)</li>
   <li>[<code>ruff</code>] Detect <code>\Z</code> in 
<code>pytest.raises()</code> match patterns (<code>RUF043</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28598";>#28598</a>)</li>
   </ul>
   <h3>CLI</h3>
   <ul>
   <li>Use rule name and code in formatter incompatibility warnings (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28571";>#28571</a>)</li>
   </ul>
   <h3>Configuration</h3>
   <ul>
   <li>[<code>flake8-tidy-imports</code>] Add <code>extend-banned-api</code> 
(<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28644";>#28644</a>)</li>
   </ul>
   <h3>Contributors</h3>
   <ul>
   <li><a 
href="https://github.com/VedantMadane";><code>@​VedantMadane</code></a></li>
   <li><a href="https://github.com/alzeph";><code>@​alzeph</code></a></li>
   <li><a 
href="https://github.com/charliermarsh";><code>@​charliermarsh</code></a></li>
   <li><a 
href="https://github.com/fredrikblau";><code>@​fredrikblau</code></a></li>
   <li><a href="https://github.com/ntBre";><code>@​ntBre</code></a></li>
   <li><a href="https://github.com/zsol";><code>@​zsol</code></a></li>
   <li><a 
href="https://github.com/Aniket-a14";><code>@​Aniket-a14</code></a></li>
   <li><a href="https://github.com/r-b-1";><code>@​r-b-1</code></a></li>
   </ul>
   <h2>Install ruff 0.16.8</h2>
   <h3>Install prebuilt binaries via shell script</h3>
   <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf 
https://releases.astral.sh/github/ruff/releases/download/0.16.8/ruff-installer.sh
 | sh
   &lt;/tr&gt;&lt;/table&gt; 
   </code></pre>
   </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.16.8</h2>
   <p>Released on 2026-09-16.</p>
   <h3>Bug fixes</h3>
   <ul>
   <li>Visit functional <code>TypedDict</code> keyword arguments correctly (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28584";>#28584</a>)</li>
   <li>[<code>flake8-simplify</code>] Detect nested <code>async with</code> 
under sync parent (<code>SIM117</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/27821";>#27821</a>)</li>
   <li>[<code>flake8-simplify</code>] Preserve operand order in 
<code>SIM109</code> fix (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/27824";>#27824</a>)</li>
   <li>[<code>pyupgrade</code>] Preserve required parentheses in multiline 
<code>UP040</code> fixes (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28164";>#28164</a>)</li>
   <li>[<code>pyupgrade</code>] Skip <code>TypeVarTuple</code> and 
<code>ParamSpec</code> conversions with bounds or constraints 
(<code>UP040</code>, <code>UP046</code>, <code>UP047</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28505";>#28505</a>)</li>
   </ul>
   <h3>Rule changes</h3>
   <ul>
   <li>Add support for <code>__lazy_modules__</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28459";>#28459</a>)</li>
   <li>Recognize PEP-728 <code>TypedDict</code> class keywords (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28533";>#28533</a>)</li>
   <li>Recognize quoted types in <code>typing.TypeForm</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28507";>#28507</a>)</li>
   <li>Support conditional assignment to <code>__lazy_modules__</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28491";>#28491</a>)</li>
   <li>[<code>flake8-type-checking</code>] Prefer lazy imports over 
<code>TYPE_CHECKING</code> on Python 3.15 and later (<code>TC001</code>, 
<code>TC002</code>, <code>TC003</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28541";>#28541</a>)</li>
   <li>[<code>pyupgrade</code>] Make the fix for <code>UP040</code> always 
unsafe (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28526";>#28526</a>)</li>
   <li>[<code>pyupgrade</code>] Stop recommending deprecated 
<code>ByteString</code> aliases (<code>UP035</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28498";>#28498</a>)</li>
   <li>[<code>ruff</code>, <code>flake8-use-pathlib</code>] Recognize the 
<code>parent_mode</code> argument (<code>RUF064</code>, <code>PTH103</code>) 
(<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28528";>#28528</a>)</li>
   <li>[<code>ruff</code>] Detect <code>\Z</code> in 
<code>pytest.raises()</code> match patterns (<code>RUF043</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28598";>#28598</a>)</li>
   </ul>
   <h3>CLI</h3>
   <ul>
   <li>Use rule name and code in formatter incompatibility warnings (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28571";>#28571</a>)</li>
   </ul>
   <h3>Configuration</h3>
   <ul>
   <li>[<code>flake8-tidy-imports</code>] Add <code>extend-banned-api</code> 
(<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28644";>#28644</a>)</li>
   </ul>
   <h3>Contributors</h3>
   <ul>
   <li><a 
href="https://github.com/VedantMadane";><code>@​VedantMadane</code></a></li>
   <li><a href="https://github.com/alzeph";><code>@​alzeph</code></a></li>
   <li><a 
href="https://github.com/charliermarsh";><code>@​charliermarsh</code></a></li>
   <li><a 
href="https://github.com/fredrikblau";><code>@​fredrikblau</code></a></li>
   <li><a href="https://github.com/ntBre";><code>@​ntBre</code></a></li>
   <li><a href="https://github.com/zsol";><code>@​zsol</code></a></li>
   <li><a 
href="https://github.com/Aniket-a14";><code>@​Aniket-a14</code></a></li>
   <li><a href="https://github.com/r-b-1";><code>@​r-b-1</code></a></li>
   </ul>
   <h2>0.16.7</h2>
   <p>Released on 2026-09-10.</p>
   <h3>Preview features</h3>
   <ul>
   <li>[<code>ruff</code>] Add rule for default values on method receivers 
(<code>RUF077</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/26700";>#26700</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/62914c4b9b79a9e5004374a9c482ad2ed69290e1";><code>62914c4</code></a>
 Bump version to 0.16.8 (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28648";>#28648</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/c47e0cdc665f56536ce7f7a8ac40fa0ff3f79482";><code>c47e0cd</code></a>
 [ty] Bound aliased intersection expansion during inference (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28546";>#28546</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/ff4747b509ab4fffbe5689fcae39caa7503d1dcf";><code>ff4747b</code></a>
 renovate: update uv hashes correctly with setup-uv (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28621";>#28621</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/94efeaa28630d80b2a74adf3c3963de99ed4ee29";><code>94efeaa</code></a>
 [ty] Compact reachable binding and declaration histories (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28349";>#28349</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/50020fb1e8aa83b0826fa6f5f33a1e93c10cc60e";><code>50020fb</code></a>
 [ty] Avoid storing constraint nodes twice (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28375";>#28375</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/446bb68da50014bb75f5ce1504a80c5883e3b0b2";><code>446bb68</code></a>
 [ty] Compare bound-method receivers before signatures (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28384";>#28384</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/304ab86be5de6507e276ab09f5b43f44aeb92469";><code>304ab86</code></a>
 [<code>flake8-type-checking</code>] Prefer lazy imports over 
<code>TYPE_CHECKING</code> on 3.15+ (`...</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/d940b244f7512427b0d87c7953e88c60e69f9bdf";><code>d940b24</code></a>
 [ty] Watch script dependencies in CLI watch mode (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28125";>#28125</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/fe9f065a504127b11da72c2ff6d7813ddf3ce8ac";><code>fe9f065</code></a>
 [flake8-tidy-imports] Add <code>extend-banned-api</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28644";>#28644</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/31131db44f057cce68fa6b95552b7db54167b0b3";><code>31131db</code></a>
 [ty] Support <code>type[A &amp; B]</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/27124";>#27124</a>)</li>
   <li>Additional commits viewable in <a 
href="https://github.com/astral-sh/ruff/compare/0.16.6...0.16.8";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   
   You can trigger a rebase of this PR 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 <dependency name> major version` will close this group 
update PR and stop Dependabot creating any more for the specific dependency's 
major version (unless you unignore this specific dependency's major version or 
upgrade to it yourself)
   - `@dependabot ignore <dependency name> minor version` will close this group 
update PR and stop Dependabot creating any more for the specific dependency's 
minor version (unless you unignore this specific dependency's minor version or 
upgrade to it yourself)
   - `@dependabot ignore <dependency name>` will close this group update PR and 
stop Dependabot creating any more for the specific dependency (unless you 
unignore this specific dependency or upgrade to it yourself)
   - `@dependabot unignore <dependency name>` will remove all of the ignore 
conditions of the specified dependency
   - `@dependabot unignore <dependency name> <ignore condition>` will remove 
the ignore condition of the specified dependency and ignore conditions
   
   
   </details>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to