0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

可搬的なPythonスクリプト実行環境のテンプレートを作成するツールをPythonで改訂 (さっそくアップデート)

Last updated at Posted at 2025-09-16

さっそくアップデート

可搬的な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でも指定できるようにしました。優先順位としては、

  1. コマンドライン引数-D(--template)で指定されたファイル
  2. 環境変数PY_ENCASE_TEMPLATEで指定されたファイル
  3. 上記がなければ、実行中の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ファイル」というコンセプトは維持しつつ、場合によっては雛形をカスタマイズできる機能を追加しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?