google / google/python-fire

Display parameters of the parent class

未关闭
#295 1 条评论 4 个 reaction 已指派 0 人 在 GitHub 查看
enhancement
主要语言
Python
星标
28.2k
派生
1.5k
PR 合并指标
30 天内没有已合并 PR

描述

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 !

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。