# Python Formatter

URL: https://discuvr.org/python-formatter/?hl=ja
Last updated: 2026-11-07
MCP tool: `format_python`

Pythonコードを貼り付けると、指定した行の長さとオプションでBlackによって整形されます。構文エラーは正確な行番号を表示します。あなたのコードが実行されたり保存されたりすることは一切ありません。

このツールは、貼り付けた内容に対して、ほとんどのPythonプロジェクトが既に合意しているフォーマッタであるBlackを実行します。選んだ行の長さと引用符の扱いに従います。ファイルが解析できない場合はどの行かを伝え、すでに整形済みであればそれも何かをしたふりをせずに伝えます。

## 機能

- 79、88、100、120列でのBlackフォーマット。
- 「チェックのみ」モード: ファイルを変更せずに変更が生じるかどうかを確認できます。
- 自分の引用符の流儀を保持するか、Blackに正規化させるかを選べます。
- コレクションを展開状態に保つマジックな末尾カンマを尊重するか無視するかを選べます。
- 構文がバージョンに依存する場合、特定のPythonバージョンを対象にできます。
- 構文エラーは行、列、そして周辺のコードを報告します。
- 追加・削除された行数と、ファイルの形状を報告します。

## 仕組み

1. コードを、あるいはファイル1本分を貼り付けます。
2. 行の長さと、気になるオプションを選びます。
3. 整形を押し、結果をコピーまたはダウンロードします。

## あなたのコードは一切実行されません

Pythonの整形には、それを実行する必要はありません。コードは構文木に解析され、完全にメモリ上でその木から書き直されます - ファイルに書き込まれることも、インポートされることも、実行されることも一切ありません。貼り付けた内容を実行するフォーマッタがあれば、それはテキストボックス付きのリモートシェルにほかなりません。

## なぜBlackなのか、独自の見解ではない理由

BlackはASTを保持する変換です。出て行くコードは入ってきたコードと同じプログラムです。この性質こそが、フォーマッタを信頼できる唯一の理由であり、このツールのどの部分にも言語モデルが関与していない理由です。コードの整理を頼まれたモデルは、作業の最中にたまたま行を書き換えてしまうことがあり、動作しているコードへの無言の変更は、フォーマッタが決して許容できない唯一の失敗です。

## チェックのみ

CIが問うのと同じ質問です。このファイルは変更されるのか？ チェックモードは元のコードをそのまま返し、Blackが再整形するかどうか、そして何行になるかを報告します。ローカルで再現できないファイルでパイプラインが失敗する理由を手早く知る方法です。

## マジック末尾カンマと fmt: off の実例

最後の要素の後ろのカンマは、呼び出しやコレクションを 1 行に 1 要素のまま保つよう Black に伝えます。result = compute(alpha, beta,) は 4 行になり、alpha, と beta, がそれぞれ別の行に置かれます。マジック末尾カンマを無視にチェックを入れると、同じ入力は行の長さに収まる限り result = compute(alpha, beta) になります。行列のように手で揃えたブロックを守るには、その上の行に # fmt: off、下に # fmt: on を書きます。Black はその間を書いたとおりに残します。行末の # fmt: skip はその 1 行だけを守ります。どれも Black 自身のコメントなので、プロジェクトの CI が Black を実行するときにも効きます。

## 質問

**自分のコードはアップロードされたり保存されたりしますか？**

サーバーに送られ、メモリ上で整形され、同じレスポンスで返されます。ディスクへの書き込み、キャッシュ、ログへの記録は一切なく、利用記録に残るのはサイズや選んだオプション、変更された行数といった件数のみで、コードそのものは決して残りません。

**整形によってコードの動作が変わりますか？**

いいえ。Blackが変えるのはレイアウトで、動作ではありません。ただし空白を動かすだけではありません。冗長な括弧を外し（x = (1) は x = 1 に）、数値の接頭辞と指数を小文字にし（0XABCDEF は 0xABCDEF、1E5 は 1e5 に）、呼び出しを複数行に分けるときは末尾にカンマを足し、連続する空行を減らし、docstring 内側の空白を削ります（""" Doc. """ は """Doc.""" に）。最後の変更は __doc__ の文字列を変えるため、コードが自分の docstring を読む場合にだけ影響します。

