google / google/python-fire

Display parameters of the parent class

Abierto
#295 1 comentario 4 reacciones 0 asignados Ver en GitHub
enhancement
Lenguaje dominante
Python
Estrellas
28.2k
Forks
1.5k
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

I would like to build objects that I can instantiate and call directly from a CLI. But I want to have a base class, that I can inherit from for other classes to add new arguments. Here is a minimal example:

```python3
import fire

class A:

def __init__(self, name):
self.name = name

def __str__(self):
return self.name

class B(A):

def __init__(self, number, **kwargs):
super().__init__(**kwargs)
self.number = number

def __call__(self):
print(f"{self.name} + {self.number}")

if __name__ == "__main__":
fire.Fire(B)
```

I can use this file to do `python3 myfile.py --name foo --number 10` and this prints me in my terminal `foo + 10`. But, I would like to display the help of the CLI in a terminal, and when I do that, only the parameters of class B are displayed, and not the one from class A:

```bash
$ python3 myfile.py
NAME
myfile.py

SYNOPSIS
myfile.py --number=NUMBER

ARGUMENTS
NUMBER

FLAGS
Flags are accepted.
```

Do you know if I can bring slight modifications to my program so that the help displayed looks like:

```bash
$ python3 myfile.py
NAME
myfile.py

SYNOPSIS
myfile.py --number=NUMBER --name=NAME

ARGUMENTS
NUMBER
NAME

FLAGS
Flags are accepted.
```

Thanks !

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.