google / google/python-fire

First-character argument flag is undocumented and behaves strangely when colliding with default options

未關閉
#238 3 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
bug documentation
主要語言
Python
星號
28.2k
分支
1.5k
PR 合併指標
30 天內沒有已合併 PR

描述

Consider the function signature:

```
def main(headless=False):
# Construct GUI
if not headless:
widget.show()
app.exec()

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

After reading through the user guide for fire, I would expect `python myFile -h` to produce the help signature for this file. However, it runs the script with `headless = True`.

While in retrospect I suppose this makes sense, I would like some way of telling fire to disallow shortcut flags if they override user-expected options like --[i]nteractive, --[h]elp, etc. In those cases, the user can be forced to say `python myFile --headless` for the desired behavior.

Moreover, if my script looked like this:
```
def main(headless=False, hArg=True):
# Construct GUI
if not headless:
widget.show()
app.exec()

if __name__ == '__main__': fire.Fire(main)
```
and I ran the same line of code, fire would appropriately err out. This is also acceptable in my opinion.

More importantly, the first-character flag behavior should at the very least be documented. I read through https://github.com/google/python-fire/blob/master/docs/guide.md and couldn't find it there.

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。