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となっておりこのテンプレートを新しいパッケージ名で始める際に、手書きで直す必要がある。解決策としてgrepsed、mvなどを駆使してコマンド一発で新しいパッケージ開発できるスクリプトを用意する必要がある
  • Docker, Kubernetesの設定がない
  • build設定、setup.pyの設定がない

古いPythonプロジェクトテンプレート

引退。お疲れ様。

GitHub - rokujyouhitoma/python-project-template-v1