概述
CMDTree
因为之前做一个需求,遇到需要大量使用子命令( sub-command )和命令行自动生成的功能,现有的库都不能良好的满足需求,所以自己写了这个库。
如果有以下业务场景,你大概是这个库的目标用户:)
需要分类子命令到不同命令组内
希望click装饰器不会影响原有的函数调用
不希望直接使用 argparse 的低层 API ( what a pain!)
希望能根据描述生成CRUD REST-API 的命令行调用
特性
为子命令和命令行自动生成而设计
使用类click的装饰器写命令行
友好的低层 API ,可以用["docker", "run"]这样的方式来添加命令
仅依赖six
支持 Python3
支持类 click 的 argument type 且可拓展
装饰器对函数调用本身没有副作用
请轻拍:)
CMDTree
安装
pip install cmdtree
Quick Start
Hello world
from cmdtree import INT
from cmdtree import command, argument, option
@argument("host", help="server listen address")
@option("reload", is_flag=True, help="if auto-reload on")
@option("port", help="server port", type=INT, default=8888)
@command(help="run a http server on given address")
def run_server(host, reload, port):
print(
"Your server running on {host}:{port}, auto-reload is {reload}".format(
host=host,
port=port,
reload=reload
)
)
if __name__ == "__main__":
from cmdtree import entry
entry()
Get help
➜ examples git:(master) python command.py --help
usage: command.py [-h] {run_server} ...
positional arguments:
{run_server} sub-commands
run_server
optional arguments:
-h, --help show this help message and exit
Run command
➜ examples git:(master) python command.py run_server localhost
Your server running on localhost:8888, auto-reload is False
SubCommand of SubCommand
Code here:
from cmdtree import group, argument, entry
@group("docker")
@argument("ip")
def docker():
pass
# nested command
@docker.command("run")
@argument("container-name")
def run(ip, container_name):
print(
"container [{name}] on host [{ip}]".format(
ip=ip,
name=container_name,
)
)
# nested command group
@docker.group("image")
def image():
pass
@image.command("create")
@argument("name")
def image_create(ip, name):
print(
"iamge {name} on {ip} created.".format(
ip=ip,
name=name,
)
)
if __name__ == "__main__":
entry()
Run command:
➜ examples git:(master) python command_group.py docker localhost image create your-docker
iamge your-docker on localhost created.
最后
以上就是酷炫期待为你收集整理的cmd查看python库命令_[CmdTree] 又一个 Python 命令行库的全部内容,希望文章能够帮你解决cmd查看python库命令_[CmdTree] 又一个 Python 命令行库所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复