Pythonのプロジェクトテンプレート
例のごとく勉強がてらPythonでテンプレートエンジンかインタプリタを作ろうと思ったのだけど、そういえば、Pythonプロジェクトのテンプレート用意してなかったので用意した。
GitHub - rokujyouhitoma/python-project-template
設定済み。
- Poetry
- isort
- Black
- Flake8
- Radon
- Xenon
- Mypy
- pytest, pytest-cov, pytest-xdist
Radon
保守容易性や循環的複雑度を測ることができる。
Xenon
Radonをベースにしたツール。Failした場合にexit(1)を返すので、CIに組み込む際に活躍。
課題
- ツールの設定値は、Makefileごりごりな定義であり、pyproject.toml, setup.cfgなどの設定ファイルに定義していない
- Pyre, Pysaの設定は頓挫した
- CIの設定
- もともとテンプレートエンジンかインタプリタを作ろうと思ってたので、無駄にパーサジェネレータであるSLYをベースにしたサンプルが入ている。本来ならhello world程度でよい
- パッケージ名がsampleとなっておりこのテンプレートを新しいパッケージ名で始める際に、手書きで直す必要がある。解決策としてgrepやsed、mvなどを駆使してコマンド一発で新しいパッケージ開発できるスクリプトを用意する必要がある
- Docker, Kubernetesの設定がない
- build設定、setup.pyの設定がない