在 python 单击中仅执行嵌套组列表中的最终命令
Execute only final command in nested list of groups in python click
我正在创建一组深度嵌套的命令作为 click.group()s。当我按下 Enter
键时,我只想执行输入到 cli 的最后一组(命令)。
例如:
cli sub_command subsub_command # < -- should only execute subsub_command
... 应该只执行最后一个命令 subsub_command
,但是,点击似乎想要执行完整的命令堆栈。 (奇怪的是它不包括 subsub_command
?):
$ cli sub-command subsub-command
I am the root_command
I am sub_command
Usage: cli sub-command subsub-command [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
似乎 运行 除了最后一个命令之外的所有内容。为什么它显示 subsub_command
的帮助而不是简单地执行它?
这是我的点击代码:
import os
import sys
import click
@click.group(invoke_without_command=True)
def cli():
print('I am the root_command')
@cli.group()
def sub_command(invoke_without_command=True):
print('I am sub_command')
@sub_command.group()
def subsub_command(invoke_without_command=True):
print('I am the subsub_command')
if __name__ == '__main__':
cli()
任何想法都有帮助。谢谢!
那是因为你一遍又一遍地使用 @cli.group
。
命令定义为@cli.command
例如:
import click
@click.group()
def cli():
pass
@cli.command(name='hello')
def hello():
print('hello world!')
@group
的思想是将多个命令组合在一起,group方法用于为整个组定义一个公共的上下文代码。
我正在创建一组深度嵌套的命令作为 click.group()s。当我按下 Enter
键时,我只想执行输入到 cli 的最后一组(命令)。
例如:
cli sub_command subsub_command # < -- should only execute subsub_command
... 应该只执行最后一个命令 subsub_command
,但是,点击似乎想要执行完整的命令堆栈。 (奇怪的是它不包括 subsub_command
?):
$ cli sub-command subsub-command
I am the root_command
I am sub_command
Usage: cli sub-command subsub-command [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
似乎 运行 除了最后一个命令之外的所有内容。为什么它显示 subsub_command
的帮助而不是简单地执行它?
这是我的点击代码:
import os
import sys
import click
@click.group(invoke_without_command=True)
def cli():
print('I am the root_command')
@cli.group()
def sub_command(invoke_without_command=True):
print('I am sub_command')
@sub_command.group()
def subsub_command(invoke_without_command=True):
print('I am the subsub_command')
if __name__ == '__main__':
cli()
任何想法都有帮助。谢谢!
那是因为你一遍又一遍地使用 @cli.group
。
命令定义为@cli.command
例如:
import click
@click.group()
def cli():
pass
@cli.command(name='hello')
def hello():
print('hello world!')
@group
的思想是将多个命令组合在一起,group方法用于为整个组定义一个公共的上下文代码。