GradleとMaven向けのビルドプラグインフレームワーク。多くの言語やファイル形式に対応したフォーマッターとリンターを実行します。
- スター
- 13,986
- フォーク
- 915
- 未解決の Issue
- 433
- 最終コミット
- 昨日
これは何?
YAPFは、選択したスタイルに沿った最適なレイアウトを計算してPythonソースコードを整形するため、インデント、スペース、改行を手作業で調整する時間を減らせます。clang-formatの再整形アルゴリズムを基にしており、コマンドラインから実行するほか、FormatCode関数やFormatFile関数を通じてライブラリとして呼び出すこともできます。
スタイルはpep8、google、yapf、facebookなどの定義済みベースから選び、.style.yapf、setup.cfg、pyproject.tomlのファイルやコマンドラインでキーと値を指定してカスタマイズできます。列幅の上限、括弧の配置、演算子の分割、コメント周りのスペースなど、個別の設定項目も多数用意されています。
YAPFでは、指定した行範囲のみの整形、コマンドラインパターンや.yapfignoreファイルによるファイルの除外、差分の出力、複数ファイルの並列処理が可能です。--diffモードは変更が必要な場合に0以外の終了コードを返すため、CIのチェックに利用できます。
主な機能
- 01pep8やgoogleなど、定義済みまたはカスタムのスタイルに合わせてPythonファイルを整形します。
- 02設定ファイルまたはコマンドラインで、数十種類のスタイル設定をカスタマイズできます。
- 03ファイル内の指定した行範囲のみを整形できます。
- 04コマンドラインまたは.yapfignore / pyproject.tomlによる除外パターンに対応しています。
- 05整形の変更が必要な場合に0以外の終了コードを返すdiffモードを備え、CIのチェックに利用できます。
- 06コマンドラインツールまたはPythonライブラリとして利用できます。
ユースケース
- Pythonチームやリポジトリ全体でコードスタイルを統一する。
- diffモードを使って、CIパイプラインにフォーマットチェックを追加する。
- エディター連携で、パッチや編集によって変更された行だけを整形する。
- Pythonコードを生成・変換するスクリプトで、スタイルの修正を自動化する。
クイックスタート
- 1
PyPIからYAPFをインストールします
pip install yapf - 2
--diffや--in-placeなどのオプションを使って、Pythonファイルにyapfを実行します
使う前に知っておきたいこと
- READMEではYAPFはベータ版と説明されており、リリースが頻繁に変更される場合があります。
- PEP 695の型パラメーター構文やPEP 701のf-string形式化など、一部の新しいPython機能にはまだ対応していません。
収録されている特集
トピック
よくある質問
- yapf とは?
- clang-formatのレイアウトアルゴリズムを基に、設定可能なスタイルでPythonソースファイルを整形するフォーマッター。 YAPFは、選択したスタイルに沿った最適なレイアウトを計算してPythonソースコードを整形するため、インデント、スペース、改行を手作業で調整する時間を減らせます。clang-formatの再整形アルゴリズムを基にしており、コマンドラインから実行するほか、FormatCode関数やFormatFile関数を通じてライブラリとして呼び出すこともできます。
- yapf は無料で使えますか?ライセンスは?
- yapf は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- yapf は今もメンテナンスされていますか?
- 活発にメンテナンス中。yapf の最終コミットは 2026年11月6日 です。
- yapf は何に使えますか?
- Pythonチームやリポジトリ全体でコードスタイルを統一する。 diffモードを使って、CIパイプラインにフォーマットチェックを追加する。 エディター連携で、パッチや編集によって変更された行だけを整形する。 Pythonコードを生成・変換するスクリプトで、スタイルの修正を自動化する。
- yapf のインストール方法は?
- PyPIからYAPFをインストールします: pip install yapf --diffや--in-placeなどのオプションを使って、Pythonファイルにyapfを実行します
- yapf はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/google/yapf
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Blackは、ファイルをその場で書き換え、差分を最小限に抑える、独自の方針を持つ決定論的なPythonコードフォーマッターです。
Ruby Style Guideのルールを適用し、多くの違反を自動修正できるRuby向け静的コード解析・フォーマッター。
Pythonのimport文を自動でソート・グループ化するユーティリティ兼ライブラリです。
PER-CSやSymfonyなどのPHPコーディング規約に準拠するよう、コードを自動修正するPHP製CLIツールです。
Rust製の超高速Pythonリンター/フォーマッター。900以上のlintルールを備え、Black互換のフォーマットに対応します。