Open JimBiardClimateAI opened 1 year ago
@JimBiardClimateAI Nice workaround with __str()__
!
Workaround to make --help
work too: instantiate the class yourself and pass the object to Fire:
Fire(Foo())
fire_bug --help
now works (as well as chaining):
NAME
fire_bug.py
SYNOPSIS
fire_bug.py COMMAND
COMMANDS
COMMAND is one of the following:
act
Act for some number of minutes.
rest
Rest for a while.
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 codeIf I run this as
python fire_bug.py
, I get the help output I expect, which isIf I run this as
python fire_bug.py act 1
, I unexpectedly get the help outputfollowed by the output I expect, which is
If run this as
python fire_bug.py act 1 rest 9
, I again unexpectedly get the help outputfollowed by the output I expect, which is
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 runpython fire_bug.py
.As a general observation, running
python fire_bug.py --help
does not produce useful output. The output isThe 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.