Contents
まとめ
- pre-commit を使ってコミット時に自動で PEP8 のコーディングスタイルを適用する
.pre-commit-config.yaml
に適用するコーディングスタイルの内容を記載する- 環境構築が完了すれば、コーディングスタイルを過剰に意識しないで済む
はじめに
コミット時に自動的に PEP8 のコーディングスタイルを適用する方法を紹介します。
前回の記事では、 コミット時に JS Standard Style コーディングスタイルを適用する pre-commit のススメ | JavaScript 編 を紹介しました。
その記事で紹介した pre-commit
を、今回も使います。
pre-commit
を利用すると、コミット時にコーディングスタイルのチェックと修正が出来るようになります。
PEP8 のコーディングスタイルをいちいちチェックしてコーディングしているような人は、
そのやり方はとても非効率なので是非ともこの記事で紹介する pre-commit
を使ってください。
それでは、どうぞ!
pre-commit のインストール
まずは pre-commit
をインストールします。
pip
コマンド、もしくは brew
コマンドを使ってインストールできます。
$ pip install pre-commit
# or
$ brew update
$ brew install pre-commit
正常にインストールできたか確認するために pre-commit
のバージョンを確認します。
何かしらバージョンが出力されれば ok です。
$ pre-commit --version
pre-commit 2.9.3
インストールが成功したので、次はコーディングスタイルの指定と pre-commit
の有効化に進みましょう。
コーディングスタイルの指定
まずは、コーディングスタイルを指定します。
そのために .pre-commit-config.yaml
ファイルを Git で管理されているリポジトリの
トップディレクトリに保存してください。
このファイルは、必ずトップディレクトリに保存してください。 (トップディレクトリにないと期待動作しません)
.pre-commit-config.yaml
には以下のコードを書いてください。
repos:
- repo: https://github.com/pre-commit/mirrors-autopep8
rev: main
hooks:
- id: autopep8
repos
repo
rev
hooks
id
などのそれぞれの説明は
https://pre-commit.com/ を参照してください。
(なんとなくの意味はパッと見でわかるかもしれませんが)
これで、コーディングスタイルの指定は完了です。
最後に、pre-commit
を有効化しましょう。
pre-commit の有効化
pre-commit
の有効化はコマンド一発です。
以下のコマンドを Git で管理されているプロジェクトのトップディレクトリで実行してください。
$ pre-commit install
pre-commit installed at .git/hooks/pre-commit
はい、これにて pre-commit
の有効化が完了しました。
あとは、プロジェクトにもよりますが、一括でコーディングスタイルを適用しておくと良いかもしれません。
以下のコマンドを実行すれば、一括で全ての対象ファイルにコーディングスタイルを適用できます。
$ pre-commit run --all-files
# 出力結果省略
pre-commit
が期待動作すれば、コーディングスタイルに反している対象ファイルが修正されています。
git status
や git diff
などで差分を確認してみてください。
これ以降、コミット時に自動的にコーディングスタイルが適用され、反しているコードは強制的に修正されます。
コーディングスタイルを過剰に気にすることなく、コーディング自体に集中できる環境ができました。
お疲れ様です!
おわりに
pre-commit
を使って自動で PEP8 のコーディングスタイルを適用する方法を紹介しました。
「お、良さそう、早速インストールしてみよう」と思っていただけたら嬉しいです。
この記事に対して「良いね」と思っていただけたら、 Twitter のフォローをお願いします。
この記事を読んでくれた人の開発環境が少しでも快適になることを願っています。
最後までお読みいただきありがとうございました。
今日も良い一日をお過ごしください:)
執筆機材
- Xiser Pro Trainer (ステッパー)
- HHKB Professional 墨 (キーボード)
- HHKB キートップセット 白 (キートップ)
- Apple Magic Mouse 2 (マウス)
- Apple MacMini (PC)
- iiyama Display 27inch FullHD (ディスプレイ)
- KINTO UNITEA 550ml (コップ)