yiskw note

機械学習やプログラミングについて気まぐれで書きます

【Python】特定の行だけBlackによるコード整形を行わないようにする


概要

PythonのPEP8準拠のコードフォーマッターとして、Blackが有名です。 Blackは、他のフォーマッターよりもカスタマイズ性が低く、制限が多いです。 その代わり、コードの書き方が統一されるので、細かい書き方で議論したり、悩んだりする必要がなくなり、 開発やコードレビューを高速に行うことができます。

ただ、稀にコードの特定の部分だけ、blackによるコード整形を行いたくない場合があります。 今回は、コードの特定の行だけコード整形を行わない方法について調べたので、こちらにメモを残します。

方法

方法はシンプルで、コード整形を行いたくない箇所を # fmt: off ~ # fmt: onのコメントで囲うだけです。
また一行だけコード整形を行いたくない場合は、# fmt: skipコメントを追加します。

# fmt: off
dict1 = {
    "hoge": 10, "foo": 32.1, "bar": True,
    "baz": False, "fuga": "xxx", "piyo": 12
}
# fmt: on

dict2 = {
    "hoge": 10, "foo": 32.1, "bar": True,  # fmt: skip
    "baz": False, "fuga": "xxx", "piyo": 12
}

実際に試してみた結果のスクリーンショットが以下です。

指定したところだけ、コードの整形が行われていないことを確認できました!

Reference