Skip to main content

Ruff 0.16.4

Release Date: August 20, 2026

Alright, Ruff dropped 0.16.4, and honestly the Python linter scene keeps getting sharper. I ran it against a couple of real profiles this morning and here's the deal.

TL;DR

  • New autofix for PTH116 in flake8-use-pathlib.
  • Better notebook support in the language server.
  • A pile of rule precision and syntax-error detection fixes.

What Actually Changed

On the preview side, the flake8-use-pathlib rule PTH116 finally gets an autofix, which means Ruff will fix that rule for you instead of just nagging. Over in refurb, delete-full-slice (FURB131) is now restricted to lists, and FURB101/FURB103 get skipped when the open argument is a file descriptor — both sensible refinements that cut down on false positives.

There's a notable crash fix: Ruff no longer throws InvalidInstruction on Windows CPUs that lack POPCNT support. That one will matter to folks on older AMD or budget Intel silicon.

Rule & Syntax Updates

  • Pyflakes now emits semantic syntax errors in string type definitions as F722.
  • Pylint's PLC2701 allows os._exit imports.
  • New syntax-error detections for duplicate keyword arguments and parameters declared nonlocal.
  • Mixed t-string/bytes error messages aligned with CPython 3.14.

Server Improvements

The LSP now offers display-only fixes and marks safe fixes as preferred, and it supports pull diagnostics for notebook cells — a genuinely nice QoL bump if you work in Jupyter.

Verdict

It's a patch release, so no drama. But the autofix additions and the Windows crash fix make 0.16.4 worth a uv add ruff bump. Update when you get a chance — nothing here should break your config.

What is New?

By continuing to use the site, you agree to the use of cookies.