google / google/python-fire

Optional type args are mistyped in help

未关闭
#508 5 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
bug
主要语言
Python
星标
28.2k
派生
1.5k
PR 合并指标
30 天内没有已合并 PR

描述

Type annotations that use `typing.Optional` are incorrectly documented when showing help.

## Example 1

```python
from typing import Optional

import fire

def main(arg: Optional[str] = 'something'):
"""Do something with arg."""

if __name__ == '__main__':
fire.Fire(main)
```

The corresponding help output is:

```
INFO: Showing help with the command 'firetest.py -- --help'.

NAME
firetest.py - Do something with arg.

SYNOPSIS
firetest.py

DESCRIPTION
Do something with arg.

FLAGS
-a, --arg=ARG
Type: Optional
Default: 'something'
```

**Here, `Type: Optional` is totally incorrect. It should be `Optional[str]`.** My use of `str` is just an example and it can be anything.

## Example 2

```python
from typing import Optional

import fire

def main(arg: Optional[str] = None):
"""Do something with arg."""

if __name__ == '__main__':
fire.Fire(main)
```

The corresponding help output is:

```
INFO: Showing help with the command 'firetest.py -- --help'.

NAME
firetest.py - Do something with arg.

SYNOPSIS
firetest.py

DESCRIPTION
Do something with arg.

FLAGS
-a, --arg=ARG
Type: Optional[Optional]
Default: None
```

**Here, `Type: Optional[Optional]` is even more incorrect. It should be `Optional[str]`.** My use of `str` is just an example and it can be anything.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。