跳转到主要内容

人性化的CLI构建器

项目描述

人性化的CLI构建器。

https://drone.io/github.com/Birdback/manage.py/status.png

安装

pip安装manage.py

快速入门

cat manage.py

from manager import Manager

manager = Manager()

@manager.command
def echo(text, capitalyze=False):
    """print the given <name>"""
    if capitalyze:
        text = text.upper()
    return text

if __name__ == '__main__':
    manager.main()

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

管理器

管理器可以通过合并来一起使用

from third_party import manager

my_app_manager.merge(manager)

# Merge within a new namespace:
my_app_manager.merge(manager, namespace='third_party')

命令

命令可以在命名空间内组织

@manager.command(namespace='config')
def set(key, value):
    # ...

参数

目前,该框架将假设具有默认值的参数是键值参数(--arg value),而必需参数是位置参数。

换句话说,这个定义

@manager.command
def create(user):
    pass

将期望以下类型的调用

$ manage create foobar

usercreate() 中将取 'foobar' 的值。

另一方面,这是

@manager.command
def create(user=''):
    pass

将期望以下类型的调用

$ manage create --user foobar

缺点很明显,目前无法有必需的非位置参数。

参数定义可以被覆盖

@manager.arg('first_arg', help='this is help for first arg')
@manager.command
def my_command(first_arg):
    # ...

参数可以被提示

@manager.prompt('password', hidden=True, confirm=True)
@manager.command
def connect(username, password):
    # ...

环境

环境变量可以从 .env 文件中以 key=value 对的形式获取。

可以使用 Manager.env 装饰器强制使用环境变量

@manager.env('MY_ENV_VAR')
@manager.command
def my_command():
    return os.environ['MY_ENV_VAR']

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源代码分发

manage.py-0.2.10.tar.gz (9.7 kB 查看哈希值)

上传时间 源代码

支持者