Як створити CLI за допомогою Python Fire на Ubuntu 22.04

Вступна частина

Python Fire є потужним інструментом, який надає можливість легко генерувати інтерфейси командного рядка (CLI) для ваших програм на Python. Fire автоматично формує CLI на підставі вашого коду, роблячи процес розробки CLI інтуїтивно зрозумілим та простим.

Цей посібник надасть вам знання щодо створення CLI з використанням Python Fire на Ubuntu 22.04. Ми пройдемо етапи встановлення, ознайомимося з основними аспектами Fire та розглянемо приклади, які допоможуть вам швидко освоїти цю бібліотеку.

Переваги використання Python Fire:

  • Зручність застосування: Fire автоматично створює CLI на основі вашого коду, звільняючи вас від необхідності писати додатковий код для обробки аргументів.
  • Адаптивність: Fire дозволяє легко змінювати структуру вашого CLI, включаючи налаштування параметрів, опцій та підкоманд.
  • Інтуїтивно зрозумілий інтерфейс: Fire пропонує простий і зрозумілий спосіб взаємодії з вашим CLI.
  • Висока швидкість роботи: Fire працює швидко та ефективно, що робить його оптимальним рішенням для розробки CLI для будь-яких проєктів.

Процес встановлення Python Fire

Перед використанням Python Fire, його потрібно встановити. Це можна зробити, скориставшись менеджером пакетів pip:

pip install fire

Після встановлення Fire, ви можете перевірити встановлену версію, виконавши таку команду:

fire --version

Створення простого CLI

Для наочної демонстрації можливостей Fire, розробимо невеликий скрипт, який буде виводити певне повідомлення:

def вітання(ім'я):
  """Виводить вітання."""
  print(f"Привіт, {ім'я}!")

if __name__ == "__main__":
  fire.Fire(вітання)

Збережіть цей код у файлі під назвою вітання.py. Після запуску цього скрипта з командного рядка, наприклад, за допомогою команди python вітання.py Іван ви побачите результат Привіт, Іван!.

Застосування параметрів та опцій

Fire дає можливість додавати параметри та опції до ваших функцій. Наприклад, ми можемо змінити наш скрипт вітання.py, щоб він приймав параметр мова для вибору мови вітання:

def вітання(ім'я, мова="ua"):
  """Виводить вітання."""
  if мова == "ua":
    print(f"Привіт, {ім'я}!")
  elif мова == "en":
    print(f"Hello, {ім'я}!")
  else:
    print(f"Непідтримувана мова: {мова}")

if __name__ == "__main__":
  fire.Fire(вітання)

Тепер скрипт можна запускати з різними параметрами:

  • python вітання.py Іван: Виведе “Привіт, Іван!” (за замовчуванням українська мова).
  • python вітання.py Іван мова=en: Виведе “Hello, Іван!” (англійська мова).

Створення підкоманд

Для складніших CLI можна організувати підкоманди. Це дозволить структуризувати ваш CLI та зробити його більш зручним у використанні.

def вітання(ім'я, мова="ua"):
  """Виводить вітання."""
  if мова == "ua":
    print(f"Привіт, {ім'я}!")
  elif мова == "en":
    print(f"Hello, {ім'я}!")
  else:
    print(f"Непідтримувана мова: {мова}")

def прощання(ім'я):
  """Виводить прощання."""
  print(f"До побачення, {ім'я}!")

if __name__ == "__main__":
  fire.Fire({
    "вітання": вітання,
    "прощання": прощання
  })

Тепер ви можете використовувати дві підкоманди:

  • python вітання.py вітання Іван: Виведе привітання.
  • python вітання.py прощання Іван: Виведе прощання.

Застосування анотацій для документації

Fire має функцію автоматичного створення довідкової документації для вашого CLI. Для цього потрібно використовувати docstrings – анотації.

def вітання(ім'я: str, мова: str = "ua"):
  """Виводить вітання.

  Args:
    ім'я: Ім'я, до якого звертаємося.
    мова: Мова вітання (за замовчуванням українська).
  """
  if мова == "ua":
    print(f"Привіт, {ім'я}!")
  elif мова == "en":
    print(f"Hello, {ім'я}!")
  else:
    print(f"Непідтримувана мова: {мова}")

if __name__ == "__main__":
  fire.Fire(вітання)

Тепер, якщо запустити python вітання.py --help, Fire покаже вам довідку для команди вітання, включно з описом аргументів та їх типами.

Заключення

Python Fire є корисним та зручним інструментом для створення CLI. Він робить простішим процеси створення, конфігурації та документування CLI, що робить його ідеальним вибором як для новачків, так і для досвідчених розробників.

Fire дозволяє створювати функціональні та інтуїтивно зрозумілі CLI, не вимагаючи великої кількості коду. Ви можете швидко почати працювати з Fire та застосовувати його для різних задач, включаючи автоматизацію, управління даними та багато іншого.

Додаткові джерела:

FAQ:

  1. Чи можна застосовувати Python Fire для створення CLI для вже існуючих скриптів на Python?
    Так, Fire може використовувати будь-які існуючі функції Python.
  2. Чи можливо додати кольоровий вивід до CLI, що створений за допомогою Fire?
    Так, можна застосовувати бібліотеки, такі як colorama або termcolor, для додавання кольору до виводу.
  3. Як можна налаштувати вигляд CLI, згенерованого Fire?
    Fire пропонує певний рівень налаштувань за допомогою параметрів name, description та help у функції fire.Fire().
  4. Які типи аргументів підтримує Fire?
    Fire підтримує різні типи аргументів, включаючи рядки, числа, списки, словники та інше.
  5. Як можна використовувати Fire для створення CLI, що підтримує кілька мов?
    Ви можете використовувати умовну логіку у ваших функціях для вибору мови виводу або привітання.
  6. Чи може Fire автоматично генерувати довідкову документацію для моїх CLI?
    Так, Fire автоматично генерує довідкову документацію, використовуючи docstrings.
  7. Як використовувати Fire для створення CLI з підтримкою підкоманд?
    Ви можете визначити підкоманди як словник, застосовуючи функцію fire.Fire().
  8. Чи можна застосовувати Fire для створення CLI для веб-проєктів?
    Fire може використовуватися для створення CLI для веб-проєктів, але для цього може знадобитися створення окремого CLI-сервера.
  9. Які існують альтернативи Python Fire?
    Інші популярні бібліотеки для створення CLI включають Click, typer та argparse.
  10. Де можна знайти приклади використання Python Fire?
    Приклади застосування Python Fire можна знайти в документації та на Github.

Ключові слова: Python, Fire, CLI, Ubuntu, командний рядок, інтерфейс, розробка, автоматизація, скрипт, привітання, довідка, підкоманди, параметри, опції, docstring, документація, веб-проєкти, альтернативи, приклади.