PyCharmでのプログラム開発時でコード保存時に自動フォーマットする方法について解説します。具体的には、blackとisortを自動適用する方法を紹介します。
Contents
Pythonのフォーマットツール
Pythonでプログラミングをしている際にコードの整形をサポートしてくれるツールがいくつかあります。
例えばAutopep8、black、yapfといったものがありますが、最近ではblackがデファクトスタンダートになっているようです。また、blackは、import文のソート順整理や重複削除について実行してくれませんのでisortと併用すると便利です。
本記事では、Pythonの統合開発環境であるPyCharmにてコードを保存する際に、blackとisortによるフォーマットをするための設定方法について解説します。
Pycharmにおけるコード保存時の自動フォーマット設定
blackとisortのインストール
blackとisortがまだインストールがされていない人は以下のコマンドでインストールしてください。
pip install black
pip install isort
Pycharmへのファイル監視プラグインのインストール
コード保存時の自動フォーマットをするためには、PyCharmのファイル監視プラグインである「File Watchers」が必要です。
PyCharmを開いた際の左側にある「プラグイン」で、Marketplaceの検索窓に”File Watchers”と入れてみてください。このプラグインはデフォルトで入るのだったか忘れてしまったのですが、インストール済みになっていればファイル監視プラグインはインストールされています。
インストールされていないようであれば、インストールを実行して、PyCharmを再起動してください。
PyCharmでのファイル監視プラグイン設定
ファイル監視プラグインがインストールされていると、PyCharmで[ファイル]-[設定]のツール配下に「File Watchers」という項目があります。
ここにblackとisortの設定を適用します。以降で具体的な手順を見ていきましょう。
blackの設定
blackを設定する場合には「+」のcustomを選択してください。
以下の項目を設定していきます。
項目 | 値・設定内容 |
---|---|
名前 | black |
ファイルタイプ | Python |
スコープ | 現在のファイル |
プログラム | \$PyInterpreterDirectory\$\black |
引数 | \$FilePath\$ |
編集したファイルを自動保存してウォッチャーをトリガーする | チェックを外す |
外部の変更でウォッチャーをトリガーする | チェックを外す |
上記の設定では、現在のPythonファイルに対してblackによるフォーマットを実行します。
[高度なオプション]の2項目は現在編集中のファイルが保存されたときだけblackを実行する用にチェックを外します。
OKを押すと以下のようにファイル監視設定が作成されます。無効化したい時はチェックを外しましょう。
上記の設定後にPythonファイルを保存してみましょう。blackによるコードフォーマットが実行されます。
1行の文字数を変更したい場合
blackでは1行の文字数は88文字になっています。PEP8では79文字以内ということになっているため、自動整形したときに80文字以上になるとPycharmの設定によってはPEP8に合わない旨の警告が出るかもしれません。
88文字である理由は、blackの開発者が88文字がよいという考えがあるからのようです。
blackの設定をPEP8に揃えたい場合は、.pyproject.tomlというファイルをプロジェクト直下に作成して以下のような記述を追加してください。
[tool.black] line-length = 79
上記のような設定の.pyproject.tomlを用意しておくと、blackの自動成型時に79文字以内になるように整形してくれるため、PEP8のチェックも問題なくなります。
もちろん文字数は、プロジェクトの方針や個人の好みに合わせて変更していただければよいかと思います。
isortの設定
blackの設定と同じくisortの設定もしていきましょう。File Watchersの設定で「+」のcustomを選択し、以下のように入力してください。
項目 | 値・設定内容 |
---|---|
名前 | isort |
ファイルタイプ | Python |
スコープ | 現在のファイル |
プログラム | \$PyInterpreterDirectory\$\isort |
引数 | \$FilePath\$ |
編集したファイルを自動保存してウォッチャーをトリガーする | チェックを外す |
外部の変更でウォッチャーをトリガーする | チェックを外す |
上記の設定では、現在のPythonファイルに対してisortによるimport文の整形を実行します。
[高度なオプション]の2項目は現在編集中のファイルが保存されたときだけisortを実行する用にチェックを外します。
OKを押すと以下のようにファイル監視設定が作成されます。無効化したい時はチェックを外しましょう。
上記の設定後にPythonファイルを保存してみましょう。isortによるimport文のソートが実行されます。
まとめ
PyCharmでのプログラム開発時でコード保存時に自動フォーマットする方法について解説しました。具体的には、blackとisortを自動適用する方法を紹介しています。
コード保存時の自動適用は、ファイルを監視するPyCharmのプラグイン「File Watchers」にblackとisortの実行パラメータを設定することで実現できます。
フォーマットツールをうまく使うとプログラマ間で品質の違いを小さくすることができますので、是非設定して使ってもらえるとよいかと思います。