Change8

0.14.3

Breaking Changes
📦 ruffView on GitHub →
1 breaking9 features🐛 11 fixes1 deprecations🔧 18 symbols

Summary

Ruff 0.14.3 introduces several preview features such as `--output-format` support with `--watch` and new eager conversion patterns, fixes numerous false‑positive bugs, and adds a breaking change by removing the Airflow `DAG.create_dagrun` API.

⚠️ Breaking Changes

  • The Airflow API `airflow.DAG.create_dagrun` has been removed (rule AIR301). Code that calls this method will raise an AttributeError. Update your code to use the new Airflow DAG execution API (e.g., `airflow.DAG.run` or the recommended replacement) to restore functionality.

Migration Steps

  1. Replace any usage of `airflow.DAG.create_dagrun` with the new Airflow DAG execution method (e.g., `airflow.DAG.run` or the recommended alternative).
  2. Review your configuration if you rely on the previous behavior of `--output-format` with `--watch`; the new handling may affect output formatting.

✨ New Features

  • Respect `--output-format` with `--watch` (preview feature).
  • Fix false positive on explicit exception re‑raising in pydoclint (`DOC501`, `DOC502`).
  • Revert to stable behavior for imports in alternate branches for pyflakes rule F401.
  • Implement `stop-iteration-return` rule PLR1708 in pylint.
  • Add support for additional eager conversion patterns (rule RUF065).
  • Add missing docstring sections to the NumPy list.
  • Extend `airflow.models.Param` check (rule AIR311).
  • Warn that `airflow.DAG.create_dagrun` has been removed (rule AIR301).
  • Preserve digit separators in `Decimal` constructor (rule FURB157).

🐛 Bug Fixes

  • Fix finding keyword range for clause header after a statement ending with a semicolon.
  • Fix syntax‑error false positive on nested alternative patterns.
  • ISC001: Fix panic when string literals are unclosed.
  • flake8-django: Apply DJ001 to annotated fields.
  • flake8-pyi: Fix PYI034 to not trigger on metaclasses.
  • flake8-type-checking: Fix TC003 false positive with future‑annotations.
  • pyflakes: Fix false positive for __class__ in lambda expressions within class definitions (F821).
  • pyupgrade: Fix false positive for TypeVar with default on Python <3.13 (UP046, UP047).
  • Server: Avoid sending an unnecessary "clear diagnostics" message for clients supporting pull diagnostics.
  • Documentation: flake8-bandit example for S308 corrected.
  • Other: Clearer error message when line‑length exceeds the configured threshold.

🔧 Affected Symbols

--output-format flag--watch flagpydoclint rule DOC501pydoclint rule DOC502pyflakes rule F401pylint rule PLR1708ruff rule RUF065airflow.models.Paramairflow.DAG.create_dagrunrefurb rule FURB157ISC001 ruleflake8-django rule DJ001flake8-pyi rule PYI034flake8-type-checking rule TC003pyflakes rule F821pyupgrade rule UP046pyupgrade rule UP047Server pull‑diagnostics handling

⚡ Deprecations

  • Airflow `DAG.create_dagrun` is deprecated and now removed; users should migrate to the new DAG execution interface.