Итак, я пытаюсь придумать стратегию, используя библиотеку argparse.
Вот как я хочу взаимодействовать с моей программой:
$ program list [<number>]
$ program check <name>
$ program watch <name> [<quality>]
Прямо сейчас у меня есть парсер аргументов, подобный следующему:
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument('list')
group.add_argument('check')
group.add_argument('watch')
Но как я могу добавить необязательный аргумент, скажем, целое число, к существующему аргументу?
Это означает, что пользователь может вызвать команду списка следующими способами:
program list
Где действие списка будет вызываться со значением по умолчанию или:
program list 10
Где действие списка будет вызываться с аргументом 10.
Я видел параметр подкоманды в документации, но столкнулся с проблемой, когда у меня был бы вспомогательный парсер для аргументов списка, но тогда мне нужно было бы добавить флаг, например -n, а затем указать номер. Возможно, это лучший способ сделать это? Но мне нравится идея просто указать номер, если вы хотите, или опустить его, если вы этого не сделаете.
Я пытаюсь добиться хорошей практики? Возможно ли это с argparse?