Chamada múltipla do mesmo subcomando em uma única linha de comando
Estou tentando descobrir como usar o argparser para fazer o seguinte:
$ python test.py executeBuild --name foobar1 executeBuild --name foobar2 ....
getBuild
em si é um subcomando. Meu objetivo é ter o script capaz de encadear uma série de subcomando (executeBuild
sendo um deles) e executá-los em ordem. No exemplo acima, ele executaria uma construção, configuraria o ambiente e executaria a construção novamente. Como posso fazer isso com o argparse? Eu tentei o seguinte:
main_parser = argparse.ArgumentParser(description='main commands')
subparsers = main_parser.add_subparsers(help='SubCommands', dest='command')
build_parser = subparsers.add_parser('executeBuild')
build_parser.add_argument('--name', action='store', nargs=1, dest='build_name')
check_parser = subparsers.add_parser('setupEnv')
args, extra=main_parser.parse_known_args()
No entanto, parece que sempre que faço isso, ele entra no subcomando deexecuteBuild
e relatar que não sabe o queexecuteBuild
é. Tentei analisar o extra para poder fazer uma chamada / cadeia repetida; no entanto, a primeira propriedade de exibição parece ter sido substituída, portanto, não posso nem salvar as opções extras e iterar.