Python Fire v0.2.0 Release Notes

Release Date: 2019-07-26 // over 2 years ago
  • Python Fire v0.2.0

    If you're new to Python Fire:

    ๐Ÿฑ 1. Welcome! ๐ŸŽ‰

    1. 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 -h or command --help will give help, provided there isn't an argument named help in 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 -flag instead of --flag if 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 -a.
    • ๐Ÿ‘ Fish completion support