Usage message is displayed when not desired.
還沒有人認領這個 Issue。
評估
研究方向
使用提供的 fire_bug.py 範例重現此行為,包括鏈式命令和 --help。首先追蹤 Python Fire 的命令執行與說明呈現路徑;完成的條件是有效命令不再未經請求就輸出說明,而無命令呼叫和帶有 --help 的呼叫能提供有用的命令資訊。
由索引模型根據 Issue 內容生成。
描述
When I build a class with methods that can be chained (they return self), I find that the "commands" help message is written out even when I provide commands with proper arguments and the commands are executed. Here is the code
from __future__ import annotations
from fire import Fire
class Foo:
def act(self, x: int) -> Foo:
"""
Act for some number of minutes.
Parameters
----------
x : int
The number of minutes to act.
"""
print("act", x, "minute(s)")
return self
def rest(self, x: int, y: str = "hours") -> Foo:
"""
Rest for a while.
Parameters
----------
x : int
The time to rest.
y : str
The units of x. The default is hours.
"""
print("rest", x, y)
return self
if __name__ == "__main__":
Fire(Foo)
If I run this as python fire_bug.py, I get the help output I expect, which is
NAME
fire_bug.py act 1
SYNOPSIS
fire_bug.py act 1 COMMAND
COMMANDS
COMMAND is one of the following:
act
Act for some number of minutes.
rest
Rest for a while.
If I run this as python fire_bug.py act 1, I unexpectedly get the help output
NAME
fire_bug.py act 1
SYNOPSIS
fire_bug.py act 1 COMMAND
COMMANDS
COMMAND is one of the following:
act
Act for some number of minutes.
rest
Rest for a while.
followed by the output I expect, which is
act 1 minute(s)
If run this as python fire_bug.py act 1 rest 9, I again unexpectedly get the help output
NAME
fire_bug.py act 1 rest 9
SYNOPSIS
fire_bug.py act 1 rest 9 - COMMAND
COMMANDS
COMMAND is one of the following:
act
Act for some number of minutes.
rest
Rest for a while.
followed by the output I expect, which is
act 1 minute(s)
rest 9 hours
If I add a __str__ method to the class that returns "\b", I don't get the unexpected messages, but I also don't get a help message if I run python fire_bug.py.
As a general observation, running python fire_bug.py --help does not produce useful output. The output is
NAME
fire_bug.py
SYNOPSIS
fire_bug.py -
The output I would expect would be the output I get when I run python fire_bug.py. I am aware that if I have an __init__ method with arguments that the information about those arguments will be displayed, but separating the two sets of information in this way is quite counterintuitive. Both sets of information should be provided when running with no command and when running with only a --help argument.
- 主要語言
- Python
- 星號
- 28.2k
- 分支
- 1.5k
- PR 合併指標
- 30 天內沒有已合併 PR
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
google/python-fire 的其他 Issue
-
難度 2/5 1-3 小時 新手友好度 85/100
google/python-fire#693 ·
-
Release 0.7.2? 未關閉
難度 3/5 1-2 天 新手友好度 38/100
google/python-fire#698 ·
-
難度 3/5 1-2 天 新手友好度 58/100
google/python-fire#672 · 5 則留言 ·
-
難度 4/5 3-5 天 新手友好度 45/100
google/python-fire#665 · 2 則留言 ·
-
難度 4/5 3-5 天 新手友好度 55/100
google/python-fire#659 · 1 則留言 ·
查看 google/python-fire 的全部 Issue
相似的 Issue
-
bug
難度 2/5 1-3 小時 新手友好度 75/100
xinnan-tech/xiaozhi-fde-talk#263 ·
-
rules
難度 1/5 1 小時以內 新手友好度 90/100
-
難度 2/5 1-3 小時 新手友好度 70/100
huggingface/Repo2RLEnv#163 · 1 則留言 ·
-
難度 1/5 1 小時以內 新手友好度 95/100
huggingface/sentence-transformers#4074 ·
-
comp/dashboard invalid P3
難度 2/5 1-3 小時 新手友好度 70/100
NousResearch/hermes-agent#121143 ·