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…

What is this?Python Fire is a library that automatically generates a command line interface (CLI) from any Python object, including functions, classes, modules, objects, dictionaries, lists, and tuples.
Is it a framework or a library?It is a lightweight Python library you import and call with fire.Fire() on a module, function, class, or object to expose it as a CLI.
How do I install and use it?Install with 'pip install fire' (or 'conda install fire -c conda-forge', or from source via 'python setup.py install'), then call fire.Fire() on any object in your script.
Do I need anything else installed besides Python?No extra dependencies are mentioned beyond Python itself; just pip, conda, or source install of the fire package.
Does it work on any Python object without extra setup?Yes, Fire is designed to work on absolutely any Python object — functions, classes, modules, objects, dicts, lists, tuples — with no special annotations needed.
Why is it called Fire?Because when you call Fire, it fires off (executes) your command.
What extra features does a generated CLI get for free?Generated CLIs automatically support --help, an interactive REPL mode via --interactive, a custom argument separator, shell completion scripts, and a --trace flag for debugging.
Is this an official Google project?No, the README explicitly states it is not an official Google product, despite being hosted under the google GitHub organization.
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