さっそくアップデート
可搬的なPythonスクリプト実行環境のテンプレートをセットアップするツールをpy-encaseを作成し、どういう機能を実装したかの記事(前編)を書き、実際にはどう使うかについての記事(後編)も書いた。
基本的なコンセプトとしては、「可搬性を維持するために、標準モジュールだけを使い、1つのファイルに納める」というところで考えていたが、「場面によってPythonスクリプトの雛形(テンプレート)を変えたい」という誘惑に駆られ、さっそくアップデートした。
ファイル置き場
アップデートした点
- 'py_encase.py'に埋め込まれたテンプレートからファイルを作成する機能を含んでいるサブコマンド
init,add,addlib,addkv,newmodule,update_readme,init_gitに、コマンドラインオプション-D(--template)を追加した.
実行例
% .../py_encase.py --manage add --template {template-file} ....
というふうに、ファイルの雛形になるテンプレートファイルを指定できます。コマンドラインで指定する代わりに、ファイルを環境変数PY_ENCASE_TEMPLATEでも指定できるようにしました。優先順位としては、
- コマンドライン引数
-D(--template)で指定されたファイル - 環境変数
PY_ENCASE_TEMPLATEで指定されたファイル - 上記がなければ、実行中の
py_encase.pyの本体
といった感じで雛形を読み込む元のファイルが決められます。
- サブコマンド
dump_templateを実装しました。 一からテンプレートファイルを作成するのは面倒なので、py_encase.pyに含まれている雛形(テンプレート)定義の部分だけを抜き出して出力できます。
dump_templateヘルプメッセージ
% py_encase --manage dump_template -h
usage: py_encase --manage dump_template [-h] [-o OUTPUT] [-D TEMPLATE] [-v] [-n]
options:
-h, --help show this help message and exit
-o OUTPUT, --output OUTPUT
Output to file (default: sys.stdout)
-D TEMPLATE, --template TEMPLATE
Template File (default: .../py_encase.py)
-v, --verbose Verbose output
-n, --dry-run Dry Run Mode
ファイルへ出力する-o(--output)オプションもあるので、まず雛形(テンプレート)をファイルにダンプし、これを書き換えることで新しい雛形作成をサポートします。
まとめ
デフォルトの動作としては変わっていないので「可搬性のため1ファイル」というコンセプトは維持しつつ、場合によっては雛形をカスタマイズできる機能を追加しました。