隅歩つ

書いて理解を深める

Pythonの準備(コードチェッカー・フォーマッター)

PythonVSCodeを使っています。

Pythonでのコードフォーマッターがうまく使えません。

Prettierを機能拡張に入れればいいのかと思ってましたが、そうでもないようです。

ライブラリ

Flaskの本を見ていると4つを使っていたので、まずこの4つを使ってみたいと思います。

flake8, black, isort, mypy

[black]はよくVSCodeでアラートが出るので知っていました。

今までずっと無視してしまってました。。

flake8

PEP8に沿った書き方のコードかどうかを自動チェックしてくれるそうです。

PEP8とはコーディングのルールだと思います。

https://pep8-ja.readthedocs.io/ja/latest/

black

PEP8に沿った書き方にコードを自動整形してくれるようです。

私が今まで自動整形がうまくできていなかったのはblackを無視していたからのようです。

isort

import文をPEP8に沿った書き方に自動で並び替えてくれるようです。

これは助かります。import部分はいつもぐちゃぐちゃになってしまいます。

mypy

タイプヒントの型チェック、と本には書いてあります。

これだけではよくわからないので、おいおい理解していきます。

インストール

インストールは以下となります。

pip install flake8 black isort mypy

通常どおりでした。

設定

インストールしたら使えると思っていたのですが、VSCodeでの設定も必要です。

flake8

▼有効(チェック)にするもの

  • Lint : [Python > Linting: Enabled]
  • flake8 : [Python > Linting: Flake8 Enabled]

▼無効にするもの

  • Pylint : [Python > Linting: Pylint Enabled]

あと、この本では最大文字数を88文字に設定しているので、私もそれに合わせます。 flake8とblackは最大文字数が違う(79と88文字)ので88文字に設定します。

[Python : Linting: Flake8 Args]に[--max-line-length=88]と入力

black

▼フォーマッターをblackに変更する。

[Python > Formatting: Provider]を[black]に変更。

▼保存時の自動フォーマットを有効にする。

[Editor: Format On Save]にチェックを入れる。

isort

保存時にisortが自動で実行されるように設定する。

[Editor: Code Actions On Save]で[settings.jsonで編集]をクリック。

[editor.codeActionsOnSave]を以下のようにする。

"editor.codeActionsOnSave": {
    "source.organizeImports": true
}

記入しようとしたら[source.organizeImports]が補完されます。

mypy

[Python > Linting: Mypy Enabled]にチェックを入れる

yuuuha.hatenablog.com