Como usar subpars argparse corretamente?

Eu tenho procurado através de todos os exemplos mais abaixo aqui e em geral, mas não consigo descobrir essa coisa aparentemente simples.

Eu tenho dois tipos de var dos quais um tem restrições, então pensei que o subparser era o caminho a percorrer. por exemplo. -t permite "A" ou "B". Se o usuário passar "A", é necessário especificar também se é "a1" ou "a2". Se eles passam apenas "B", então nada.

Posso fazer isso e fazer com que argparse me retorne que tipo de "A" foi passado ou se foi apenas "B"?

O abaixo parece funcionar, mas por algum motivo quebra ao passar qualquer coisa após o subparse.

por exemplo. de um terminal linux

>> python test01.py -t A a1 -v 61

erros com ...

usage: test01.py a1 [-h]
test01.py a1: error: unrecognized arguments: -v

Espero que isso faça sentido.

O código:

import argparse

parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(help='types of A')

parser.add_argument("-t",
                    choices = ["A", "B"],
                    dest = "type",
                    required=True,
                    action='store',
                    help="Some help blah blah")

cam_parser = subparsers.add_parser('a1', help='Default')
cam_parser.set_defaults(which='a1')

cam_parser = subparsers.add_parser('a2', help='parse this instead of default')
cam_parser.set_defaults(which='a2')


parser.add_argument("-v",
                    nargs = '+',
                    required=True,
                    dest = "version",
                    type=int,
                    action='store',
                    help="some version help blah blah")   

argument = parser.parse_args()

print argument.type
print argument.version

questionAnswers(1)

yourAnswerToTheQuestion