Skip to main content

Python signal based flow based programming

Project description

This library provides utilities that allow to build simple signal / generator
based data flows which provide for clean code on complex data transformations.

This was primarily designed to be used in batch works though, in principle,
streaming data should work just fine.

And it was born because I needed something *really* simple that would allow me
to process data on a row-by-row basis and generate events/signals during that

## Usage example (see tests/)

from signalflow import Pipe, Plumber

class EmitZeroThenOne(Pipe):
def once(self):
# once is called when the loop has nothing to do and is looking
# for new signals.

def emit_number(self, i: int):
# emit_* are always stubs.

class FibonacciAcummulator(Pipe):
last_number = -1

def receive_number(self, sender, i: int):
if i > 34:
if self.last_number >= 0:
self.emit_number(i + self.last_number)
self.last_number = i

def emit_number(self, i: int):

class NumberPrinter(Pipe):
def receive_number(self, sender, i: int):
print(f"Received {i}")

flow = Plumber()

flow.go() # Prints Fibonacci Sequence

Keywords: flow signal datapipe pipe development
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Description-Content-Type: text/markdown
Provides-Extra: dev
Provides-Extra: test

Project details

Download files

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

Files for signalflow, version 0.0.1
Filename, size File type Python version Upload date Hashes
Filename, size signalflow-0.0.1-py3.6.egg (5.4 kB) File type Egg Python version 3.6 Upload date Hashes View
Filename, size signalflow-0.0.1.tar.gz (4.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page