**なぜ自分のファイルは一切再整形されなかったのですか？**

選んだ行の長さで、すでに整形済みだったからです。このツールは黙ってコピーを返すのではなく「すでに整形済みです」と伝えます。

**importを並び替えますか？**

いいえ。import の並び替えはisortの仕事であり、Blackの仕事ではありません。両者は意見が分かれることが十分に多く、ここで並び替えてしまえばあなたを驚かせることになります。

**構文エラーのあるファイルを整形できますか？**

どのフォーマッタにもできません - 解析できないファイルには書き直すべき構造がありません。行、列、そして周辺のコードが得られるので、修正して再度試すことができます。

**PEP 8に従っていますか？**

Blackは一つのよく知られた違いを除いてPEP 8に準拠しています。デフォルトの行の長さは79ではなく88です。より厳格な数値が必要なら、行の長さの選択で79を選んでください。

**どのくらいの大きさのファイルを整形できますか？**

1回あたり最大400,000文字です。整形は10秒で打ち切られますが、そこまでかかるのは非常に大きいか繰り返しの多いファイルだけです。1つのIPアドレスにつき10分間に30回まで整形できます。

**エディター、pre-commit、CIで同じ整形結果を得るには?**

このページはBlackで整形しており、幅の広い画面ではページ上部のヘッダーにバージョンが表示されます。Blackはプロジェクト設定をpyproject.tomlの[tool.black]セクションから、オプションの長い名前で読み込みます。選んだ「行長」にはline-length = 88、「クォートを維持」にチェックしたならskip-string-normalization = true、「マジック末尾カンマを無視」にはskip-magic-trailing-comma = true、「ターゲット」で固定したバージョンにはtarget-version = ["py311"]と書きます。エディターのプラグインやpre-commitのフックも同じファイルを読みます。整形は black . 、CIでは black --check --diff . を実行します。何も変更せず、再整形が必要なファイルがあれば終了コード1で終わります。各暦年の最初のリリースで安定スタイルが変わることがあるため、このページと同じBlackのバージョンに固定してください。

**結果はRuffのフォーマッター(ruff format)と同じですか?**

ほぼ同じですが、バイト単位で一致するわけではありません。RuffのフォーマッターはBlackをそのまま置き換えられるよう設計されており、Ruffのドキュメントによると、DjangoやZulipのようにBlackで整形済みの大規模プロジェクトでは99.9%を超える行が同一になります。Blackを通したことのないコードでは、特に行末コメントで差が大きくなり、意図的な相違点はドキュメントに一覧があります。既定の行長も88で、[tool.ruff]のline-lengthで設定します。[tool.ruff.format]のquote-style = "preserve"が「クォートを維持」に、skip-magic-trailing-comma = trueが「マジック末尾カンマを無視」に相当します。CIで ruff format --check を実行しているなら、このページではなくRuffでファイルを確認してください。

## 開発者ツールのその他のツール

- [HTML ビューア](https://discuvr.org/html-viewer/?hl=ja)
- [IPサブネット計算機](https://discuvr.org/ip-subnet-calculator/?hl=ja)
- [エンコード / デコード](https://discuvr.org/encode-decode/?hl=ja)
- [Unix タイムスタンプ変換](https://discuvr.org/timestamp-converter/?hl=ja)

## よく一緒に使われるツール

- [テキスト比較](https://discuvr.org/text-diff/?hl=ja)
- [大文字小文字変換と行ツール](https://discuvr.org/case-converter/?hl=ja)
- [Study Buddy](https://discuvr.org/study-buddy/?hl=ja)

---

Part of Discuvr (https://discuvr.org/): Discuvr is a collection of free, focused tools for day-to-day professional work - office and data utilities, legal and compliance helpers, privacy and security checks, and developer formatters. Every tool has its own page, and most can also be called from ChatGPT or Claude over MCP.
