基于asyncio的CLI框架
项目描述
基于asyncio的CLI框架。
用法
最简单的用法是只需传递一个async函数。
import asynccli
async def mycli():
print("Hello, world.")
if __name__ == '__main__':
app = asynccli.App(mycli)
app.run()
它也可以实例化为一个类,只要它有一个call方法。
import asynccli
class DivisionCalculator(asynccli.CLI):
numerator = asynccli.Integer(help_text='This is the numerator.')
denominator = asynccli.Integer()
async def call(self):
print(self.first_num / self.second_num)
if __name__ == '__main__':
app = asynccli.App(DivisionCalculator)
app.run()
在上面的DivisionCalculator示例中,您将像这样调用您的脚本
$ /path/to/script.py 2 3
0.6666666666666666
如果您想要一个具有命令层次结构的分层CLI怎么办?首先,通过像上面那样将CLI作为子类创建您的命令。然后,将整个内容包装在TieredCLI类中,并将其传递给App。
class Calculator(asynccli.TieredCLI):
d = DivisionCalculator
现在,要调用脚本,您需要额外一个参数来调用
$ /path/to/script.py d 2 3
0.6666666666666666
安装
pip install asynccli
需求
目前它需要Python 3.5来使用async/await。它使用底层的argparse,因此除了标准库之外没有其他依赖项。
路线图
额外的Argument类型
集成额外的argparse功能
添加uvloop
更好地支持帮助文档
测试
您可以通过几种不同的方式调用测试脚本
$ py.test
$ python setup.py test
$ python -m py.test
并且,为了生成测试覆盖率
$ coverage run -m py.test
许可证
项目详情
关闭
asynccli-0.1.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c3603f80856d8982817f0f2fcbe0429975242078e1bbae3e96cd4917f20c4c2a |
|
MD5 | c8fdce172beb05474d7ef22fb0e1dcd6 |
|
BLAKE2b-256 | 57f8c4a2cef122af5a6eafc6d468346e1625b07713ea7ee8ab90caa27d47bc96 |