我正在使用click
从我的python模块中创建命令行实用程序。不幸的是click
并没有为各种可能的选择提供bash完成,这是我非常需要的,并且只有在你做出错误的选择时才会给出可能的选择。
我的代码:
import json
import click
@click.command()
@click.option('--conn_obj', help='Connection Object')
@click.option('--entity', help='The entity you want to interact with. Example : Network, VM, Firewall etc.', type=click.Choice(['network','vm','firewall','eip','gateway','image','interface','network','route','subnet','tags','vm']))
@click.option('--operation', help='The operation you want to perform. Example : Create, Delete, List', type=click.Choice(['choice1','choice2','choice3']))
def execute(conn_obj,entity,operation,**kwargs):
my_service = conn_obj.service
my_connection = conn_obj.connection
path = my_service + "/" + entity + ".json"
with open(path) as json_file:
json_data = json.load(json_file)
method = json_data[operation]
result = getattr(my_connection,method)(**kwargs)
return result
if __name__=='__main__':
execute()
根据我的理解,我有两个选择:
click
以外的其他模块创建命令行实用程序。不幸的是,我无法找到支持bash完成的任何支持。任何建议都会有所帮助。任何帮助将不胜感激。