/ python-fire Public
dbieber released this
26 Jul 17:15
· 102 commits to master since this release
Python Fire v0.2.0
If you're new to Python Fire:
- Fire automatically generates command line interfaces from any Python object you give it.
e.g. You can call Fire on a function, as in this example (but you can also call Fire on anything else: classes, objects, dicts, etc. -- they all work.)
def hello(name="World"): return "Hello %s!" % name fire.Fire(hello)
hello.py --name=David # Hello David!
pip install fire to get started.
Improvements in v0.2.0
- Help and usage screens
Help screens now have a man-page appearance and are shown with less-style pagination. Usage screens are shown when a user-error is encountered. The help and usage screens are considerably cleaner than the default output in previous versions of Fire.
- Custom serialization
If you define a custom
__str__method on an object, that will be used to serialize the object when it is the final result of a Fire command. This means better support for numpy arrays, and better support for custom types.
- Docstring parsing
Notably, docstrings are parsed in order to determine the descriptions to use for arguments in the help screens. We largely support (but not fully) Google, numpy, and RST style docstrings. These are the three most common styles of docstring used in Python code.
- Access --help naturally
You no longer need to separate --help from your command with an extra --. Simply running
command --helpwill give help, provided there isn't an argument named
helpin your component.
- NamedTuples can be indexed both by their field names and by their indexes.
- Callable objects can both be called, and their members can be accessed.
You must use flag syntax to call a callable object; you cannot pass their arguments positionally.
- Single-hyphen flags are supported
You can now specify
--flagif preferred. Both work.
- Short-flags are permitted when their use is unambiguous
E.g. if your function has argument
alpha, then you can specify its value with
- Fish completion support