名古屋出身ソフトウェアエンジニアのブログ

2024 年でも使える Python 2 コードフォーマッター

Civilization IV の Mod 開発のため、Python 2 のコードを扱える自動フォーマッターを探していました。

結論を言うと Black を使うと良いです。

これ以外だと、まともなものは見つかりませんでした。

ただし、Black は初安定版リリースと同時に Python 2 を陳腐化させたので、ちょっと前のプレリリース版を使うほかないです。

click < 8.1
black[python2] == 21.12b0

上記制約でインストールすると正しく動作すると思われます(Click も少し古く指定する必要あり)。

Black 自体は Python 3 で動かします。この点は、Python 2 の動作環境に依存しないゆえに 2024 年でも使いやすくありがたいです。

python3 -m black --target-version py27 SRC ...

Civilization IV に付属する Python 2 コードがタブインデントな一方、こちらは Black1 なのでスペースになってしまいますが、そこの不統一感は諦めます。

Civilization IV にバンドルされている Python は 2.4 ですが、Black は Python 2.7 基準で動作するようなので、その点は注意です2


  1. "People can have the Model T in any color - so long as it's black." — Henry Ford ↩︎

  2. 実際になにかが問題になることはよっぽどないとは思いますが。 ↩︎