我正在使用python单击模块来创建一个CLI。事实上,我希望有带有参数的类别命令,例如:
myawesomecli env info
myawesomecli env clean
myawesomecli env ...
myawesomecli database create-table <name>
myawesomecli database insert <entry>
myawesomecli database ...到目前为止,我能想到的是:
import click
@click.group()
@click.version_option(version='0.1 ')
def cli():
pass
@cli.command()
@click.argument('option')
def env(option):
if option == 'info':
click.echo("run env info command")
elif option == 'clean':
click.echo("run env clean command")
...
@cli.command()
@click.argument('option')
def database(option):
if option == 'create-table':
click.echo("run database create-table command")
elif option == 'clean':
click.echo("run database clean command")
...是否有一种方法可以为每个子命令设置一个函数,而不是使用if- there?
发布于 2016-05-12 23:37:58
import click
@click.group()
@click.version_option(version='0.1 ')
def cli():
pass
@cli.group()
@click.argument('option')
def env(option):
""" Define the environment of the product """
pass
@env.command()
def info():
click.echo("run env info command")
@env.command():
def group():
click.echo("run env group command")
...我也在努力理解一些事情,但这是一个我希望能有所帮助的想法。
https://stackoverflow.com/questions/36934840
复制相似问题