Using `--help` with `file.Fire()` usage incorrectly prints imports and variables
- 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
Evaluación
Este issue todavía no se ha evaluado.