delhi09の勉強日記

技術トピック専用のブログです。自分用のメモ書きの投稿が多いです。あくまで「勉強日記」なので記事の内容は鵜呑みにしないでください。

isortのblack互換の設定にprofileオプションを使う

概要

Pythonプロジェクトのフォーマッターにisortとblackを使う場合、両者にはフォーマットルールが異なる部分があるので、isort側でblackと競合しないように設定する必要がある。

これまでは、blackの公式ドキュメントに紹介されているisortの設定をコピーして、pyproject.tomlやtox.iniに貼り付けていた。
github.com

ところが、最近、isortの設定にprofileというオプショングループのようなものがあり、black互換用のprofileも提供されていることを知った。

pycqa.github.io

従って、以下のように1行設定するだけで、black互換の各種オプションをコピペするのと同じ効果が得られる。
※ 具体的に設定されるオプション値もドキュメントに記載されている。

profile = black

この書き方の方が保守性が高そうだなと思った。

知ったきっかけ

FastAPIってフォーマッターは何を使っているのかな?と気になって、リポジトリを眺めていたら、pyproject.tomlに

[tool.isort]
profile = "black"

とあったので、このオプションなんだろう?と思って調べてみた。
github.com