流式多输入多输出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第三方库


热门话题
GL15和GL30之间的java LWJGL差异   java如何在午夜12:01 am使用spring引导将间隔后的行添加到数据库SQL中   在java的iText中,如何仅保留表的外部边框并删除表内的所有其他边框   java JasperReport大小限制   java如何从jsp到servlet获取多个下拉列表的值   Maven java项目生成,但不运行   使用Firebase的java Android数据库   java JavaFX TextField无法从结果集设置文本   java有没有一种方法可以避免在访问者模式的每个元素中使用方法进行自调用?   java使用compareTo()与Comparable<T>接口和arraylist   异常的java ASM字节码堆栈跟踪   java Make jButton在现有窗口中打开jFrame   java在HTTP中模拟CULD请求   java为什么mysql connector/j的rewriteBatchedStatements默认为false?   java POST请求获得405响应,而不是由accessdeniedhandler处理