私はargparseを使用しています。私は独自のオプションを持つさまざまなグループを持っています。argparseのグループ間でヘルプをカスタマイズ
ここで--helpオプションを使用すると、デフォルトですべてのオプションを表示する必要はありません。 --helpには、一連のグループオプションのみが表示されます。
他のグループオプションは--help_2
、--help_1
として、他のヘルプオプションに基づいて表示される必要があります。たとえば
:
--help' to show Group 2 and 3
--help_1' to show Group 11 and 12
--help_2' to show Group 22 and 23
私たちはを使用して、デフォルトの--helpオプションを無効にすることができることを知っていますadd_help = Falseしかし、選択したグループ固有のヘルプのみを表示するにはどうしたらいいですか?
我々は_action_groups属性を使用して、パーサーからグループのリストを取得することができますが、それらは以下のような任意のprint_help()オプションが公開されていません。
マイサンプルコード:
parser = argparse.ArgumentParser(add_help=False)
parser.add_argument('--help_a', action='store_true')
parser.add_argument('--help_b', action='store_true')
group1 = parser.add_argument_group("Feature 1")
group1.add_argument('--foo1')
group2 = parser.add_argument_group("Feature 2")
group2.add_argument('--foo2')
group3 = parser.add_argument_group("Feature 3")
group3.add_argument('--foo3')
# TODO: --help_a to only print "Feature 1" groups help
# and --help_b to print Feature 2 and 3's help.
EDIT:上記を解決するsubparser
を使用し、(代わりにグループの)パーサを加えます。しかし、サブパーザーは私の場合には適合しません。私はそれを常に解析しているので、表示するにはヘルプをカスタマイズする必要があります。
なぜ「less」を通さないのですか? 'python command.py --help | less' –
それは私の場合にはそう思わない。私は自分のAPIやスクリプトを使って外部のユーザーが自分の側で解析することを望んでいません。スクリプトはそれを単独で処理する必要があります。 – baky
私は分かりません。どのグループを使用しているのかと、別のヘルプページを表示する理由をさらにいくつか追加できますか? –