Estoy usando el módulo argparse en Python para analizar parámetros escritos en una interfaz de línea de comandos. Tengo la siguiente llamada a un objeto add_argument subparser:Python argparse: metavar y action = store_true juntos
submit_parser.add_argument('-pv','--provision',metavar='PROVISION', dest='PROVISION',
help='provision system',
action='store_true', default=False, required=False)
consigo este error:
Traceback (most recent call last):
File "./scripts/tp4", line 94, in <module>
main()
File "./scripts/tp4", line 74, in main
modloader.loadModules(sub_parsers)
File "/usr/lib/python2.6/site-packages/tp4/cli/Moduleloader.py", line 66, in loadModules
registered_modules[module_name].setSubparserArgs(module_sub_parser)
File "/usr/lib/python2.6/site-packages/tp4/cli/modules/AutotestModule.py", line 135, in setSubparserArgs
action='store_true', default=False, required=False)
File "/usr/share/tp4/cli/zip/argparse.zip/argparse.py", line 1302, in add_argument
TypeError: __init__() got an unexpected keyword argument 'metavar'
Si quito parámetros de acción o metavar, funciona. ¿Por qué ambos no pueden estar juntos? No hay nada acerca de esta restricción en la documentación argparse en http://docs.python.org/dev/library/argparse.html.
Gracias de antemano por cualquier ayuda
versión de Python .... es algo importante que debe comprobarse .... – avasal
No es que lo haya preguntado, pero si 'action' es' 'store_true'', el valor predeterminado ya es 'False' (y si acción es '' store_false'' el valor predeterminado es 'True'). Es bastante conveniente, aunque diferente de 'optparse' (donde el valor predeterminado es' Ninguno' en ambos casos). – torek