Subcomandos argparse con espacios de nombres anidados

Haceargparse ¿Proporciona facilidades integradas para que analice grupos o analizadores en sus propios espacios de nombres? Siento que debo estar perdiendo una opción en algún lugar.

Editar: Es probable que este ejemplo no sea exactamente lo que debería hacer para estructurar el analizador para cumplir mi objetivo, pero fue lo que resolví hasta ahora. Mi objetivo específico es poder dar a los subparsers grupos de opciones que se analizan en campos de espacio de nombres. La idea que tuve con el padre fue simplemente usar opciones comunes para este mismo propósito.

Ejemplo:

import argparse

# Main parser
main_parser = argparse.ArgumentParser()
main_parser.add_argument("-common")

# filter parser
filter_parser = argparse.ArgumentParser(add_help=False)
filter_parser.add_argument("-filter1")
filter_parser.add_argument("-filter2")

# sub commands
subparsers = main_parser.add_subparsers(help='sub-command help')

parser_a = subparsers.add_parser('command_a', help="command_a help", parents=[filter_parser])
parser_a.add_argument("-foo")
parser_a.add_argument("-bar")

parser_b = subparsers.add_parser('command_b', help="command_b help", parents=[filter_parser])
parser_b.add_argument("-biz")
parser_b.add_argument("-baz")

# parse
namespace = main_parser.parse_args()
print namespace

Esto es lo que obtengo, obviamente:

$ python test.py command_a -foo bar -filter1 val
Namespace(bar=None, common=None, filter1='val', filter2=None, foo='bar')

Pero esto es lo que realmente busco:

Namespace(bar=None, common=None, foo='bar', 
          filter=Namespace(filter1='val', filter2=None))

Y luego, incluso más grupos de opciones ya analizadas en espacios de nombres:

Namespace(common=None, 
          foo='bar', bar=None,  
          filter=Namespace(filter1='val', filter2=None),
          anotherGroup=Namespace(bazers='val'),
          anotherGroup2=Namespace(fooers='val'),
          )

He encontrado unpregunta relacionada aquí pero implica un análisis personalizado y parece cubrir solo una circunstancia realmente específica.

¿Hay una opción en algún lugar para decirle a argparse que analice ciertos grupos en campos de espacio de nombre?

Respuestas a la pregunta(6)

Su respuesta a la pregunta