python-fire
python-fire copied to clipboard
Type information should be visible in help screen
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.
Change added in pull request #251