nuts-flow icon indicating copy to clipboard operation
nuts-flow copied to clipboard

A simple dataflow framework in Python

.. image:: pics/nutsflow_logo.gif :align: center

  • Introduction <https://maet3608.github.io/nuts-flow/introduction.html>_
  • Installation <https://maet3608.github.io/nuts-flow/installation.html>_
  • Tutorial <https://maet3608.github.io/nuts-flow/tutorial/introduction.html>_
  • Documentation <https://maet3608.github.io/nuts-flow/>_
  • Github <https://github.com/maet3608/nuts-flow>_

nuts-flow is largely a thin wrapper around Python's itertools that allows the chaining of iterators using the >> operator. This leads to more readable code that highlights the flow of data. The following example shows two implementations of a simple data processing pipeline; the first based on itertools and the second using nuts-flow:

from itertools import islice list(islice(filter(lambda x: x > 5, xrange(10)), 3)) [6, 7, 8]

from nutsflow import Range, Filter, Take, Collect, _ Range(10) >> Filter(_ > 5) >> Take(3) >> Collect() [6, 7, 8]

Both examples extract the first three numbers within range [0, 9] that are greater than five. However, the nuts-flow pipeline is easier to understand than the nested itertools code.

nuts-flow is the base for nuts-ml <https://github.com/maet3608/nuts-ml>, which is described here <https://maet3608.github.io/nuts-ml/> .

.. image:: https://badge.fury.io/py/nutsflow.svg :target: https://badge.fury.io/py/nutsflow

.. image:: https://img.shields.io/pypi/pyversions/nutsflow.svg :target: https://pypi.python.org/pypi/nutsflow/

.. image:: https://travis-ci.org/maet3608/nuts-flow.svg?branch=master :target: https://travis-ci.org/maet3608/nuts-flow

.. image:: https://coveralls.io/repos/github/maet3608/nuts-flow/badge.svg?branch=master :target: https://coveralls.io/github/maet3608/nuts-flow?branch=master

.. image:: https://img.shields.io/github/issues/maet3608/nuts-flow.svg :target: https://github.com/maet3608/nuts-flow/issues

.. image:: https://img.shields.io/badge/license-Apache%202-blue.svg :target: https://github.com/maet3608/nuts-ml/blob/master/LICENSE