跳转到主要内容

一个帮助通过图导航缓冲区的框架。缓冲区必须流动。

项目描述

SGN文档

SGN是一个用于异步创建和执行流数据任务图的轻量级Python库。仅内置依赖项,SGN易于安装和使用。此页面是用于基本库 sgn,但有一系列扩展SGN功能的库,包括

  • sgn-ts:SGN的时间序列实用工具
  • sgn-ligo:SGN的LSC特定实用工具
  • sgn-try:SGN的过程监控和警报实用工具

安装

要安装SGN,只需运行

pip install sgn

SGN没有依赖Python标准库以外的任何内容,因此在任何系统上安装都应很简单。

快速入门

要开始使用SGN,您可以创建一个简单的任务图,表示一个简单的整数数据处理流水线。以下是一个示例

from sgn import Pipeline, DequeSink, DequeSource, CallableTransform

# Define a function to use in the pipeline
def add_ten(frame):
    return None if frame.data is None else frame.data + 10

# Create source element
src = DequeSource(
    name="src1",
    source_pad_names=["H1"],
    iters={"src1:src:H1": [1, 2, 3]},
)

# Create a transform element using an arbitrary function
trn1 = CallableTransform.from_callable(
    name="t1",
    sink_pad_names=["H1"],
    callable=add_ten,
    output_name="H1",
)

# Create the sink so we can access the data after running
snk = DequeSink(
    name="snk1",
    sink_pad_names=("H1",),
)

# Create the Pipeline
p = Pipeline()

# Insert elements into pipeline and link them explicitly
p.insert(src, trn1, snk, link_map={
    "t1:sink:H1": "src1:src:H1",
    "snk1:sink:H1": "t1:src:H1",
})

# Run the pipeline
p.run()

# Check the result of the sink queue to see outputs
assert list(snk.deques["snk1:sink:H1"]) == [13, 12, 11]

上述示例可以修改为使用任何数据类型,包括适合JSON的嵌套字典、列表和字符串。可以使用CallableTransform类使用任何任意函数创建转换元素。使用DeqSourceDeqSink类创建使用collections.deque存储数据的源和汇元素。

通用概念

SGN被设计得简单易用。这里我们概述了关键概念,但更多细节请参阅文档中的关键概念页面,链接:concepts.rst 在SGN中,有几个概念需要理解

图构建

  • :源是任务图的起点。它们产生可以由其他任务消费的数据。

  • 转换:转换是消费一个或多个源数据、处理它并产生新数据的任务。

  • :汇是消费一个或多个源数据并对其做些什么的任务。这可以是将数据写入文件、通过网络发送,或任何其他操作。

控制流

使用这些概念,您可以使用SGN创建复杂的任务图,以各种方式处理和移动数据。SGN库提供了一个简单的API来创建和执行任务图,包括几个关键类型

  • :帧是在任务图中的任务之间传递的数据单元。帧可以包含任何类型的数据,并且可以在任务图中的任务之间传递。

  • :垫是任务图中两个任务之间的连接点。垫用于在任务之间传递帧,并且可以用于在任务图中连接任务。边是任务图中两个垫之间的连接。

  • 元素:元素是任务图中的任务。元素可以是源、转换或汇,并且可以连接起来创建任务图。

  • 流水线:流水线是连接起来形成任务图的一组元素。可以执行流水线以处理数据,并且可以使用流水线创建复杂的数据处理工作流程。

项目详情


下载文件

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

源分发

sgn-0.0.3.tar.gz (31.0 kB 查看哈希值)

上传时间

构建分发

sgn-0.0.3-py3-none-any.whl (20.9 kB 查看哈希值)

上传时间 Python 3

由 ... 支持的