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

Uploaded Source

Built Distribution

reactivedataflow-0.1.2-py3-none-any.whl (24.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: reactivedataflow-0.1.2.tar.gz
  • Upload date:
  • Size: 14.4 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.2.tar.gz
Algorithm Hash digest
SHA256 4bb9eb22ca6462cba5a69b1b360954ed5c6f904eaa0e399901a36c72876340a6
MD5 e99fdf78dbb12a3802205926cf80b40d
BLAKE2b-256 020ac4a4c7ae40a949dc3ffe975f2b3eed7bb88df2125c17328234a9f55ec3ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reactivedataflow-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8b4131787a3f21bc7ed7cac99394d21d4728b59daed4e5b8f44eda23d7fd3964
MD5 783f3ab43b637f810c366dffe4c3e6fa
BLAKE2b-256 d1ffc71c6d0c4ff45aa6e89d023cbb96ddb84dca431286ba5dab24dba32e214c

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