Я пытаюсь разработать интерфейс командной строки для инструмента, который пишу.Я перебираю интерфейс, похожий на инструмент fab
от Fabric, и такой, как инструмент командной строки svn.
fab
Сообщение об использовании:
Usage: fab [options] <command>[:arg1,arg2=val2,host=foo,hosts='h1;h2',...] ...
svn
'Сообщение об использовании:
usage: svn <subcommand> [options] [args]
Обратите внимание, что svn
также поддерживает две опции --version
и --quiet
(по крайней мере ту, которую я использую).
Мои вопросы:
- Является ли конструкция fab cli (с несколькими командами, каждая из которых может иметь аргументы) общей для инструментов командной строки?Мне кажется, что инструмент svn cli более часто используется (но не уверен).
- Было бы просто реализовать fab's cli, используя plac (или argparse)?
- ЕслиЯ решил пойти с SVN Cli, это может быть реализовано с помощью Plac?Мне нравится plac, хотя я не смог понять, как добавить опции в инструмент напрямую, вместо подкоманд.Это, безусловно, может быть реализовано с использованием argparse .
PS: единственная причина, по которой мне нравится fab, заключается в том, что можно выполнить несколько задач за один шаг, однако простота реализации мояглавная проблема