CLI python. click vs fire
Ответы (2 шт):
У fire функционала поменьше, чем у click, да и с API иногда проблемы возникают. Подробнее здесь: https://habr.com/ru/post/466999/
На хабре есть статья с обзором
Краткое резюме
Fire
Если вы стараетесь писать код по минимуму — начните с Fire.
Тоже недавно выбирали CLI. Остановились на Click. Смотрели на Fire. Он подойдет когда написал приложение, а тебе, вдруг, сказали сделать для него CLI по быстроляну :) Что касается лично моего опыта, то мне очень понравился fire, так как он прост и имеет низкий порог вхождения в отличие, например, от click. Help неплох, но и не что-то из ряда вон выходящее. Я бы охарактеризовал fire как argparse с человеческим лицом
Click
Относительно fire -- монстр. Но для сложных интерфейсов незаменим. Я с ним не работал. Комментарий из статьи, который может быть полезен:
Приходилось плотно работать с click, на память вот какие есть минусы:
- нельзя задать аналог nargs='+' для опциональных аргументов. Только позиционные аргументы можно передавать в неопределённом количестве. В какой-то степени это исключает ambiguous поведение при смешивании команд и опций, но на самом деле всё решаемо и это недоработка, которую не будут исправлять. https://github.com/pallets/click/issues/484
- проблема с chain, а именно: нельзя использовать одновременно позиционные и опциональные аргументы в chain-командах. Это неисправимая проблема из-за которой хотят вообще убрать поддержку chain (что сломает много программ, завязанных на эту функциональность) https://github.com/pallets/click/issues/1269 встроенный help криво отображает позиционные аргументы (об этом есть в документации)
- встроенный help никак явно не отображает, что опциональный аргумент является multiple, если он таковой (multiple=True)
- Нет поддержки mutually exclusive групп и не будет: https://github.com/pallets/click/issues/257
Это то, что вспомнил, есть ещё разные подводные камни, на которые натыкаешься если используешь click на полную мощность. В остальном это лучшая библиотека для создания cli на мой взгляд.
Другие
С другими фреймворками Вы можете ознакомиться в статье