google / python-fire

Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.
Other
26.98k stars 1.44k forks source link

Misaligned help text with positional arguments and numpydoc #439

Open rezahousseini opened 1 year ago

rezahousseini commented 1 year ago

When using Numpydoc docstring style with multiple positional arguments the help text gets misaligned

import fire

def run(executable, argument):
    """Run.

    Parameters
    ----------
    executable :
            Executable to run
    argument :
            Positional argument to the executable

    """
    print("hello")

if __name__ == "__main__":
    fire.Fire(run)

When run with python test.py --help this code produces

INFO: Showing help with the command 'test.py -- --help'.

NAME
    test.py - Run.

SYNOPSIS
    test.py EXECUTABLE ARGUMENT

DESCRIPTION
    Run.

POSITIONAL ARGUMENTS
    EXECUTABLE
        Executable to run

        Positional argument to the executable
    ARGUMENT

NOTES
    You can also use flags syntax for POSITIONAL ARGUMENTS

where the help text to argument gets added to executable.