したがって、私が達成したいのは、 with と のように、引数が特定の事前定義されたセット (ここでは tool1、tool2、tool3) の一部であることを保証すると@click.option
同時に、 withtype=click.Choice()
のように複数の引数を渡すことができるようにすることです。@click.argument
nargs=-1
import click
@click.command()
@click.option('--tools', type=click.Choice(['tool1', 'tool2', 'tool3']))
@click.argument('programs', nargs=-1)
def chooseTools(programs, tools):
"""Select one or more tools to solve the task"""
# Selection of only one tool, but it is from the predefined set
click.echo("Selected tools with 'tools' are {}".format(tools))
# Selection of multiple tools, but no in-built error handling if not in set
click.echo("Selected tools with 'programs' are {}".format(programs))
これは、たとえば次のようになります。
python selectTools.py --tools tool1 tool3 tool2 nonsense
Selected tools with 'tools' are tool1
Selected tools with 'programs' are (u'tool3', u'tool2', u'nonsense')
それを達成するための組み込みの方法はありますか?または@click.argument
、関数自体で入力を使用してチェックする必要がありますか?
私は特にクリックを使用したコマンドライン インターフェイスのプログラミングにかなり慣れていないため、Python をより深く掘り下げ始めたばかりなので、この問題を適切に処理する方法についての推奨事項をいただければ幸いです。