Skip to content

Raising FireError in __init__ is not handled properly #250

@mnowotnik

Description

@mnowotnik

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions