Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/google/python-fire
Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.
https://github.com/google/python-fire
cli python
Last synced: 6 days ago
JSON representation
Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.
- Host: GitHub
- URL: https://github.com/google/python-fire
- Owner: google
- License: other
- Created: 2017-02-21T21:35:07.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-10-01T14:34:28.000Z (about 1 month ago)
- Last Synced: 2024-10-14T20:24:28.462Z (20 days ago)
- Topics: cli, python
- Language: Python
- Homepage:
- Size: 6.03 MB
- Stars: 26,963
- Watchers: 369
- Forks: 1,440
- Open Issues: 150
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-cli-frameworks - Python-Fire
- best-of-python - GitHub - 44% open · ⏱️ 05.04.2024): (CLI Development)
- awesome_mit_open_source - python-fire - Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object. ([Apache License 2.0](https://github.com/google/python-fire/blob/master/LICENSE))~~ (Software / Command Line Tools)
- my-awesome-github-stars - google/python-fire - Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object. (Python)
- awesome-python-resources - GitHub - 38% open · ⏱️ 16.04.2022): (命令行工具)
- awesome-rainmana - google/python-fire - Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object. (Python)
- awesome-repositories - google/python-fire - Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object. (Python)
- awesome-starred - python-fire - Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object. (Python)
- awesome-starts - google/python-fire - Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object. (Python)
- best-of-awesome - python-fire
- awesome-cv - python-fire
- Fuchsia-Guide - Python Fire
- Shopify-Guide - Python Fire
- awesome-list - Python Fire - A library for automatically generating command line interfaces (CLIs) from absolutely any Python object. (Desktop App Development / Python Toolkit)
- CUDA-Guide - Python Fire
- NLP-Guide - Python Fire
- Bioinformatics-Guide - Python Fire
- Firmware-Guide - Python Fire
- CoreML-Guide - Python Fire
- Robotics-Guide - Python Fire
- Python-Guide - Python Fire
- Python-developer-roadmap - google/python-fire
- awesome-discoveries - Python Fire - a library for automatically generating CLIs from absolutely any Python object _(`Python`)_ (Python Hacks)
- awesome-python-again -
- starred-awesome - python-fire - Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object. (Python)
- StarryDivineSky - google/python-fire
- jimsghstars - google/python-fire - Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object. (Python)
- awesomeLibrary - python-fire - Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object. (语言资源库 / python)
README
# Python Fire [![PyPI](https://img.shields.io/pypi/pyversions/fire.svg?style=plastic)](https://github.com/google/python-fire)
_Python Fire is a library for automatically generating command line interfaces
(CLIs) from absolutely any Python object._- Python Fire is a simple way to create a CLI in Python.
[[1]](docs/benefits.md#simple-cli)
- Python Fire is a helpful tool for developing and debugging Python code.
[[2]](docs/benefits.md#debugging)
- Python Fire helps with exploring existing code or turning other people's
code into a CLI. [[3]](docs/benefits.md#exploring)
- Python Fire makes transitioning between Bash and Python easier.
[[4]](docs/benefits.md#bash)
- Python Fire makes using a Python REPL easier by setting up the REPL with the
modules and variables you'll need already imported and created.
[[5]](docs/benefits.md#repl)## 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.
```python
import firedef hello(name="World"):
return "Hello %s!" % nameif __name__ == '__main__':
fire.Fire(hello)
```Then, from the command line, you can run:
```bash
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.
```python
import fireclass Calculator(object):
"""A simple calculator class."""def double(self, number):
return 2 * numberif __name__ == '__main__':
fire.Fire(Calculator)
```Then, from the command line, you can run:
```bash
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](docs/using-cli.md).For additional examples, see [The Python Fire Guide](docs/guide.md).
## 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](docs/guide.md).
## 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](docs/using-cli.md#help-flag) | `command --help` or `command -- --help` |
| [REPL](docs/using-cli.md#interactive-flag) | `command -- --interactive` | Enters interactive mode.
| [Separator](docs/using-cli.md#separator-flag) | `command -- --separator=X` | Sets the separator to `X`. The default separator is `-`.
| [Completion](docs/using-cli.md#completion-flag) | `command -- --completion [shell]` | Generates a completion script for the CLI.
| [Trace](docs/using-cli.md#trace-flag) | `command -- --trace` | Gets a Fire trace for the command.
| [Verbose](docs/using-cli.md#verbose-flag) | `command -- --verbose` |_Note that these flags are separated from the Fire command by an isolated `--`._
## License
Licensed under the
[Apache 2.0](https://github.com/google/python-fire/blob/master/LICENSE) License.## Disclaimer
This is not an official Google product.