python-fire icon indicating copy to clipboard operation
python-fire copied to clipboard

Type information should be visible in help screen

Open ntjess opened this issue 4 years ago • 1 comments

Function signatures containing typing information should also show this in the help screen. For instance, I would expect the --help screen for def main(arg1: str, arg2=False): to indicate arg1 is a string type and arg2 is a bool type with default false.

I think the easiest way to make this happen is to:

  • Always use type information when available (even if it contradicts the default argument, since this is a developer issue -- not worth hashing out in fire).

However, a common programming paradigm is to write something like the following:

def main(arg1: List[str] = None):
  if arg1 is None:
    arg1 = ['hi', 'there']

You can probably follow Pycharm's flow, where they redefine arg1 as Optional[List[str]]. I think this is the only valid case where the provided default doesn't match the type hint.

  • Use the type of the default argument if no type information is given
  • Provide no type information if both the above are missing.

ntjess avatar Apr 01 '20 14:04 ntjess

Change added in pull request #251

MichaelCG8 avatar Apr 26 '20 18:04 MichaelCG8