0

有没有一种方法可以使用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()
4

0 回答 0