bootstrap Python package

以前、Pythonパッケージ生成用のテンプレートをシェルスクリプトで作ったのですが、Pythonで一から書き直して bootstrap-py としてPyPIで公開しました。

できること

  • そのままPyPIに登録可能な形でPythonパッケージを生成
  • PyPIで登録されている名前を事前チェック
  • Toxを使ってユニットテストとテストツールを実行
    • pytest-covによるカバレッジの計測
    • pytest-pep8 コーディング規約のチェック
    • pytest-flakes による文法チェック
    • pytest-pylint によるコードチェック
    • PyChecker によるバグ検出
    • docstringのチェック
    • ユニットテストの実行順をランダム化
    • 前回以前のテスト実行時の古いバイトコードを削除
    • Sphinxでのドキュメントビルドチェック
  • Sphinxとautomoduleによるドキュメント自動生成
  • ClassifiersからのOSI Approved LICENSESとdevelopment statusの選択
  • GitHubアカウントを指定した場合に、Travis-CI, Coveralls, ReadTheDocsのステータスボタンをREADMEに設定
  • GitPythonで上記が設定した状態でGitリポジトリを生成し、user.name, user.email およびremote originを設定し、Initial commitを作成

Python 2.7以上、Python3.3以上、PyPy 2.4.0以上で初期コミット状態でtoxが通ります。(生成されたリポジトリでのPythonコードは実質setup.pyだけ、というのもありますが)

使い方などはREADMEにありますのでそちらを参照ください。

リポジトリは、 こちら

GitPython久しぶりに使った

約3年半前に ネタで書いたコード で使って以来、久しぶりにGitPythonを使いました。あー、便利。だけど、早速バグを見つけてしまった(commit時に、.git/HEADに \n が最後に付加されない)ので、バグ報告しておこう。

余談

以前はこれの拡張で、Django + django REST framework + Django絡みのベストプラクティスと言われるようなのを予め反映させるテンプレート(それもやはりシェルスクリプト)を作ったのですが、最近Djangoは使っていないのでとりあえず予定はありません。

おわり。