我正在尝试使用argcomplete自动完成要输入脚本“setup\u warehouse\u env”的可能参数:
def env_completer(prefix, **kwargs):
# Run the command cman env list and return the results as a list of strings
process = subprocess.Popen(shlex.split("cman env list"), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
env_list = process.stdout.readlines()
env_list = [line.rstrip('\n') for line in env_list]
print env_list
return [v for v in env_list if v.startswith(prefix or '')]
if __name__ == '__main__':
arg_parser = argparse.ArgumentParser(description='Choose the warehouse environment')
arg_parser.add_argument('--environment', type=str, default='',
help="Environment name").completer = env_completer
argcomplete.autocomplete(arg_parser)
args = arg_parser.parse_args()
问题是,我有另一个脚本已经使用arg complete(一个称为cman的脚本),而我的脚本在这里以某种方式结束时与cman脚本具有相同的自动完成功能。但是,我希望它有命令“cman env list”返回的选项(字符串列表)。你知道吗
我有另一个bash脚本来这样设置我的环境
eval "$(register-python-argcomplete setup_warehouse_env 2>/dev/null)"
setup_warehouse_env安装到一个全局二进制文件夹中,以便可以找到它。 我注意到函数“env\u completer”甚至没有被调用,因为我没有看到
print env_list
当我按tab键自动完成时。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