Streaming Graph Navigator. A framework to help navigate buffers through a graph. The buffers must flow.
Project description
sgn
This is an attempt to sketch a streaming framework to replace some good aspects of gstlal.
There are the following concepts defined
- Buffer: An object designed to carry data through some execution graph
- Source Pad: An object that is designed to create a buffer when asked
- Sink Pad: An object that will receive a buffer when asked
- Source Elements: These manage the creation of buffers on one or more Pads with the assumption that they will be executed as part of a graph
- Sink Elements: These manage the consumption of buffers on one or more Pads with the assumption that they will be executed as part of a graph
- Transform Elements: These manage the consumption of buffers that immediately result in the production of new buffers.
- Pipelines: These manage the graph execution to pull buffers through the graph and potentially handle other events.
limitations
At the moment only single src / sink elements are supported for trivial linear graphs. There is a skeleton to start expanding it and it is written such that hopefully it will be possible.
Getting started
Clone the repo and run
$ python tests/test_graph.py
buffer flow: 'src1:H1:src' -> 'H1trans1:H1:src' -> 'snk1:H1:sink'
buffer flow: 'src1:L1:src' -> 'L1trans1:L1:src' -> 'snk1:L1:sink'
buffer flow: 'src1:L1:src' -> 'L1trans2:L1:src' -> 'snk2:L1:sink'
buffer flow: 'src2:V1:src'+'src2:K1:src' -> 'V1K1trans1:V1:src' -> 'snk2:V1:sink'
buffer flow: 'src2:V1:src'+'src2:K1:src' -> 'V1K1trans1:K1:src' -> 'snk2:K1:sink'
buffer flow: 'src1:H1:src' -> 'H1trans1:H1:src' -> 'snk1:H1:sink'
buffer flow: 'src1:L1:src' -> 'L1trans1:L1:src' -> 'snk1:L1:sink'
buffer flow: 'src1:L1:src' -> 'L1trans2:L1:src' -> 'snk2:L1:sink'
buffer flow: 'src2:V1:src'+'src2:K1:src' -> 'V1K1trans1:V1:src' -> 'snk2:V1:sink'
buffer flow: 'src2:V1:src'+'src2:K1:src' -> 'V1K1trans1:K1:src' -> 'snk2:K1:sink'
buffer flow: 'src1:H1:src' -> 'H1trans1:H1:src' -> 'snk1:H1:sink'
buffer flow: 'src1:L1:src' -> 'L1trans1:L1:src' -> 'snk1:L1:sink'
buffer flow: 'src1:L1:src' -> 'L1trans2:L1:src' -> 'snk2:L1:sink'
buffer flow: 'src2:V1:src'+'src2:K1:src' -> 'V1K1trans1:V1:src' -> 'snk2:V1:sink'
buffer flow: 'src2:V1:src'+'src2:K1:src' -> 'V1K1trans1:K1:src' -> 'snk2:K1:sink'
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
sgn-0.0.2.tar.gz
(13.6 kB
view details)
Built Distribution
sgn-0.0.2-py3-none-any.whl
(12.9 kB
view details)
File details
Details for the file sgn-0.0.2.tar.gz
.
File metadata
- Download URL: sgn-0.0.2.tar.gz
- Upload date:
- Size: 13.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd7b239939f8e31ba0fc4bd9a6675bcfb9814df41d390984701ee8e6d9d41705 |
|
MD5 | 41fa5abe603dfaf765fbb3358785043d |
|
BLAKE2b-256 | 28ef09b7d80fb3fa3d67b1800a23c3fb56fd5f60b08f0820a01815141c2088e1 |
File details
Details for the file sgn-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: sgn-0.0.2-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15575388aebde723dd05b753f522175c1dd02d9ba642276451b903441d8c5bda |
|
MD5 | 481b5214c8802c68f87bbdec440873b9 |
|
BLAKE2b-256 | 2f2b2f7f88c1aa7d7cd59e172141d08dad813ddc3f394fcc901fbeb3d3ff8d06 |