Rust で書かれた高性能 Python コード分析ツール、Ruff v0.0.281 がリリースされました

Ruff は、Rust に基づいて書かれた高性能 Python コード分析ツール (つまり、Linter) です。これは、コード内の構文エラー、コーディング仕様の問題、潜在的なロジックの問題、およびコード品質の問題をチェックするために使用され、リアルタイムのフィードバックとコード品質の問題を提供できます。自動修復の提案。主な特徴は高性能であり、既存の同様のツールよりも 10 ~ 100 倍高速であると主張されています。

ラフコアの特徴

  • pip経由でインストールする
  • サポートpyproject.toml
  • Python 3.11と互換性があります
  • 500 を超える組み込みルール (Flake8 の組み込みルール セットとほぼ同等)
  • flake8-bugbear、flake8-comprehension など、数十の Flake8 プラグインを再実装しました。
  • 自動修正をサポートし、エラーを自動的に修正します (未使用のインポートの削除など)
  • 未変更ファイルの繰り返し分析を回避するための組み込みキャッシュ
  • VS Code、Pycharm、Neovim、Sublime Text、Emacs およびその他のエディターをサポート
  • モノリポジトリに適しており、階層化されたカスケード構成を備えています

Ruff は v0.0.281 をリリースしました。

主な変更点は、レクサーの速度が向上したことです。Ruff のレクサーは古いバージョンより 2 ~ 3 倍高速になっていると言われています。

group                       v0.0.280                               v0.0.281
-----                       --------                               --------
lexer/large/dataset.py      2.18    665.9±5.64µs    61.1 MB/sec    1.00    304.9±3.79µs   133.4 MB/sec
lexer/numpy/ctypeslib.py    2.39    154.4±0.84µs   107.8 MB/sec    1.00     64.5±0.61µs   258.1 MB/sec
lexer/numpy/globals.py      2.89     18.1±0.14µs   163.3 MB/sec    1.00      6.3±0.06µs   471.8 MB/sec
lexer/pydantic/types.py     2.57    326.4±2.23µs    78.1 MB/sec    1.00    127.2±0.71µs   200.5 MB/sec

字句アナライザーは、Python ソース コードをトークンのストリームにトークン化する役割を果たします。その後、パーサーはこれを使用して抽象構文ツリー (AST) を構築します。レクサーは Ruff の分析パイプラインの最初のステップであり、Ruff が分析するすべてのファイルに対して実行されます。

したがって、レクサーのパフォーマンスを最適化すると、リンターのパフォーマンスが向上するだけでなく、Ruff フォーマッタなど、Ruff レクサーを利用する将来のツールのパフォーマンスも向上します。

新しいレクサーは、よりキャッシュに適したデータ構造を利用し、割り当ての実行を減らし、純粋な ASCII ソース コードの最適化を含みます。詳細をご確認ください

その他の変更には、行末# ruff: noqaコメントの無視やルールの追加などがあります。具体的な変更点については、こちらを参照してください

おすすめ

転載: www.oschina.net/news/251902/ruff-0-0-281-released