Pythonのコードフォーマットツールについて紹介します。
コードフォーマットツールとは
autopep8
自動でPEP8スタイルガイドに準拠するようにするフォーマッタツールです。
autopep8 --in-place <filename>
とコマンドを実行するとpep8に準拠したコードへ整形してくれます。
また、設定によりファイル保存時に整形するようにできます。
flake8
Pythonのコードチェックツールです。
pep8などコーディング規約に違反したコードがないかチェックしてくれます。
設定方法
説明
今回はvscodeにてautopep8とflake8を設定する方法を紹介します。
flake8はコードチェックのみですが、autopep8は違反コードを自動修正してくれるので用途に応じて使い分けてください。
両方使用する人が多いです。
vscodeへの設定
こちらを参考にすることでautopep8とflake8を設定できます。
クォーテーション(引用符)の統一
デフォルトのflake8ではファイル中の「シングルクォーテーション」、「ダブルクォーテーション」の混在をチェックできません。
チェックするためにはこちらを参考に「flake8-quotes」をインストールします。
settings.jsonの設定
さらに細かな設定は「settings.json」から設定することができます。
settings.jsonの場所はこちらを参考にしてください。
例えば、インデントをスペース2つ分をコーディング規約として設定できます。
注意点
autopep8とflake8を両方使用している人向け
settings.jsonの「python.formatting.autopep8Args」と「python.linting.flake8Args」に設定した「--ignore=」のエラーコードが異なる場合、autopep8で自動整形してもflake8のエラー表示が消えず、二度手間のような状態になるので同じ値を推奨します。
例
{
"python.linting.flake8Enabled": true,
"python.linting.flake8Args": [
"--ignore=E111, E114, E402, E501"
],
"python.formatting.provider": "autopep8",
"python.formatting.autopep8Args": [
"--ignore=E114, E402, E501"
],
"[python]": {
"editor.formatOnSave": true
}
}
autopep8で自動整形後もflake8エラーのE111
が表示され続ける。
エラーコードの詳細
flake8等で表示されるpep8のエラーコードはこちらを参考にしてください。
参考