有没有一种方法可以使用cmd2
基于同一命令中先前提供的参数的自定义选项卡完成器?例如,给定以下代码,有没有办法让参数的color
制表符完成 ( help_here
) 基于为food
参数提供的值:
import cmd2
food = ['apple', 'banana', 'carrot']
def get_color(food):
color = []
if food == "apple":
color = ['red', 'green']
elif food == "banana":
color = ['yellow', 'green']
elif food == "carrot":
color = ['orange']
return color
class ArgparseCompletion(cmd2.Cmd):
parser_one = cmd2.Cmd2ArgumentParser(description="Test multiple tab completion")
parser_one.add_argument("food", type=str, choices=food, metavar="food", help="Food item"
parser_one.add_argument("color", type=str, choices=get_color(help_here), metavar="color", help="Color of item")
@cmd2.with_argparser(parser_one)
def do_parser(self, args):
pass
if __name__ == '__main__':
app = ArgparseCompletion()
app.cmdloop()