■ はじめに
https://dk521123.hatenablog.com/entry/2020/02/07/000000
の続きで、Pythonのコードチェックにおいて、 flake8 以外にも、色々なツールがあふれている。 そこで、フォーマッターなども含めた Python を奇麗に書くためのツール群について、整理してみた。
目次
【0】個人的メモ 1)後日談(2024/03/13) 【1】フォーマッター - Formatter - 1)autopep8 2)yapf 3)black 【2】リンター - Linter - 1)flake8 2)pylint 3)pycodestyle (旧:pep8) 4)pydocstyle(旧:pep257) 5)pyflakes 【3】その他ツール 1)isort 2)Pylance 3)mypy 4)Inspecode / Docstand / Loadroid 【4】比較サイト
【0】個人的メモ
* とりあえず、以下を入れとけばいいかなっと、、、 + black + flake8 + isort + mypy
1)後日談(2024/03/13)
Python解析ツール ~ Ruff ~
https://dk521123.hatenablog.com/entry/2024/03/13/000021
【1】フォーマッター - Formatter -
* コードを自動整形してくれる * 以下を参考。
https://www.kimoton.com/entry/20181223/1545540702
https://kamatimaru.hatenablog.com/entry/2020/04/26/194619
1)autopep8
* PEP8準拠したPythonのフォーマッタ
インストール
pip install --upgrade autopep8 # Poetry の場合 poetry add autopep8 -D
参考文献
https://itstudio.co/2020/09/26/11077/
2)yapf
* yapf = Yet Another Python Formatter * google社製
参考文献
https://wonderwall.hatenablog.com/entry/2017/09/03/224500
https://mmtomitomimm.blogspot.com/2018/08/yapf.html
https://uepon.hatenadiary.com/entry/2017/09/11/220015
3)black
* 「妥協のないコード整形ツール」と、うたっているらしい => 逆にいうと、細かく設定できない * 雰囲気を味わいたい場合は、以下のデモを参照。
* 詳細は、以下の関連記事を参照のこと。
black ~ Python formatter ~
https://dk521123.hatenablog.com/entry/2021/11/10/095258
【2】リンター - Linter -
* 以下を参考。
https://nullpo-dev.net/programming/python/how-to-code-check-too/
https://siderlabs.com/blog/ja/python-lint-pickup-5tools/
Linter(リンター)とは?
* ソースコードの構文をチェックするツール => 構文に問題あるコードを事前にチェックしてくれる
1)flake8
* スタイルチェック + エラー解析 + 複雑度チェック => pycodestyle + pyflakes + mccabe(マッケイブ) のラッパー * 詳細は、以下の関連記事を参照のこと。
flake8 ~ Pythonコードチェック ~
https://dk521123.hatenablog.com/entry/2020/02/07/000000
2)pylint
* Python の リンター
参考文献
https://developers-book.com/2020/08/16/239/
3)pycodestyle (旧:pep8)
* PEP 8 準拠
4)pydocstyle(旧:pep257)
* PEP 257 準拠
PEP 257 とは?
* docstring ("""と"""で囲まれたコメント) の 書き方
5)pyflakes
* スタイルに関しては無関知 * 論理的なエラーのみを検出する
【3】その他ツール
1)isort
* isort = Import Sort => Import を SORT してくれるツール => Pythonのモジュールインポート順を自動修正 => Black は Import順までチェックしないので 組み合わせて使うのが吉
2)Pylance
* Microsoft製の拡張機能で、 静的型チェックに加えて、自動インポートや、型宣言を強制するstrictモード搭載
https://qiita.com/simonritchie/items/33ca57cdb5cb2a12ae16
https://kamocyc.hatenablog.com/entry/2020/07/11/204813
3)mypy
* Python の 静的型チェックをしてくれる => 以下の例のようなことを指摘してくれる
Static Typing linter ~ mypy ~
https://dk521123.hatenablog.com/entry/2022/07/19/000000
4)Inspecode / Docstand / Loadroid
* ソニーネットワークコミュニケーションズ株式会社の100%子会社である Rocro(ロクロ)が作成 => 会社名の Rocro とは、継続的インテグレーション(Continuous Integration)が 円環的で「ロクロ」に似ているかららしい。 * 「Freeプラン」として、1コアであれば今後も無償で利用可能
https://atmarkit.itmedia.co.jp/ait/articles/1709/16/news011.html
https://atmarkit.itmedia.co.jp/ait/articles/1811/08/news057.html
https://cloud.watch.impress.co.jp/docs/news/1152363.html
https://www.apibank.jp/contents/news/inspecode-docstand/
https://ascii.jp/elem/000/001/549/1549251/
https://qiita.com/hikoy/items/a7f0e012c141d4c8e71f
Inspecode (インスぺコード)
* 自動コードレビューサービス
Docstand (ドックスタンド)
* APIドキュメント生成サービス
Loadroid(ロードロイド)
* 自動負荷試験サービス
【4】比較サイト
その現場、現場で好みのやつを使えばいいってことになるが とはいえ、どれがお勧めなんだって話になると思うので 比較しているサイトをピックアップしてみた。 => やっぱり各々好みがあるので、色々な意見を聞いたうえで 組み合わせて使えばいいのかと。。。
https://qiita.com/sin9270/items/85e2dab4c0144c79987d
https://libroworks.co.jp/?p=4115
https://minus9d.hatenablog.com/entry/2018/10/22/235604
https://zenn.dev/yhay81/articles/yhay81-202102-pythonlint
関連記事
flake8 ~ Pythonコードチェック ~
https://dk521123.hatenablog.com/entry/2020/02/07/000000
Python formatter ~ black ~
https://dk521123.hatenablog.com/entry/2021/11/10/095258
Static Typing linter ~ mypy ~
https://dk521123.hatenablog.com/entry/2022/07/19/000000
Python解析ツール ~ Ruff ~
https://dk521123.hatenablog.com/entry/2024/03/13/000021
Visual Studio Code ~ Python拡張 ~
https://dk521123.hatenablog.com/entry/2020/10/10/000000
Github ~ Github Actions 編 ~
https://dk521123.hatenablog.com/entry/2021/11/04/142835
パッケージ管理 ~ Poetry ~
https://dk521123.hatenablog.com/entry/2021/11/09/155903
Python ~ 基本編 / 型指定・Typing ~
https://dk521123.hatenablog.com/entry/2021/12/23/231559