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.8.tar.gz (17.3 kB view details)

Uploaded Source

Built Distribution

reactivedataflow-0.1.8-py3-none-any.whl (27.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: reactivedataflow-0.1.8.tar.gz
  • Upload date:
  • Size: 17.3 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.8.tar.gz
Algorithm Hash digest
SHA256 49194720e2397bb1ec31f01c7b3b27f597fb7161c631ccbc137d6341054c4786
MD5 564dfb9447c632dd1fba6f8b514095cd
BLAKE2b-256 034bf2b93c0dd0e45958a8befde88b4ebbaca3e8d676fe53be12927e07ed8cb5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reactivedataflow-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 488e5210d6633fc16fee2971fa8144e31c6867aaaf2efade3dc99f80534cf34a
MD5 6e5a494c3b76f13f8b01690af7914de7
BLAKE2b-256 7449202fc7f8fc739832fef6381675a90ea3fab8bf67d8a8e00a4dbcee6db12a

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