環境

  • Python 3.7.2

背景

argparser でCLIコマンドを作成しています。

作成したいコマンドには、以下のオプション引数があります。

  • --project_id
  • --user_id
  • --organization_id
  • --logdir
  • --yes

--logdir--yesオプション引数は、全コマンドで共通のオプション引数です。
ヘルプ表示では、これらのオプションを"positional arguments"や"optional arguments"と区別して表示したいです。add_argument_group を使って、--logdir--yesオプション引数は"global optional arguments"という引数グループにしました。

    parser = argparse.ArgumentParser()
    parser.add_argument('--project_id', type=str, help='Project ID')
    parser.add_argument('--user_id', type=str, help='User ID')
    parser.add_argument('--organization_id', type=str, help='Organization ID')

    # 共通のオプション引数
    group = parser.add_argument_group("global optional arguments")
    group.add_argument('--yes', action="store_true", help="処理中に現れる問い合わせに対して、常に'yes'と回答します。")
    group.add_argument('--logdir', type=str, default=".log", help="ログファイルを保存するディレクトリを指定します。")

    args = parser.parse_args()


$ python test_command.py -h
usage: test_command.py [-h] [--project_id PROJECT_ID] [--user_id USER_ID]
                       [--organization_id ORGANIZATION_ID] [--yes]
                       [--logdir LOGDIR]

optional arguments:
  -h, --help            show this help message and exit
  --project_id PROJECT_ID
                        Project ID
  --user_id USER_ID     User ID
  --organization_id ORGANIZATION_ID
                        Organization ID

global optional arguments:
  --yes                 処理中に現れる問い合わせに対して、常に'yes'と回答します。
  --logdir LOGDIR       ログファイルを保存するディレクトリを指定します。

質問

--helpオプションは"optional arguments"グループに所属しています。
しかし--helpは全コマンド共通なので、"global optional arguments"グループ所属させたいです。
--helpオプションのグループを変更することは可能でしょうか?
可能でしたら、その方法を教えていただきたいです。