流式多输入多输出python库

mimo的Python项目详细描述


[![构建状态](https://travis-ci.org/childsish/mimo.svg?branch=master)](https://travis ci.org/childsish/mimo)


mimo
=====

+多输入多输出(与输入和输出总是同步的功能相反)
*更少的内存(因为流)

mimo是一个多输入多输出的python流媒体库。它允许用户定义一个具有多个输入和多个输出的流,并从头到尾完全运行它们。为了防止过多的内存被使用,还实现了背压。

usage
----


mimo中有两个核心组件:“流”和“工作流”。流到计算处理,但不处理数据如何在流之间传递。工作流围绕流传递数据,但不处理它们自己的数据。要创建工作流,用户需要实现流并用管道将它们连接在一起。

下面的代码显示了一个流的两个实现,它将生成0到99之间的数字。



``python
from mimo import stream



输出:
对于iter中的项(范围(100)):
等待输出。实体。推送(项)



state):
对于iter中的项(范围(100)):
等待。entity.push(item)
`````

它必须是异步的,即必须用“async def”关键字定义。
2.它接受两个参数“ins”和“outs”,这两个参数包含输入流和输出流。输入和输出流的名称由“in”和“out”成员变量定义,或使用初始化函数的“in”和“outs”重写。可以通过属性访问输入和输出流。从上面的示例中,可以使用outs.entity来访问“entity”输出流。
3。可以弹出和查看输入流,这必须使用“await”关键字完成。上面的示例中没有使用输入流,但是可以使用函数“pop”和“peek”一次访问流中的实体。弹出一个实体会将其从输入流中移除,而peeking会查看最上面的实体,而不会将其从流中移除。也可以使用“async for”循环构造迭代输入流。
4。可以推送输出流,还必须使用“await”关键字。将实体推送到输出流将使其可用于任何连接的下游流。

首先,必须实例化工作流并用所需的流填充它。填充工作流返回的步骤可以用于使用“pipe”函数在流之间建立连接。函数返回要通过管道传送到的流,因此可以链接“pipe”调用。工作流可以通过调用“start”函数来运行。

``python
from mimo import stream,workflow


workflow=workflow()
step1=workflow.a d d_stream(stream(outs=['a'])
step2=workflow.add_stream(stream(['b',['c'])
step3=workflow.add_stream(stream(['d'])

管道(STEP2)。管道(STEP3)
BR/>打印(STR(工作流))
工作流。

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

推荐PyPI第三方库


热门话题
java不支持ArrayList。clear()方法释放内存?   java有一种保持测试的方法。Bat文件打开并运行其余的代码?   java XMLSocketReceiver和SocketReceiver是如何工作的?   Java ArrayList StringBuilder附加   java Jsoup从html表中提取数据   java JAXB通用XmlAdapter实现   java在半秒钟后更新JLabel中包含的图片   java如何在组织中打印整个标记结构。jdom。文档对象?   java我的公共int没有使用正确的参数,我的调用是否错误?   mysql与Java Rest Webservice的手动数据库连接(jersey)   java这个同步代码是如何中断的?   java试图在关闭的EntityManager上执行操作(在命名查询上调用setParameter()函数时)   java在使用流生成映射时忽略重复项   java使用整数创建日期并显示在文本框中   java在运行时动态更改类字段的注释