Change8

0.15.8

📦 ruffView on GitHub →
5 features🐛 6 fixes🔧 13 symbols

Summary

This release introduces several new preview linting rules, including checks for unnecessary ifs and useless finally blocks. Bug fixes address issues across various linters like flake8-async, flake8-bandit, and pyflakes, alongside performance improvements in diagnostic rendering.

✨ New Features

  • Added new ruff rule `unnecessary-if` (RUF050) as a preview feature.
  • Added new ruff rule `useless-finally` (RUF072) as a preview feature.
  • Added new ruff rule `f-string-percent-format` (RUF073) to warn when using % operator on an f-string as a preview feature.
  • Recognize `frozendict` as a builtin for Python 3.15+ in pyflakes checks.
  • The language server now warns when Markdown files are skipped because preview features are disabled.

🐛 Bug Fixes

  • Autofix for `ASYNC115` now uses the fully-qualified `anyio.lowlevel` import.
  • Checked tuple arguments for partial paths in `flake8-bandit` rule `S607`.
  • Skipped `undefined-name` (F821) checks for conditionally deleted variables.
  • Excluded nested pragma comments from line width calculation for E501/W505/formatter.
  • Fixed parsing of `%foo?` in IPython assignment expressions.
  • The analyze graph feature now resolves string imports that reference attributes, not just modules.

Affected Symbols