google / google/python-fire

--help doesn't display correctly when using sub-groups;

Open
#322 1 comment 3 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
28.2k
Forks
1.5k
PR merge metrics
No merged PRs in 30d

Description

Hey, great job, love the tool !!!!

When creating command groups using classes, --help isn't correctly displaying.

**Consider this example**

```
import fire
class GroupBase:
def __init__(self, verbose: bool):
self.verbose = verbose
class Group1(GroupBase):
def command1(self):
"""This command seen by group 1 only"""
print(f"I am a group1 command with verbosity {self.verbose}")
class Group2(GroupBase):
def command2(self):
"""This command will be seen by group 2."""
print(f"I am a group2 command with verbosity {self.verbose}")
class Base:
def __init__(self, verbose: bool = False):
self.verbose = verbose
self.group1 = Group1(verbose)
self.group2 = Group2(verbose)
def common1(self):
"""This command will be seen at the base level."""
print(f"I am a common command with verbosity {self.verbose}")
def main():
fire.Fire(Base)
if __name__ == '__main__':
main()
```

**if I type `python main.py`, I get the correct help file; Note the existence of the two groups (group1, group2).** (though help for verbose isn't correct.)

```
NAME
main.py

SYNOPSIS
main.py - GROUP | COMMAND | VALUE

GROUPS
GROUP is one of the following:

group1

group2

COMMANDS
COMMAND is one of the following:

common1
This command will be seen at the base level.

VALUES
VALUE is one of the following:

verbose
```

**If, instead, I use --help `python main.py --help`**, groups are not shown.

```
NAME
main.py

SYNOPSIS
main.py

FLAGS
--verbose=VERBOSE
Type: bool
Default: False
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.