google / google/python-fire

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

Đang mở
#220 2 bình luận 1 reaction 0 người được giao Xem trên GitHub
enhancement
Ngôn ngữ chính
Python
Star
28.2k
Fork
1.5k
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

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!

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.