跳转到主要内容

基于asyncio的CLI框架

项目描述

Latest PyPI version Version status Python 3.5 and 3.6 Latest Travis CI build status Codacy grade Codacy coverage

基于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

许可证

MIT

作者

asynccliAdam Hopkins编写。

项目详情


下载文件

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

源分布

asynccli-0.1.3.tar.gz (4.5 kB 查看哈希值)

上传时间

由以下提供支持