
Ruff v0.16.0がリリース、デフォルト有効ルールが59から413に拡大
Ruff v0.16.0がリリースされた。デフォルトで有効となるルール数が59から413に大幅に増加し、Markdownコードブロックのフォーマット機能やruff: ignoreコメント抑止機能が追加された。
Ruff v0.16.0はPyPIから利用可能である。Rustで実装されたPythonリンタ・フォーマッターであるRuffは、今バージョンで複数の機能改善と安定化を実現した。デフォルト有効ルールの拡大は前バージョンの59ルールから413ルールへと大きく変更されており、v0.1.0以来の変更となる。Ruffは現在968ルールを搭載している。
デフォルトルール数の大幅拡大
v0.16.0では、ユーザーが明示的に指定しなくても自動的に適用されるルールが413個へと増加した。これまでの59ルールから大幅な拡大である。なお、Ruffがv0.1.0でリリースされた当初は708ルールが搭載されていた。
Markdownコードブロックのフォーマット対応
Ruffは新たにMarkdownファイルに埋め込まれたPythonコードブロックをフォーマットできるようになった。python、py、python3、py3、pyi、pyconの各情報文字列を持つフェンス付きコードブロックがサポート対象である。piブロックはスタブファイルとして、pyconブロックはREPLセッションとしてフォーマットされる。Quartoノートブックでは、言語指定が波括弧に囲まれている場合に認識される。

ruff: ignoreコメント抑止機能
ruff: ignoreコメントにより、同じ行または後続の論理行の診断を抑止できるようになった。ファイル全体の診断を抑止する場合はruff: file-ignoreコメントを使用する。--add-ignore CLIフラグを使用することで、ruff: ignoreコメントの自動挿入も可能である。プレビューモードではルール名をコード値の代わりに使用したruff抑止コメントがサポートされている。
checkおよびformatコマンドの出力改善
checkおよびformat --checkコマンドの出力に、修正内容がdiff形式で表示されるようになった。format --checkはリンタと同じすべての出力形式に対応している。JSON出力ではフィールドがデフォルトの空文字列の代わりにnullになることがある。

ルールの安定化と機能改善
複数のルールが安定化され、プレビューモードから移行した。airflow3-incompatible-function-signature、missing-copyright-notice、unnecessary-from-float、sorted-min-max、implicit-string-concatenation-in-collection-literal、log-exception-outside-except-handler、invalid-bool-return-type、too-many-positional-arguments、stop-iteration-return、none-not-at-end-of-union、access-annotations-from-class-dict、duplicate-entry-in-dunder-allが対象である。
また、blind-exceptはlogging メソッドのcritical、error、exception以外で例外がログされた場合に抑止されるようになった。future-required-type-annotationはcollections.abcの追加PEP 585互換APIをチェック対象に加え、typing-text-str-aliasはtyping.Textに加えてtyping_extensions.Textを認識するようになった。
筆者の見立て
- この作業は、ルール再分類の長年の目標と密接に結びついていると論じられている。
この記事は元記事の事実のみに基づいて自動生成されました。
出典
Astral、「Ruff v0.16.0」、https://astral.sh/blog/ruff-v0.16.0 (GitHub の報道による)