😽
blackとisortの設定がコンフリクトした時の対処法
はじめに
Pythonのフォーマッターの内、black
とisort
を使っていたのですが、この2つの設定がコンフリクトした結果、CIが通らなくなるという不具合が発生したので、その対処法を書き残しておきます。
環境
- Python 3.8.7
- black 20.8b1
- isort 5.7.0
発生した問題
例えば以下のようなコードがあったとします。
from third_party import (
lib4,
lib5,
lib333333333333,
lib222222222222222,
lib11111111111111111,
)
このコードにisort
でフォーマッターをかけると
from third_party import (lib4, lib5, lib333333333333, lib222222222222222,
lib11111111111111111)
ここからblack
でフォーマットをかけると
from third_party import (
lib4,
lib5,
lib333333333333,
lib222222222222222,
lib11111111111111111,
)
このように使用するフォーマッターによってコードの形が変わってしまいます。
上記の状態のままCIでblack
とisort
の両方でチェックをかけると、どちらかのフォーマッターでエラー判定になってしまい、結果CIが通らなくなってしまいました。
対処法
setup.cfg
というファイルを作り、以下の内容を記載します。
[isort]
profile=black
これでisortのフォーマットの設定がblackの設定に準拠するようになりました。
さいごに
意外と日本語の記事でピッタリした内容の資料が見当たらなかったので、自分で書き残してみました。
参考になれば幸いです。
Discussion