google / google/python-fire

Provide strict mode

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

描述

You already mentioned to plan to add a strict mode to python-fire in https://github.com/google/python-fire/issues/221 and https://github.com/google/python-fire/issues/222. I would highly appreciate this, so I am opening a new issue for this.

The problem with CLI facing function is that MyPy cannot help here. The type of the input arguments depends on how python-fire (or other CLI parsers) parse the arguments. Thus type hinting cannot spot errors. I for myself had strings were I expected a number (e.g. by passing in "02" instead of "2") or lists where I expected strings (erroneous trailing comma "foobar,"). There is no way to catch this except for explicitly checking for it.

I am currently experimenting with [[https://pypi.org/project/dpcontracts/|dpcontracts]] and https://github.com/RussBaz/enforce to prevent CLI induced errors. However, strict mode would make things much easier here.

One requirement for me would be that I can enable strict mode from within the script. Having to pass `--strict`` all the time would not prevent errors due to wrong usage.

I would be very glad to see this comming.

貢獻指南

開啟貢獻指南

研究方向

先閱讀相關 issue 221 和 222,然後檢查 Python Fire 如何解析 CLI 引數並從指令碼公開設定。定義嚴格模式應如何驗證引數型別、如何以程式設計方式啟用,以及應拒絕哪些不正確的輸入。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
python
領域
cli
Issue 類型
功能
難度
5/5
預估耗時
一週以上
活躍度
停滯
描述清晰度
需要釐清
新手友好度
25/100

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

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