CLI python. click vs fire

У python есть две известные библиотеки: click, fire. Какие есть плюсы и минусы у одной и у второй?


Ответы (2 шт):

Автор решения: Liquid

У fire функционала поменьше, чем у click, да и с API иногда проблемы возникают. Подробнее здесь: https://habr.com/ru/post/466999/

→ Ссылка
Автор решения: hedgehogues

На хабре есть статья с обзором

Краткое резюме

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 на мой взгляд.

Другие

С другими фреймворками Вы можете ознакомиться в статье

→ Ссылка