Pythonのargparseモジュールを使用して、一般的なCLIにおける--help--versionのような動きをするコマンドを実装する方法を紹介します。

まずは、argparse.ArgumentParserのインスタンスを作成します。そして、add_argumentメソッドを使用して引数を追加します。このとき、actionパラメータには自作したActionクラスを指定します。

import sys
from argparse import SUPPRESS, Action, ArgumentParser

def show_system_version():
    print(sys.version)

class SampleAction(Action):
    def __init__(self, option_strings, dest=SUPPRESS, default=SUPPRESS, help=None):
        super().__init__(
            option_strings=option_strings,
            dest=dest,
            default=default,
            nargs=0,
            help=help,
        )

    def __call__(self, parser, namespace, values, option_string=None):
        show_system_version()
        parser.exit()

def main():
    parser = ArgumentParser()
    parser.add_argument(
        "-S", "--system",
        action=SampleAction,
        help="show system version and exit"
    )
    parser.add_argument("--mushi", help="無視されるべきオプション")
    args = parser.parse_args()
    print(args.mushi)

if __name__ == "__main__":
    main()

このコードでは、-Sまたは--systemオプションが与えられたときに、show_system_version関数を実行して処理を終了します。

このように、argparseモジュールを使用すれば、独自のヘルプコマンドを簡単に実装することができます。ぜひ試してみてください。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です