argparse を使用して、REST 要求を作成するために作成したスクリプトに機能を追加できるかどうかを知りたいです。現在の使用法はうまく機能し、次のようになります。
$./prog.py -h
usage: prog.py [-h] [--headers [HEADER [HEADER ...]]]
[--queryparams [QUERY [QUERY ...]]] [--body [BODY]]
[METHOD] URL
私はこのようなものでその使用法を取得します:
parser = argparse.ArgumentParser()
position = self.parser.add_argument_group(
title='Positional arguments',
description='The only required argument is URL.'
)
position.add_argument(...)
position.add_argument(...)
私がやりたいことは、最初のグループとは完全に相互に排他的なパラメーターの 2 番目のグループを追加することです。
2 番目のグループの使用法は次のようになります。
$./prog.py -h
usage: restcli.py [-h] request {refresh,update}
つまり、request
が最初の引数の場合、それとともに有効なオプションはrefresh
またはのみですupdate
。最初のパラメーターでない場合request
は、元の使用法を扱っていると想定します。
サブパーサーを使用すればほぼこれを実行できると思いますが、元の非要求パーサーが必要であることを指定するには、キーワードが必要です。original
その場合の使用法は次のようになりますが、可能であればそのキーワードは避けたいと思います。
$ ./prog.py -h
usage: prog.py [-h] {orignal,request}
あなたが提供できるかもしれない助けを前もって感謝します。