SDSS参与者的新协议。

sdss-clu的Python项目详细描述


Python VersionsPyPI versionBuild StatusDocumentation StatusCoverage Status

CLU为sds-actor实现了一个新协议,同时提供了对遗留样式actor的支持。在

特点

  • 基于asyncio的异步API。在
  • {a8{a8}基于新的^和消息}传递。在
  • 通过tron进行TCP套接字通信的传统样式actor。在
  • 设备处理工具。在
  • 消息是经过验证的JSON字符串。在
  • click-启用命令解析器。在

安装

CLU可以使用pip作为

pip install sdss-clu

或者从源头

^{pr2}$

开发

clu使用poetry进行依赖项管理和打包。要使用可编辑的安装,建议您在虚拟环境中设置poetry,并通过以下操作在虚拟环境中安装clu

poetry install

Pip还不支持PEP-517的可编辑安装。这意味着运行pip install -e .将失败,因为poetry不使用setup.py文件。作为一种解决方法,您可以使用create_setup.py文件来生成一个临时的setup.py文件。要在不使用poetry的可编辑模式下安装clu,请执行以下操作:

pip install --pre poetry
python create_setup.py
pip install -e .

快速入门

CLU创建一个新的actor很容易。要实例化并运行一个actor,只需

importasynciofromcluimportAMQPActorasyncdefmain(loop):actor=awaitActor('my_actor').start()awaitactor.run_forever()asyncio.run(main(loop))

接下来,转到Getting started部分,了解有关使用actor的更多信息。更多示例可用here。在

为什么要为sds使用新的消息传递协议?在

不管你想说什么,基于Tronopscore和{tt16}$的current SDSS message passing protocol是稳定和健壮的。那么,我们为什么要更换它呢?以下是原因:

  • 它重新发明了轮子。好吧,老实说,Tronopscore是在轮子还不是完全圆形的时候写的,但事实是,现在有了更健壮、标准和更好的文档技术来进行消息传递。在
  • 我们可以通过依赖开源消息代理(如RabbitMQ)来消除对中央集线器产品的需求。在
  • Tronopscore是Python2,不清楚将它们转换为Python3所需的工作量。在
  • 虽然有一些关于Tronopscore的文档,并且代码写得很好,但是它也很麻烦,而且很难被没有编写它的人修改。它最终是不可维护的。在
  • opsctore/actorkeys数据模型是定制的,非常难以维护。应首选标准解决方案,如带有JSON schema验证器的JSON。在
  • asyncio提供了一个异步API,它比使用线程更干净、更易于编写代码。它也比twisted更具可读性和更少的复杂性,而且它是一个开发非常活跃的Python核心库。在
  • CLU使用click解析命令,提供了一个定义良好、易于使用的解析器。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在Rxjava中更改列表时通知obsever   java如何验证spring MVC web app中是否设置了连接池?   从Textview选择文本时出现安卓错误(java.lang.IndexOutOfBoundsException:setSpan(1…1)在0之前开始)   javakotlin:作为方法参数的接口   java将列强制转换为hibernate条件中的类型   java如何在屏幕上获取输出对象?   java内部调用方法   java Log4j2模式布局+转换模式处的负数   java将EditText转换为浮动安卓 eclipse   对Java继承规则感到困惑   java将外部文件打包到jar中,然后允许代码对这些打包的文件执行操作   java如何通过输入给定字段之一进行用户搜索?   java Android从应用程序调用活动   java如何从相机中获取图像并将其添加到google地图上作为标记?   java自定义Listview在选择Edittext并打开键盘之前不显示   javascript验证JSON字符串服务端   使用java流从列表中获取素数   java无法让我的菜单打开方法   用户界面高效的动态生成Java GUI