google / google/python-fire

[feature request] support multiple dialects for boolean parameters

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

描述

Consider the following code:

```python
import fire

def a(flag: bool):
if flag:
print("hooray!")
else:
print("Wanna see a flag :(")

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

Now, the following options work as expected (print 'hooray!'):
`python a.py --flag`
`python a.py --flag=True`
`python a.py --flag=true`

However, in order to disable flag explicity the only working option is:
`python a.py --flag=False`
and the seemingly rational version
`python a.py --flag=false`
result in 'hooray' being printed as flag is parsed as a string 'false' which then casts to boolean True.

My request:
support 0, 'false' and 'no' as valid boolean arguments that all cast to False. Make this behavior optional. One way to do this is by adding a custom type to lable such flags with.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

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