Условный подпараметр на основе взаимоисключающего группового аргумента
Я работаю над расширением кода в credstash с моим кодом здесь:
https://github.com/willcrain1/credstash
Моя проблема в том, что я хотел бы добавить обязательный аргумент, но только если вы выберете -b в качестве одного из взаимоисключающих (вам нужно будет указать имя сегмента, а также имя 'credstash'), поэтому для s3 требуются 2 параметра, где Dynamodb - аргумент - t требует только одного (только имя таблицы).
Прямо сейчас в коде уже есть подпараперы для действий, которые вы хотите предпринять. Я новичок в python, настолько плохо знаком с argparse, поэтому любые советы по эффективному способу добавления условного параметра -c Credstash, но только при использовании -b, приветствуются.
usage: credstash [-h] [-r REGION] [-b BUCKET | -t TABLE] [-p PROFILE | -n ARN]
{delete,get,getall,list,put,setup} ...
1 ответ
Скопировано из моего комментария:
Попробуйте установить nargs=2
за -b
, Использование будет выглядеть как
[-b BUCKET BUCKET | -t TABLE]
Добавление metavar=('bucket', 'credstash')
(кортеж, не список) должен изменить использование на:
[-b bucket credstach | -t TABLE]