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

   Bumps the python group with 3 updates in the /bdd/python directory: 
[pyrefly](https://github.com/facebook/pyrefly), 
[pytest-bdd](https://github.com/pytest-dev/pytest-bdd) 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.3.1 to 1.3.2
   <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.2</h2>
   <p><em>Release date: September 28, 2026</em></p>
   <p>Pyrefly v1.3.2 is a patch release that fixes regressions in how Pyrefly 
infers the type of a variable after it is assigned a value of type 
<code>Any</code>.</p>
   <hr />
   <h2>🐛 Bug fixes</h2>
   <ul>
   <li><strong><a 
href="https://redirect.github.com/facebook/pyrefly/issues/4846";>#4846</a>:</strong>
 Fixed several regressions from v1.3.0 in type inference after a variable is 
reassigned to <code>Any</code>:
   <ul>
   <li>Assigning an implicit <code>Any</code> (a value with no known type, such 
as the result of an unannotated function or an unresolved import) to an 
annotated variable once again produces <code>Unknown</code>. It no longer turns 
into an explicit <code>Any</code>.</li>
   <li>When a variable annotated as <code>Optional[T]</code> or <code>T | 
None</code> is narrowed to <code>None</code> and then reassigned inside that 
branch, Pyrefly no longer adds the annotation's <code>None</code> back after 
the branch. For example, <code>x: Any | None</code> followed by <code>if x is 
None: x = get_any()</code> now gives <code>Any</code> instead of <code>Any | 
None</code>.</li>
   <li>When a variable's annotation is a union that contains <code>Any</code>, 
assigning <code>Any</code> to it now narrows the variable to <code>Any</code>. 
For example, <code>x: Any | None</code> followed by <code>x = x or 
get_any()</code> now gives <code>Any</code> instead of <code>Any | None</code>, 
so later attribute access no longer reports a false 
<code>missing-attribute</code> error on <code>None</code>.</li>
   </ul>
   </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.2
   </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>
   </blockquote>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/e46f4f2c8f271bc3d1bdd7522095f07c0060a3c2";><code>e46f4f2</code></a>
 cut 1.3.2</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/a1020bf7d38cddb1afaa94e612883aed07c9a502";><code>a1020bf</code></a>
 release notes for v1.3.2</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/b4d1cd4682bd5aac78037350a27a97e9c09090ef";><code>b4d1cd4</code></a>
 Allow assignment to <code>Any</code> when a name is annotated as <code>Any | 
...</code></li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/03eff7300447de0f04519b1902d03f95f819e9c7";><code>03eff73</code></a>
 Merge AnnotationStyle::ForwardedInitial and Forwarded</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/1a0ac5f09981c1d5e627de8d2d01b70e0fe21fe4";><code>1a0ac5f</code></a>
 Keep a name's annotated type only when it is still active</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/fc131f87aa53d5097f901e2ad81e599486f61d6f";><code>fc131f8</code></a>
 Allow an expression to overwrite a name's <code>AnyStyle</code></li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/4b261cd5320484391b4481400522ed1e865fbd62";><code>4b261cd</code></a>
 Move tests for assignment to <code>Any</code> to their own file</li>
   <li>See full diff in <a 
href="https://github.com/facebook/pyrefly/compare/1.3.1...1.3.2";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `pytest-bdd` from 8.1.0 to 9.0.0
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/pytest-dev/pytest-bdd/blob/master/CHANGES.rst";>pytest-bdd's
 changelog</a>.</em></p>
   <blockquote>
   <h2>[9.0.0] - 2026-09-30</h2>
   <p>Added
   +++++</p>
   <p>Changed
   +++++++</p>
   <ul>
   <li>Relaxed <code>gherkin-official</code> dependency requirement to 
<code>&gt;=29.0.0</code> to allow for newer versions of the 
<code>gherkin-official</code> package.</li>
   <li>Excluded <code>gherkin-official</code> <code>31.0.0</code> and 
<code>32.0.0</code>, which crash with <code>StopIteration</code> when parsing 
empty descriptions (fixed upstream in <code>32.0.1</code>).</li>
   <li>The <code>--gherkin-terminal-reporter</code> incompatibility errors 
(with another terminal reporter or with <code>xdist</code>) are now raised as 
<code>pytest.UsageError</code> instead of a bare <code>Exception</code>.</li>
   </ul>
   <p>Deprecated
   ++++++++++</p>
   <p>Removed
   +++++++</p>
   <ul>
   <li>Dropped support for python 3.9 (end-of-life, and its locked dev 
dependencies had unfixable security alerts). Supported python versions: 3.10, 
3.11, 3.12, 3.13, 3.14.</li>
   <li>The following private attributes are not available anymore 
(<code>[#658](https://github.com/pytest-dev/pytest-bdd/issues/658) 
&lt;https://github.com/pytest-dev/pytest-bdd/pull/658&gt;</code>_):
   <ul>
   <li><code>_pytest.reports.TestReport.scenario</code>; replaced by 
<code>pytest_bdd.reporting.test_report_context</code> WeakKeyDictionary 
(internal use)</li>
   <li><code>__scenario__</code> attribute of test functions generated by the 
<code>@scenario</code> (and <code>@scenarios</code>) decorator; replaced by 
<code>pytest_bdd.scenario.scenario_wrapper_template_registry</code> 
WeakKeyDictionary (internal use)</li>
   <li><code>_pytest.nodes.Item.__scenario_report__</code>; replaced by 
<code>pytest_bdd.reporting.scenario_reports_registry</code> WeakKeyDictionary 
(internal use)</li>
   <li><code>_pytest_bdd_step_context</code> attribute of internal test 
function markers; replaced by 
<code>pytest_bdd.steps.step_function_context_registry</code> WeakKeyDictionary 
(internal use)</li>
   </ul>
   </li>
   </ul>
   <p>Fixed
   +++++</p>
   <ul>
   <li>Backslashes in datatable and examples table cells are no longer 
over-quoted. A cell containing a single backslash now reaches the step as a 
single backslash, matching the Gherkin escaping rules. If you compensated by 
doubling backslashes in feature files, undo that. 
<code>[#769](https://github.com/pytest-dev/pytest-bdd/issues/769) 
&lt;https://github.com/pytest-dev/pytest-bdd/issues/769&gt;</code>_</li>
   <li>Made type annotations stronger and removed most of the 
<code>typing.Any</code> usages and <code># type: ignore</code> annotations. 
<code>[#658](https://github.com/pytest-dev/pytest-bdd/issues/658) 
&lt;https://github.com/pytest-dev/pytest-bdd/pull/658&gt;</code>_</li>
   <li>Empty docstrings are now correctly forwarded to step functions as an 
empty string instead of being silently dropped, which previously caused pytest 
to report a missing <code>docstring</code> fixture. 
<code>[#809](https://github.com/pytest-dev/pytest-bdd/issues/809) 
&lt;https://github.com/pytest-dev/pytest-bdd/issues/809&gt;</code>_</li>
   <li>Injecting a <code>target_fixture</code> no longer emits 
<code>PytestRemovedIn10Warning</code> on pytest 9.1+, which deprecated passing 
<code>nodeid</code> to <code>_register_fixture</code>. 
<code>[#823](https://github.com/pytest-dev/pytest-bdd/issues/823) 
&lt;https://github.com/pytest-dev/pytest-bdd/issues/823&gt;</code>_</li>
   </ul>
   <p>Security
   ++++++++</p>
   </blockquote>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/pytest-dev/pytest-bdd/commit/c6cea53bbe34fc87ecb30479e4232c68fd474ea5";><code>c6cea53</code></a>
 Bump to version 9.0.0</li>
   <li><a 
href="https://github.com/pytest-dev/pytest-bdd/commit/9eb8a782f1c9d0706f3bf61024a3961cb5f2c76f";><code>9eb8a78</code></a>
 Merge pull request <a 
href="https://redirect.github.com/pytest-dev/pytest-bdd/issues/836";>#836</a> 
from pytest-dev/ruff-extend-select</li>
   <li><a 
href="https://github.com/pytest-dev/pytest-bdd/commit/75c12e6a3d37f4e8e957f16ea97cae57fd9899d0";><code>75c12e6</code></a>
 Don't require xdist to test the xdist incompatibility error</li>
   <li><a 
href="https://github.com/pytest-dev/pytest-bdd/commit/673bddcb5e5aa5288881add9037286094bbf2005";><code>673bddc</code></a>
 Test gherkin-terminal-reporter incompatibility usage errors</li>
   <li><a 
href="https://github.com/pytest-dev/pytest-bdd/commit/c352767994e0f8304dcdea70b2a481cb2d4e3470";><code>c352767</code></a>
 Use ruff lint.extend-select to keep ruff's default rules</li>
   <li><a 
href="https://github.com/pytest-dev/pytest-bdd/commit/f67096ab65aa218f150109dd6b8160c733273652";><code>f67096a</code></a>
 [pre-commit.ci] pre-commit autoupdate (<a 
href="https://redirect.github.com/pytest-dev/pytest-bdd/issues/826";>#826</a>)</li>
   <li><a 
href="https://github.com/pytest-dev/pytest-bdd/commit/33b2b30bf9ce9300979f11bce265a7096a3bf0de";><code>33b2b30</code></a>
 Merge pull request <a 
href="https://redirect.github.com/pytest-dev/pytest-bdd/issues/834";>#834</a> 
from pytest-dev/switch-to-uv</li>
   <li><a 
href="https://github.com/pytest-dev/pytest-bdd/commit/e0346d3a18a1f5293915b86d385f09e798afca64";><code>e0346d3</code></a>
 Reintroduce license</li>
   <li><a 
href="https://github.com/pytest-dev/pytest-bdd/commit/38d6b2fcf209a56370d6f7dafc146f80833d0b40";><code>38d6b2f</code></a>
 Update CI configuration to use --only-group flag for twine commands</li>
   <li><a 
href="https://github.com/pytest-dev/pytest-bdd/commit/f120acf0898573c8bbc26e637561e6b8d6c8acc4";><code>f120acf</code></a>
 Migrate project from Poetry to UV for dependency management and build 
processes</li>
   <li>Additional commits viewable in <a 
href="https://github.com/pytest-dev/pytest-bdd/compare/8.1.0...9.0.0";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `ruff` from 0.16.8 to 0.16.9
   <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.9</h2>
   <h2>Release Notes</h2>
   <p>Released on 2026-09-24.</p>
   <h3>Preview features</h3>
   <ul>
   <li>[<code>ruff</code>] Avoid false positives for overloaded division 
(<code>RUF069</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28309";>#28309</a>)</li>
   </ul>
   <h3>Bug fixes</h3>
   <ul>
   <li>[<code>flake8-bugbear</code>] Avoid false positives for calls with 
keyword arguments (<code>B009</code>, <code>B010</code>, <code>B043</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28776";>#28776</a>)</li>
   <li>[<code>flake8-tidy-imports</code>] Allow lazy imports to be used in 
deferred annotations (<code>TID255</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28767";>#28767</a>)</li>
   </ul>
   <h3>Rule changes</h3>
   <ul>
   <li>Update LibCST-based fixes for Python 3.15 (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28616";>#28616</a>)</li>
   <li>[<code>flake8-pyi</code>] Mention stubs in the diagnostic message 
(<code>PYI002</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28542";>#28542</a>)</li>
   </ul>
   <h3>Documentation</h3>
   <ul>
   <li>Fix horizontal overflow on the rules documentation page (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28699";>#28699</a>)</li>
   <li>Update rules table with category information (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28651";>#28651</a>)</li>
   <li>[<code>flake8-annotations</code>] Clarify that <code>ANN401</code> 
checks return types in addition to arguments (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28334";>#28334</a>)</li>
   <li>[<code>flake8-bugbear</code>] Document type-checker interaction 
(<code>B010</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28509";>#28509</a>)</li>
   <li>[<code>flake8-comprehensions</code>] Document <code>map</code>/generator 
exception behavior (<code>C417</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/27794";>#27794</a>)</li>
   <li>[<code>ruff</code>] Mention related isort settings (<code>RUF022</code>) 
(<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28719";>#28719</a>)</li>
   </ul>
   <h3>Contributors</h3>
   <ul>
   <li><a 
href="https://github.com/qinpei-dev";><code>@​qinpei-dev</code></a></li>
   <li><a 
href="https://github.com/sanjayrohith";><code>@​sanjayrohith</code></a></li>
   <li><a href="https://github.com/ntBre";><code>@​ntBre</code></a></li>
   <li><a 
href="https://github.com/webdevsamran";><code>@​webdevsamran</code></a></li>
   <li><a href="https://github.com/zaniebot";><code>@​zaniebot</code></a></li>
   <li><a href="https://github.com/ewdurbin";><code>@​ewdurbin</code></a></li>
   <li><a 
href="https://github.com/MichaReiser";><code>@​MichaReiser</code></a></li>
   <li><a href="https://github.com/spaceone";><code>@​spaceone</code></a></li>
   <li><a 
href="https://github.com/IbrahimKhan12";><code>@​IbrahimKhan12</code></a></li>
   <li><a 
href="https://github.com/devtechedge";><code>@​devtechedge</code></a></li>
   <li><a 
href="https://github.com/GruffElixir";><code>@​GruffElixir</code></a></li>
   </ul>
   <h2>Install ruff 0.16.9</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.9/ruff-installer.sh
 | sh
   </code></pre>
   <!-- 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.16.9</h2>
   <p>Released on 2026-09-24.</p>
   <h3>Preview features</h3>
   <ul>
   <li>[<code>ruff</code>] Avoid false positives for overloaded division 
(<code>RUF069</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28309";>#28309</a>)</li>
   </ul>
   <h3>Bug fixes</h3>
   <ul>
   <li>[<code>flake8-bugbear</code>] Avoid false positives for calls with 
keyword arguments (<code>B009</code>, <code>B010</code>, <code>B043</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28776";>#28776</a>)</li>
   <li>[<code>flake8-tidy-imports</code>] Allow lazy imports to be used in 
deferred annotations (<code>TID255</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28767";>#28767</a>)</li>
   </ul>
   <h3>Rule changes</h3>
   <ul>
   <li>Update LibCST-based fixes for Python 3.15 (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28616";>#28616</a>)</li>
   <li>[<code>flake8-pyi</code>] Mention stubs in the diagnostic message 
(<code>PYI002</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28542";>#28542</a>)</li>
   </ul>
   <h3>Documentation</h3>
   <ul>
   <li>Fix horizontal overflow on the rules documentation page (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28699";>#28699</a>)</li>
   <li>Update rules table with category information (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28651";>#28651</a>)</li>
   <li>[<code>flake8-annotations</code>] Clarify that <code>ANN401</code> 
checks return types in addition to arguments (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28334";>#28334</a>)</li>
   <li>[<code>flake8-bugbear</code>] Document type-checker interaction 
(<code>B010</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28509";>#28509</a>)</li>
   <li>[<code>flake8-comprehensions</code>] Document <code>map</code>/generator 
exception behavior (<code>C417</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/27794";>#27794</a>)</li>
   <li>[<code>ruff</code>] Mention related isort settings (<code>RUF022</code>) 
(<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28719";>#28719</a>)</li>
   </ul>
   <h3>Contributors</h3>
   <ul>
   <li><a 
href="https://github.com/qinpei-dev";><code>@​qinpei-dev</code></a></li>
   <li><a 
href="https://github.com/sanjayrohith";><code>@​sanjayrohith</code></a></li>
   <li><a href="https://github.com/ntBre";><code>@​ntBre</code></a></li>
   <li><a 
href="https://github.com/webdevsamran";><code>@​webdevsamran</code></a></li>
   <li><a href="https://github.com/zaniebot";><code>@​zaniebot</code></a></li>
   <li><a href="https://github.com/ewdurbin";><code>@​ewdurbin</code></a></li>
   <li><a 
href="https://github.com/MichaReiser";><code>@​MichaReiser</code></a></li>
   <li><a href="https://github.com/spaceone";><code>@​spaceone</code></a></li>
   <li><a 
href="https://github.com/IbrahimKhan12";><code>@​IbrahimKhan12</code></a></li>
   <li><a 
href="https://github.com/devtechedge";><code>@​devtechedge</code></a></li>
   <li><a 
href="https://github.com/GruffElixir";><code>@​GruffElixir</code></a></li>
   </ul>
   </blockquote>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/0be08a206f9c3180afd3e93bcc792ed5cb1f4db1";><code>0be08a2</code></a>
 Bump version to 0.16.9 (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28882";>#28882</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/b4920b72b354e7c715ab861ae23458874683bb02";><code>b4920b7</code></a>
 Rename <code>ruff_cli</code> to <code>ruff_command_line</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28881";>#28881</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/47c751b95908a4d1f95f9ef8723036aae9da0b18";><code>47c751b</code></a>
 Update dependency astral-sh/uv to v0.12.18 (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28880";>#28880</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/8c244e56a1aeac31c26d2371ef26588e0632235c";><code>8c244e5</code></a>
 [<code>flake8-comprehensions</code>] Document <code>map</code>/generator 
exception behavior (<code>C417</code>...</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/5edf5a1d0a84663079e46983216059f06acea87d";><code>5edf5a1</code></a>
 Use <code>target</code> form in <code>rooster.version_files</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28876";>#28876</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/915bb2b4bf9ae7eee47cf55646bbfebae254a23b";><code>915bb2b</code></a>
 [ty] Prefer existing @ paths over response files in Ruff and ty (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28877";>#28877</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/4710e1aa962b13720cf64aa84eb279c5333896d7";><code>4710e1a</code></a>
 ci(github): update version number in placeholder of issue template (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28871";>#28871</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/eedfc62a75bf1ba86d48959b00eea75ae87eadca";><code>eedfc62</code></a>
 [ty] Propagate outer type context through cast calls (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28855";>#28855</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/ceaa6a00830e1e350b8a23977a1a10ac467920a1";><code>ceaa6a0</code></a>
 [ty] Contain rendered code within Markdown fences (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28869";>#28869</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/dba0f30615424b94f94a174bba6ce6cce4bf11ff";><code>dba0f30</code></a>
 authorize ruff-pre-commit dispatch via OIDC (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28867";>#28867</a>)</li>
   <li>Additional commits viewable in <a 
href="https://github.com/astral-sh/ruff/compare/0.16.8...0.16.9";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `pyrefly` from 1.3.1 to 1.3.2
   <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.2</h2>
   <p><em>Release date: September 28, 2026</em></p>
   <p>Pyrefly v1.3.2 is a patch release that fixes regressions in how Pyrefly 
infers the type of a variable after it is assigned a value of type 
<code>Any</code>.</p>
   <hr />
   <h2>🐛 Bug fixes</h2>
   <ul>
   <li><strong><a 
href="https://redirect.github.com/facebook/pyrefly/issues/4846";>#4846</a>:</strong>
 Fixed several regressions from v1.3.0 in type inference after a variable is 
reassigned to <code>Any</code>:
   <ul>
   <li>Assigning an implicit <code>Any</code> (a value with no known type, such 
as the result of an unannotated function or an unresolved import) to an 
annotated variable once again produces <code>Unknown</code>. It no longer turns 
into an explicit <code>Any</code>.</li>
   <li>When a variable annotated as <code>Optional[T]</code> or <code>T | 
None</code> is narrowed to <code>None</code> and then reassigned inside that 
branch, Pyrefly no longer adds the annotation's <code>None</code> back after 
the branch. For example, <code>x: Any | None</code> followed by <code>if x is 
None: x = get_any()</code> now gives <code>Any</code> instead of <code>Any | 
None</code>.</li>
   <li>When a variable's annotation is a union that contains <code>Any</code>, 
assigning <code>Any</code> to it now narrows the variable to <code>Any</code>. 
For example, <code>x: Any | None</code> followed by <code>x = x or 
get_any()</code> now gives <code>Any</code> instead of <code>Any | None</code>, 
so later attribute access no longer reports a false 
<code>missing-attribute</code> error on <code>None</code>.</li>
   </ul>
   </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.2
   </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>
   </blockquote>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/e46f4f2c8f271bc3d1bdd7522095f07c0060a3c2";><code>e46f4f2</code></a>
 cut 1.3.2</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/a1020bf7d38cddb1afaa94e612883aed07c9a502";><code>a1020bf</code></a>
 release notes for v1.3.2</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/b4d1cd4682bd5aac78037350a27a97e9c09090ef";><code>b4d1cd4</code></a>
 Allow assignment to <code>Any</code> when a name is annotated as <code>Any | 
...</code></li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/03eff7300447de0f04519b1902d03f95f819e9c7";><code>03eff73</code></a>
 Merge AnnotationStyle::ForwardedInitial and Forwarded</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/1a0ac5f09981c1d5e627de8d2d01b70e0fe21fe4";><code>1a0ac5f</code></a>
 Keep a name's annotated type only when it is still active</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/fc131f87aa53d5097f901e2ad81e599486f61d6f";><code>fc131f8</code></a>
 Allow an expression to overwrite a name's <code>AnyStyle</code></li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/4b261cd5320484391b4481400522ed1e865fbd62";><code>4b261cd</code></a>
 Move tests for assignment to <code>Any</code> to their own file</li>
   <li>See full diff in <a 
href="https://github.com/facebook/pyrefly/compare/1.3.1...1.3.2";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `ruff` from 0.16.8 to 0.16.9
   <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.9</h2>
   <h2>Release Notes</h2>
   <p>Released on 2026-09-24.</p>
   <h3>Preview features</h3>
   <ul>
   <li>[<code>ruff</code>] Avoid false positives for overloaded division 
(<code>RUF069</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28309";>#28309</a>)</li>
   </ul>
   <h3>Bug fixes</h3>
   <ul>
   <li>[<code>flake8-bugbear</code>] Avoid false positives for calls with 
keyword arguments (<code>B009</code>, <code>B010</code>, <code>B043</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28776";>#28776</a>)</li>
   <li>[<code>flake8-tidy-imports</code>] Allow lazy imports to be used in 
deferred annotations (<code>TID255</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28767";>#28767</a>)</li>
   </ul>
   <h3>Rule changes</h3>
   <ul>
   <li>Update LibCST-based fixes for Python 3.15 (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28616";>#28616</a>)</li>
   <li>[<code>flake8-pyi</code>] Mention stubs in the diagnostic message 
(<code>PYI002</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28542";>#28542</a>)</li>
   </ul>
   <h3>Documentation</h3>
   <ul>
   <li>Fix horizontal overflow on the rules documentation page (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28699";>#28699</a>)</li>
   <li>Update rules table with category information (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28651";>#28651</a>)</li>
   <li>[<code>flake8-annotations</code>] Clarify that <code>ANN401</code> 
checks return types in addition to arguments (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28334";>#28334</a>)</li>
   <li>[<code>flake8-bugbear</code>] Document type-checker interaction 
(<code>B010</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28509";>#28509</a>)</li>
   <li>[<code>flake8-comprehensions</code>] Document <code>map</code>/generator 
exception behavior (<code>C417</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/27794";>#27794</a>)</li>
   <li>[<code>ruff</code>] Mention related isort settings (<code>RUF022</code>) 
(<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28719";>#28719</a>)</li>
   </ul>
   <h3>Contributors</h3>
   <ul>
   <li><a 
href="https://github.com/qinpei-dev";><code>@​qinpei-dev</code></a></li>
   <li><a 
href="https://github.com/sanjayrohith";><code>@​sanjayrohith</code></a></li>
   <li><a href="https://github.com/ntBre";><code>@​ntBre</code></a></li>
   <li><a 
href="https://github.com/webdevsamran";><code>@​webdevsamran</code></a></li>
   <li><a href="https://github.com/zaniebot";><code>@​zaniebot</code></a></li>
   <li><a href="https://github.com/ewdurbin";><code>@​ewdurbin</code></a></li>
   <li><a 
href="https://github.com/MichaReiser";><code>@​MichaReiser</code></a></li>
   <li><a href="https://github.com/spaceone";><code>@​spaceone</code></a></li>
   <li><a 
href="https://github.com/IbrahimKhan12";><code>@​IbrahimKhan12</code></a></li>
   <li><a 
href="https://github.com/devtechedge";><code>@​devtechedge</code></a></li>
   <li><a 
href="https://github.com/GruffElixir";><code>@​GruffElixir</code></a></li>
   </ul>
   <h2>Install ruff 0.16.9</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.9/ruff-installer.sh
 | sh
   </code></pre>
   <!-- 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.16.9</h2>
   <p>Released on 2026-09-24.</p>
   <h3>Preview features</h3>
   <ul>
   <li>[<code>ruff</code>] Avoid false positives for overloaded division 
(<code>RUF069</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28309";>#28309</a>)</li>
   </ul>
   <h3>Bug fixes</h3>
   <ul>
   <li>[<code>flake8-bugbear</code>] Avoid false positives for calls with 
keyword arguments (<code>B009</code>, <code>B010</code>, <code>B043</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28776";>#28776</a>)</li>
   <li>[<code>flake8-tidy-imports</code>] Allow lazy imports to be used in 
deferred annotations (<code>TID255</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28767";>#28767</a>)</li>
   </ul>
   <h3>Rule changes</h3>
   <ul>
   <li>Update LibCST-based fixes for Python 3.15 (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28616";>#28616</a>)</li>
   <li>[<code>flake8-pyi</code>] Mention stubs in the diagnostic message 
(<code>PYI002</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28542";>#28542</a>)</li>
   </ul>
   <h3>Documentation</h3>
   <ul>
   <li>Fix horizontal overflow on the rules documentation page (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28699";>#28699</a>)</li>
   <li>Update rules table with category information (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28651";>#28651</a>)</li>
   <li>[<code>flake8-annotations</code>] Clarify that <code>ANN401</code> 
checks return types in addition to arguments (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28334";>#28334</a>)</li>
   <li>[<code>flake8-bugbear</code>] Document type-checker interaction 
(<code>B010</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28509";>#28509</a>)</li>
   <li>[<code>flake8-comprehensions</code>] Document <code>map</code>/generator 
exception behavior (<code>C417</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/27794";>#27794</a>)</li>
   <li>[<code>ruff</code>] Mention related isort settings (<code>RUF022</code>) 
(<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28719";>#28719</a>)</li>
   </ul>
   <h3>Contributors</h3>
   <ul>
   <li><a 
href="https://github.com/qinpei-dev";><code>@​qinpei-dev</code></a></li>
   <li><a 
href="https://github.com/sanjayrohith";><code>@​sanjayrohith</code></a></li>
   <li><a href="https://github.com/ntBre";><code>@​ntBre</code></a></li>
   <li><a 
href="https://github.com/webdevsamran";><code>@​webdevsamran</code></a></li>
   <li><a href="https://github.com/zaniebot";><code>@​zaniebot</code></a></li>
   <li><a href="https://github.com/ewdurbin";><code>@​ewdurbin</code></a></li>
   <li><a 
href="https://github.com/MichaReiser";><code>@​MichaReiser</code></a></li>
   <li><a href="https://github.com/spaceone";><code>@​spaceone</code></a></li>
   <li><a 
href="https://github.com/IbrahimKhan12";><code>@​IbrahimKhan12</code></a></li>
   <li><a 
href="https://github.com/devtechedge";><code>@​devtechedge</code></a></li>
   <li><a 
href="https://github.com/GruffElixir";><code>@​GruffElixir</code></a></li>
   </ul>
   </blockquote>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/0be08a206f9c3180afd3e93bcc792ed5cb1f4db1";><code>0be08a2</code></a>
 Bump version to 0.16.9 (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28882";>#28882</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/b4920b72b354e7c715ab861ae23458874683bb02";><code>b4920b7</code></a>
 Rename <code>ruff_cli</code> to <code>ruff_command_line</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28881";>#28881</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/47c751b95908a4d1f95f9ef8723036aae9da0b18";><code>47c751b</code></a>
 Update dependency astral-sh/uv to v0.12.18 (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28880";>#28880</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/8c244e56a1aeac31c26d2371ef26588e0632235c";><code>8c244e5</code></a>
 [<code>flake8-comprehensions</code>] Document <code>map</code>/generator 
exception behavior (<code>C417</code>...</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/5edf5a1d0a84663079e46983216059f06acea87d";><code>5edf5a1</code></a>
 Use <code>target</code> form in <code>rooster.version_files</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28876";>#28876</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/915bb2b4bf9ae7eee47cf55646bbfebae254a23b";><code>915bb2b</code></a>
 [ty] Prefer existing @ paths over response files in Ruff and ty (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28877";>#28877</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/4710e1aa962b13720cf64aa84eb279c5333896d7";><code>4710e1a</code></a>
 ci(github): update version number in placeholder of issue template (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28871";>#28871</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/eedfc62a75bf1ba86d48959b00eea75ae87eadca";><code>eedfc62</code></a>
 [ty] Propagate outer type context through cast calls (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28855";>#28855</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/ceaa6a00830e1e350b8a23977a1a10ac467920a1";><code>ceaa6a0</code></a>
 [ty] Contain rendered code within Markdown fences (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28869";>#28869</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/dba0f30615424b94f94a174bba6ce6cce4bf11ff";><code>dba0f30</code></a>
 authorize ruff-pre-commit dispatch via OIDC (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28867";>#28867</a>)</li>
   <li>Additional commits viewable in <a 
href="https://github.com/astral-sh/ruff/compare/0.16.8...0.16.9";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `pyrefly` from 1.3.1 to 1.3.2
   <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.2</h2>
   <p><em>Release date: September 28, 2026</em></p>
   <p>Pyrefly v1.3.2 is a patch release that fixes regressions in how Pyrefly 
infers the type of a variable after it is assigned a value of type 
<code>Any</code>.</p>
   <hr />
   <h2>🐛 Bug fixes</h2>
   <ul>
   <li><strong><a 
href="https://redirect.github.com/facebook/pyrefly/issues/4846";>#4846</a>:</strong>
 Fixed several regressions from v1.3.0 in type inference after a variable is 
reassigned to <code>Any</code>:
   <ul>
   <li>Assigning an implicit <code>Any</code> (a value with no known type, such 
as the result of an unannotated function or an unresolved import) to an 
annotated variable once again produces <code>Unknown</code>. It no longer turns 
into an explicit <code>Any</code>.</li>
   <li>When a variable annotated as <code>Optional[T]</code> or <code>T | 
None</code> is narrowed to <code>None</code> and then reassigned inside that 
branch, Pyrefly no longer adds the annotation's <code>None</code> back after 
the branch. For example, <code>x: Any | None</code> followed by <code>if x is 
None: x = get_any()</code> now gives <code>Any</code> instead of <code>Any | 
None</code>.</li>
   <li>When a variable's annotation is a union that contains <code>Any</code>, 
assigning <code>Any</code> to it now narrows the variable to <code>Any</code>. 
For example, <code>x: Any | None</code> followed by <code>x = x or 
get_any()</code> now gives <code>Any</code> instead of <code>Any | None</code>, 
so later attribute access no longer reports a false 
<code>missing-attribute</code> error on <code>None</code>.</li>
   </ul>
   </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.2
   </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>
   </blockquote>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/e46f4f2c8f271bc3d1bdd7522095f07c0060a3c2";><code>e46f4f2</code></a>
 cut 1.3.2</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/a1020bf7d38cddb1afaa94e612883aed07c9a502";><code>a1020bf</code></a>
 release notes for v1.3.2</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/b4d1cd4682bd5aac78037350a27a97e9c09090ef";><code>b4d1cd4</code></a>
 Allow assignment to <code>Any</code> when a name is annotated as <code>Any | 
...</code></li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/03eff7300447de0f04519b1902d03f95f819e9c7";><code>03eff73</code></a>
 Merge AnnotationStyle::ForwardedInitial and Forwarded</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/1a0ac5f09981c1d5e627de8d2d01b70e0fe21fe4";><code>1a0ac5f</code></a>
 Keep a name's annotated type only when it is still active</li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/fc131f87aa53d5097f901e2ad81e599486f61d6f";><code>fc131f8</code></a>
 Allow an expression to overwrite a name's <code>AnyStyle</code></li>
   <li><a 
href="https://github.com/facebook/pyrefly/commit/4b261cd5320484391b4481400522ed1e865fbd62";><code>4b261cd</code></a>
 Move tests for assignment to <code>Any</code> to their own file</li>
   <li>See full diff in <a 
href="https://github.com/facebook/pyrefly/compare/1.3.1...1.3.2";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `ruff` from 0.16.8 to 0.16.9
   <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.9</h2>
   <h2>Release Notes</h2>
   <p>Released on 2026-09-24.</p>
   <h3>Preview features</h3>
   <ul>
   <li>[<code>ruff</code>] Avoid false positives for overloaded division 
(<code>RUF069</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28309";>#28309</a>)</li>
   </ul>
   <h3>Bug fixes</h3>
   <ul>
   <li>[<code>flake8-bugbear</code>] Avoid false positives for calls with 
keyword arguments (<code>B009</code>, <code>B010</code>, <code>B043</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28776";>#28776</a>)</li>
   <li>[<code>flake8-tidy-imports</code>] Allow lazy imports to be used in 
deferred annotations (<code>TID255</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28767";>#28767</a>)</li>
   </ul>
   <h3>Rule changes</h3>
   <ul>
   <li>Update LibCST-based fixes for Python 3.15 (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28616";>#28616</a>)</li>
   <li>[<code>flake8-pyi</code>] Mention stubs in the diagnostic message 
(<code>PYI002</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28542";>#28542</a>)</li>
   </ul>
   <h3>Documentation</h3>
   <ul>
   <li>Fix horizontal overflow on the rules documentation page (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28699";>#28699</a>)</li>
   <li>Update rules table with category information (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28651";>#28651</a>)</li>
   <li>[<code>flake8-annotations</code>] Clarify that <code>ANN401</code> 
checks return types in addition to arguments (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28334";>#28334</a>)</li>
   <li>[<code>flake8-bugbear</code>] Document type-checker interaction 
(<code>B010</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28509";>#28509</a>)</li>
   <li>[<code>flake8-comprehensions</code>] Document <code>map</code>/generator 
exception behavior (<code>C417</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/27794";>#27794</a>)</li>
   <li>[<code>ruff</code>] Mention related isort settings (<code>RUF022</code>) 
(<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28719";>#28719</a>)</li>
   </ul>
   <h3>Contributors</h3>
   <ul>
   <li><a 
href="https://github.com/qinpei-dev";><code>@​qinpei-dev</code></a></li>
   <li><a 
href="https://github.com/sanjayrohith";><code>@​sanjayrohith</code></a></li>
   <li><a href="https://github.com/ntBre";><code>@​ntBre</code></a></li>
   <li><a 
href="https://github.com/webdevsamran";><code>@​webdevsamran</code></a></li>
   <li><a href="https://github.com/zaniebot";><code>@​zaniebot</code></a></li>
   <li><a href="https://github.com/ewdurbin";><code>@​ewdurbin</code></a></li>
   <li><a 
href="https://github.com/MichaReiser";><code>@​MichaReiser</code></a></li>
   <li><a href="https://github.com/spaceone";><code>@​spaceone</code></a></li>
   <li><a 
href="https://github.com/IbrahimKhan12";><code>@​IbrahimKhan12</code></a></li>
   <li><a 
href="https://github.com/devtechedge";><code>@​devtechedge</code></a></li>
   <li><a 
href="https://github.com/GruffElixir";><code>@​GruffElixir</code></a></li>
   </ul>
   <h2>Install ruff 0.16.9</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.9/ruff-installer.sh
 | sh
   </code></pre>
   <!-- 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.16.9</h2>
   <p>Released on 2026-09-24.</p>
   <h3>Preview features</h3>
   <ul>
   <li>[<code>ruff</code>] Avoid false positives for overloaded division 
(<code>RUF069</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28309";>#28309</a>)</li>
   </ul>
   <h3>Bug fixes</h3>
   <ul>
   <li>[<code>flake8-bugbear</code>] Avoid false positives for calls with 
keyword arguments (<code>B009</code>, <code>B010</code>, <code>B043</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28776";>#28776</a>)</li>
   <li>[<code>flake8-tidy-imports</code>] Allow lazy imports to be used in 
deferred annotations (<code>TID255</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28767";>#28767</a>)</li>
   </ul>
   <h3>Rule changes</h3>
   <ul>
   <li>Update LibCST-based fixes for Python 3.15 (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28616";>#28616</a>)</li>
   <li>[<code>flake8-pyi</code>] Mention stubs in the diagnostic message 
(<code>PYI002</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28542";>#28542</a>)</li>
   </ul>
   <h3>Documentation</h3>
   <ul>
   <li>Fix horizontal overflow on the rules documentation page (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28699";>#28699</a>)</li>
   <li>Update rules table with category information (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28651";>#28651</a>)</li>
   <li>[<code>flake8-annotations</code>] Clarify that <code>ANN401</code> 
checks return types in addition to arguments (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28334";>#28334</a>)</li>
   <li>[<code>flake8-bugbear</code>] Document type-checker interaction 
(<code>B010</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28509";>#28509</a>)</li>
   <li>[<code>flake8-comprehensions</code>] Document <code>map</code>/generator 
exception behavior (<code>C417</code>) (<a 
href="https://redirect.github.com/astral-sh/ruff/pull/27794";>#27794</a>)</li>
   <li>[<code>ruff</code>] Mention related isort settings (<code>RUF022</code>) 
(<a 
href="https://redirect.github.com/astral-sh/ruff/pull/28719";>#28719</a>)</li>
   </ul>
   <h3>Contributors</h3>
   <ul>
   <li><a 
href="https://github.com/qinpei-dev";><code>@​qinpei-dev</code></a></li>
   <li><a 
href="https://github.com/sanjayrohith";><code>@​sanjayrohith</code></a></li>
   <li><a href="https://github.com/ntBre";><code>@​ntBre</code></a></li>
   <li><a 
href="https://github.com/webdevsamran";><code>@​webdevsamran</code></a></li>
   <li><a href="https://github.com/zaniebot";><code>@​zaniebot</code></a></li>
   <li><a href="https://github.com/ewdurbin";><code>@​ewdurbin</code></a></li>
   <li><a 
href="https://github.com/MichaReiser";><code>@​MichaReiser</code></a></li>
   <li><a href="https://github.com/spaceone";><code>@​spaceone</code></a></li>
   <li><a 
href="https://github.com/IbrahimKhan12";><code>@​IbrahimKhan12</code></a></li>
   <li><a 
href="https://github.com/devtechedge";><code>@​devtechedge</code></a></li>
   <li><a 
href="https://github.com/GruffElixir";><code>@​GruffElixir</code></a></li>
   </ul>
   </blockquote>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/0be08a206f9c3180afd3e93bcc792ed5cb1f4db1";><code>0be08a2</code></a>
 Bump version to 0.16.9 (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28882";>#28882</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/b4920b72b354e7c715ab861ae23458874683bb02";><code>b4920b7</code></a>
 Rename <code>ruff_cli</code> to <code>ruff_command_line</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28881";>#28881</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/47c751b95908a4d1f95f9ef8723036aae9da0b18";><code>47c751b</code></a>
 Update dependency astral-sh/uv to v0.12.18 (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28880";>#28880</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/8c244e56a1aeac31c26d2371ef26588e0632235c";><code>8c244e5</code></a>
 [<code>flake8-comprehensions</code>] Document <code>map</code>/generator 
exception behavior (<code>C417</code>...</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/5edf5a1d0a84663079e46983216059f06acea87d";><code>5edf5a1</code></a>
 Use <code>target</code> form in <code>rooster.version_files</code> (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28876";>#28876</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/915bb2b4bf9ae7eee47cf55646bbfebae254a23b";><code>915bb2b</code></a>
 [ty] Prefer existing @ paths over response files in Ruff and ty (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28877";>#28877</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/4710e1aa962b13720cf64aa84eb279c5333896d7";><code>4710e1a</code></a>
 ci(github): update version number in placeholder of issue template (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28871";>#28871</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/eedfc62a75bf1ba86d48959b00eea75ae87eadca";><code>eedfc62</code></a>
 [ty] Propagate outer type context through cast calls (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28855";>#28855</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/ceaa6a00830e1e350b8a23977a1a10ac467920a1";><code>ceaa6a0</code></a>
 [ty] Contain rendered code within Markdown fences (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28869";>#28869</a>)</li>
   <li><a 
href="https://github.com/astral-sh/ruff/commit/dba0f30615424b94f94a174bba6ce6cce4bf11ff";><code>dba0f30</code></a>
 authorize ruff-pre-commit dispatch via OIDC (<a 
href="https://redirect.github.com/astral-sh/ruff/issues/28867";>#28867</a>)</li>
   <li>Additional commits viewable in <a 
href="https://github.com/astral-sh/ruff/compare/0.16.8...0.16.9";>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