Human friendly CLI builder.
pip install manage.py
cat manage.py
:
from manage import Manager manager = Manager() @manager.command def echo(text, capitalyze=False): """print the given <name>""" if capitalyze: text = text.upper() return text
manage --help
:
usage: manage [<namespace>.]<command> [<args>] positional arguments: command the command to run optional arguments: -h, --help show this help message and exit available commands: echo print the given <name>
manage echo --help
:
$ manage echo --help usage: manage [-h] [--capitalyze] text print the given <name> positional arguments: text no description optional arguments: -h, --help show this help message and exit --capitalyze no description
Managers can be used together by merging them:
from third_party import manager my_app_manager.merge(manager) # Merge within a new namespace: my_app_manager.merge(manager, namespace='third_party')
Commands can be organized within namespaces:
@manager.command(namespace='config') def set(key, value): # ...
Argument definition can be overridden:
@manager.arg('first_arg', help='this is help for first arg') @manager.command def my_command(first_arg): # ...