Raising FireError in __init__ is not handled properly
- Linguagem predominante
- Python
- Estrelas
- 28.2k
- Forks
- 1.5k
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
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
```
Guia de contribuição
Direção de pesquisa
Reproduza o problema com o exemplo Calc fornecido e compare as invocações por script e interativas de fire.Fire(Calc). Comece rastreando como FireError de __init__ é tratado em comparação com o erro de self ausente, usando fire.core.FireError como ponto de entrada. A tarefa estará concluída quando o script relatar “ERROR: foo” em vez do erro exigido do argumento self.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- python
- Domínio
- cli
- Tipo de issue
- Bug
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 45/100