In version 0.3.1 when user attempts to raise error in the __init__ method the effective error that gets printed is about missing self argument. Minimal example:
import fire
from fire.core import FireError
class Calc:
def __init__(self):
raise FireError('foo')
def add(self):
pass
if __name__ == "__main__":
fire.Fire(Calc)
python calc.py add
ERROR: The function received no value for the required argument: self
When executed interactively, the error is correct:
>>>import calc; import fire
>>>fire.Fire(calc.Calc)
ERROR: foo