python-fire README

The project's README from github.com/google/python-fire. As one markdown file: README.md.

Python Fire PyPI

Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.

Installation

To install Python Fire with pip, run: pip install fire

To install Python Fire with conda, run: conda install fire -c conda-forge

To install Python Fire from source, first clone the repository and then run: python setup.py install

Basic Usage

You can call Fire on any Python object:
functions, classes, modules, objects, dictionaries, lists, tuples, etc. They all work!

Here's an example of calling Fire on a function.

import fire

def hello(name="World"):
  return "Hello %s!" % name

if __name__ == '__main__':
  fire.Fire(hello)

Then, from the command line, you can run:

python hello.py  # Hello World!
python hello.py --name=David  # Hello David!
python hello.py --help  # Shows usage information.

Here's an example of calling Fire on a class.

import fire

class Calculator(object):
  """A simple calculator class."""

  def double(self, number):
    return 2 * number

if __name__ == '__main__':
  fire.Fire(Calculator)

Then, from the command line, you can run:

python calculator.py double 10  # 20
python calculator.py double --number=15  # 30

To learn how Fire behaves on functions, objects, dicts, lists, etc, and to learn about Fire's other features, see the Using a Fire CLI page.

For additional examples, see The Python Fire Guide.

Why is it called Fire?

When you call Fire, it fires off (executes) your command.

Where can I learn more?

Please see The Python Fire Guide.

Reference

Setup Command Notes
install pip install fire
Creating a CLI Command Notes
import import fire
Call fire.Fire() Turns the current module into a Fire CLI.
Call fire.Fire(component) Turns component into a Fire CLI.
Using a CLI Command Notes
Help command --help or command -- --help
REPL command -- --interactive Enters interactive mode.
Separator command -- --separator=X Sets the separator to X. The default separator is -.
Completion command -- --completion [shell] Generates a completion script for the CLI.
Trace command -- --trace Gets a Fire trace for the command.
Verbose command -- --verbose

Note that these flags are separated from the Fire command by an isolated --.

License

Licensed under the Apache 2.0 License.

Disclaimer

This is not an official Google product.

python-fire (google/python-fire)

Searching Database…

Для чего это нужно?Python Fire — библиотека, которая автоматически создаёт интерфейс командной строки (CLI) из любого объекта Python: функций, классов, модулей, объектов, словарей, списков и кортежей.
Это фреймворк или библиотека?Это лёгкая библиотека Python: вы импортируете её и вызываете fire.Fire() для модуля, функции, класса или объекта, чтобы открыть его как CLI.
Как установить и начать пользоваться?Установите командой 'pip install fire' (или 'conda install fire -c conda-forge', или из исходников через 'python setup.py install'), затем вызовите fire.Fire() для любого объекта в вашем скрипте.
Нужно ли устанавливать что-то помимо Python?Никаких дополнительных зависимостей не указано, кроме самого Python; достаточно установить пакет fire через pip, conda или из исходников.
Работает ли это с любым объектом Python без дополнительной настройки?Да, Fire задуман для работы с абсолютно любым объектом Python — функциями, классами, модулями, объектами, словарями, списками, кортежами — без каких-либо специальных аннотаций.
Почему это называется Fire?Потому что когда вы вызываете Fire, он запускает (выполняет) вашу команду.
Какие дополнительные возможности получает созданный CLI без лишних усилий?Созданные CLI автоматически поддерживают --help, интерактивный режим REPL через --interactive, пользовательский разделитель аргументов, скрипты автодополнения для оболочки и флаг --trace для отладки.
Это официальный проект Google?Нет, в README прямо указано, что это не официальный продукт Google, хотя он размещён в организации google на GitHub.
What are similar projects?hexyl, omarchy-apple-dev, aws-cli, zx, yapf, aichat, typst, navi
Creator
google
Size
6.1 MB
Stars
28.2K
Age
9y
Commits · 90 Days