Skip to main content

Batik is a Python framework for simplifying dataflow programming.

It’s basically a bunch of glue code for connecting steps in a data pipeline, with support for stateful actors, multithreading, and model serving.

Hot-reload sort of works too, but I’m still ironing out the kinks.

I wrote Batik because I hated having to screw around with initializing threads, queues, handling IPC, and having to decipher just what a data science or signal processing pipeline was doing from a giant block of imperative code.

In Batik, you implement processing steps, or layers, on their own, and stitch them together in batik.yaml, for an approach more resembling gnuradio or simulink without the gui.

Terminology:

Manifest: The complete setup of what to run/serve. Read from batik.yaml.

Layer: A single processing step in a pipeline. Takes some data as a parameter, operates on it, and returns some data.

Endpoint: A sequence of one or more layers. Used as an api endpoint for model serving. May be invoked dynamically from other layers to do things like fan-out based on value etc.

Actor: A stateful class, initialized at runtime. The methods of the class may be used as layers or daemons.

Daemon: A generator function that runs at startup. Each generated value is passed to a specified endpoint, possibly through some layers.

See examples for more.

Batik is kind of a mess at the moment. If you want to contribute, I’ll buy you a beer.

Metadata

Release files for batik 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for batik 0.4.0
File Size Uploaded
batik-0.4.0.tar.gz 9.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for batik 0.4.0
File Interpreter ABI Platform
batik-0.4.0-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 21.9 kB

Release files / batik-0.4.0.tar.gz

Download URL batik-0.4.0.tar.gz
Size 9.7 kB
Tags Source
SHA-256 checksum
How to use checksums
5b565501cdb58a9afc8c04b78f32aae21f6be274bb265eb9b9951a330677cf39
BLAKE2b-256 checksum
How to use checksums
eaaea9e3189a6ca35099bee0b1ba08f8b23c5bb23f22c0b0c9d415e5f0dfbe3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release files / batik-0.4.0-py2.py3-none-any.whl

Download URL batik-0.4.0-py2.py3-none-any.whl
Size 12.2 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
1cf2a76d3b53f885850e308579a1faf04a53ed961eb9e83dfe3765d94aa42f73
BLAKE2b-256 checksum
How to use checksums
815e9d5965dc148990b2665a4fdf1e515c0ce1a8d008e370794f2ab250b0d2b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page