こんにちは、コウキです。
今回はPythonのフォーマッターについてです。
Pythonのフォーマッターは色々ありますが、blackとisortの組み合わせが使ってみて最強だったのでこの2つを紹介します。
blackの最大のメリットは色々な書き方ができなくなることです。
改行位置、スペースの数など完全に固定されます。これによって、コードを書く人による差がなくなるので、レビューで無駄な言い争いがなくなります。
一人の場合でも適当に書いててもきれいにしてくれるのでかなりおすすめです。
isortはblackが対応していないimport文のソートや重複削除などを行うために使います。
こちらもかなり便利なので入れておきましょう!
blackの使い方
まずはblackをインストールします。
pip install black
そのままでも使えますが設定を変更しておきます。
blackは文字列の''
を""
に変換しますが、今回は設定でこれを無効にしています。ここは好みで変えてください。
pyproject.toml
[tool.black]
line-length = 120
target-version = ['py310'] # Pythonのバージョン
include = '\.py$' # 対象ファイル
skip-string-normalization = true # ''を""に変換しない設定(好みで変えてください)
# フォーマットしないファイル
exclude = '''
(
\.eggs
| \.git
| \.hg
| \.mypy_cache
| \.tox
| venv
| \.idea
| \.vscode
| _build
| buck-out
| build
| dist
| migrations
)
'''
blackの実行は以下のコマンドで行います。
これですべてのファイルがフォーマットされます。
black .
blackのフォーマットに沿っているかをチェックするには次のコマンドを実行します。
これはCIなどで使うと便利です。
black . --check
isortの使い方
isortをインストールします。
pip install isort
isortの設定をpyproject.toml
に追加します。
pyproject.toml
[tool.black]
...
[tool.isort]
profile = "black"
line_length = 120
skip_glob = "*/migrations/*.py"
isortの実行は次のコマンドで行います。
isort .
isortでフォーマットされているかチェックするには以下のコマンドを使います。
こちらもCIなどに組み込むと良いと思います。
isort . --check-only
Pycharmでファイル保存時にisortとblackを実行する
Pycharmでisortとblackを自動実行する設定をするにはFile Watchers
という機能を使います。これは有料版のみ使えるみたいです。
Preferences > Tools > File Watchers
を開きます。そこで+ボタンを押して、<custom>
を選んでください。そうすると新規登録画面が開きます。
blackの設定
File type | Python |
---|---|
Scope | Current File |
Program | $PyInterpreterDirectory$/black |
Arguments | $FilePath$ |
Advanced Options | すべてチェックを外す |
isortの設定
File type | Python |
---|---|
Scope | Current File |
Program | $PyInterpreterDirectory$/isort |
Arguments | $FilePath$ |
Advanced Options | すべてチェックを外す |
これでファイル保存したときに自動でフォーマッターが実行されるようになります。
VSCodeでも同じような設定があるので、VSCodeを使っている人は調べてみてください。
おわりに
今回はblackとisortについて紹介しました。
これを入れると開発が捗ること間違いなしなのでぜひ入れておきましょう!
コメント