$ toolbox
usage: toolbox [-h] {subcommand} ...
toolbox: error: the following arguments are required: {subcommand}
$ python -m mod
usage: python -m mod [-h] {subcommand} ...
python -m mod: error: the following arguments are required: {subcommand}
$ toolbox -h
usage: toolbox [-h] {subcommand} ...
A toolbox collecting features
positional arguments:
{subcommand}
tool_1 A feature helping to do something
optional arguments:
-h, --help show this help message and exit
$ python -m mod -h
usage: python -m mod [-h] {subcommand} ...
A toolbox collecting features
positional arguments:
{subcommand}
tool_1 A feature helping to do something
optional arguments:
-h, --help show this help message and exit
$ toolbox tool_1 -h
usage: toolbox tool_1 [-h] arg
A feature helping to do something
positional arguments:
arg arg for the feature
optional arguments:
-h, --help show this help message and exit
$ python -m mod tool_1 -h
usage: python -m mod tool_1 [-h] arg
A feature helping to do something
positional arguments:
arg arg for the feature
optional arguments:
-h, --help show this help message and exit
$ python -m mod.feature -h
usage: python -m mod.feature [-h] arg
A feature helping to do something
positional arguments:
arg arg for the feature
optional arguments:
-h, --help show this help message and exit
$ toolbox tool_1 arg
start running with args: Namespace(subcommand='tool_1', arg='arg')
$ python -m mod tool_1 arg
start running with args: Namespace(subcommand='tool_1', arg='arg')
$ python -m mod.feature arg
start running with args: Namespace(arg='arg')