google / google/python-fire

Using `--help` with `file.Fire()` usage incorrectly prints imports and variables

Abierto
#220 2 comentarios 1 reacción 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

When running `--help` against a program like the following, I expect a single `my_func` command but instead I get `my_func`, `fire`, `logging`, `GREETING_MSG`, and `logger`. I would like to be able to ignore python module imports and local variables by default.

```python
import fire
import logging

GREETING_MSG = "Hello"

logger = logging.get_logger()

def _my_internal_hidden_func():
# This is correctly ignored
pass

def my_func():
logger.info(f"{GREETING_MSG}, world")

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

For the simple example above, the obvious resolution is to use a different method of invoking `Fire()` but for my actual use case, there are over 40 functions in the file I want to expose. For internal functions, I can hide these simply be preceeding the name with underscore, but I don't see any similar way of suppressing the imports and variable definitions.

I'd propose resolving this in one of two ways:
(1) Add some kind of heuristic to the default fire.Fire() invocation to ignore imports and variables
(2) Add some type of flags and/or lambda function support so the code consuming Fire can customize this logic without having to create and directly pass a custom dictionary of all functions.

Is anything like this already in progress, and/or would something along these lines be accepted as a pull request?

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.