Skip to main content

Reactive Dataflow Graphs

Project description

Reactive-Dataflow

Reactive Processing Graphs for Python.

Getting Started

Installation

pip install reactivedataflow

The key dependencies for this project include rx and networkx. These are outlined in the pyproject.toml dependencies section.

Usage

import reactivex as rx
from reactivedataflow import (
	GraphAssembler, 
	GraphModel, 
	VerbNodeModel, 
	InputNodeModel, 
	InputModel,
	verb,
	InputPort,
	ConfigPort
)
#
# Define a processing verb
#
@verb(
	name="print",
	ports=[
		InputPort(name="values", required=True, parameter="val"),
		ConfigPort(name="prefix", required=False, parameter="prefix"),
	]
)
def print_verb(val, prefix=""):
	return f"{prefix}{val}"

#
# Define a simple graph
#
assembler = GraphAssembler()
assembler.load(
	GraphModel(
		inputs=[
			# This is an input stream of values we'll define on build
			InputNodeModel(id="input_values")
		],
		nodes=[
			# Here we define the processing nodes
			VerbNodeModel(
				id="verb1",
				verb="print",
				config={"prefix": "emitted: "},
				input={
					"values": InputModel(node="input_values")
				}
			),
		],
	),
)

#
# Build the graph and bind input streams
#
graph = assembler.build(
	inputs={
		"input_values": rx.of([1, 2, 3])
	}
)
#
# Watch graph outputs
#
graph.output("verb1").subscribe(print)
# Output:
# emitted: 1
# emitted: 2
# emitted: 3

Developing

This project uses poetry for dependency management. You should have a recent Python version (e.g. 3.10+) and Poetry 1.8+ installed on your system.

# Install dependencies
poetry install

# Run tests
poetry run poe test

# Run static checks
poetry run poe check

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reactivedataflow-0.1.7.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

reactivedataflow-0.1.7-py3-none-any.whl (27.6 kB view details)

Uploaded Python 3

File details

Details for the file reactivedataflow-0.1.7.tar.gz.

File metadata

  • Download URL: reactivedataflow-0.1.7.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for reactivedataflow-0.1.7.tar.gz
Algorithm Hash digest
SHA256 b8851cca4b35db15a339adbde11c503379c5752fdf5f7f3b8dfbeab53cee25c7
MD5 4ba3e8ed6fdb81526905d367f1f9847d
BLAKE2b-256 10f2f708389edf007ff1ec53651d050f2e29c41455c78b418c2f12d69fda9e1b

See more details on using hashes here.

File details

Details for the file reactivedataflow-0.1.7-py3-none-any.whl.

File metadata

File hashes

Hashes for reactivedataflow-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 c096b4745f77c7fafd3d9012b00582d0647e0b3120eed5a264549abd558fd0b5
MD5 dac08cd5c83090d05c2756a1c95297ff
BLAKE2b-256 032b0feb610d9d35290554174244736008c51ca3996855225b5597702c306c9f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page