我想要两个独立的子命令,每个子命令都有不同的选项。
E.g。 -
command first --one --two
command second --three
选项one
和two
仅适用于子命令first
和three
,适用于子命令second
。
我的代码格式为:
@click.group()
@click.option('--one')
@click.option('--two')
def cli1():
print("clione")
@cli1.command()
def first():
pass
@click.group()
@click.option('--three')
def cli2():
print("clitwo")
@cli2.command()
def second():
pass
cli = click.CommandCollection(sources=[cli1, cli2])
if __name__ == '__main__':
cli()
但是在运行它之后,我无法为每个子命令运行任何选项。
我用过这个:Merging Multi Commands
答案 0 :(得分:1)
我发现执行子命令最简单的方法是只使用一个组,我通常将该组cli
命名为:
@click.group()
def cli():
pass
使用组的名称,声明如下命令:
@cli.command()
def name_of_command():
....
import click
@click.group()
def cli():
pass
@cli.command()
@click.option('--one')
@click.option('--two')
def first(one, two):
click.echo("clione %s %s" % (one, two))
@cli.command()
@click.option('--three')
def second(three):
click.echo("clitwo %s" % three)
cli('first --one 4'.split())
clione 4 None