API Reference#

fluxus is designed to handle data flows in a pipeline-like manner. It provides a set of classes that represent different components of a data flow, such as producers, transformers, and consumers. These components can be combined to form complex data processing pipelines.

Here’s a brief overview of the main classes and their roles:

  • Conduit

    This is an abstract base class that represents an element of a flow. It can be a producer, a transformer, a consumer, or a sequential or concurrent composition of these.

  • Producer

    This class generates objects of a specific type that may be retrieved locally or remotely, or created dynamically. It can be run synchronously or asynchronously.

  • Transformer

    This class generates new products from the products of a producer. It can be run synchronously or asynchronously.

  • Consumer

    This class consumes products from a producer or group of producers, and returns a single object. It can be run synchronously or asynchronously.

  • Flow

    This class represents a sequence of producers, transformers, and consumers that can be executed to produce a result.

The module also provides classes for handling asynchronous operations (AsyncProducer, AsyncTransformer, AsyncConsumer).

The >> operator is overloaded in these classes to allow for easy chaining of operations. For example, a producer can be connected to a transformer, which can then be connected to a consumer, forming a complete data flow.

Groups of concurrent producers or transformers can be created using the & operator.

fluxus package is designed to be flexible and extensible, allowing for complex data flows to be built with ease.

Please see the release notes for recent API updates and bug fixes.

Classes#

AsyncConsumer

A consumer designed for asynchronous I/O.

AsyncProducer

A producer designed for asynchronous I/O.

AsyncTransformer

A transformer designed for asynchronous I/O.

Consumer

Consumes products from a producer or group of producers, and returns a single object.

Flow

A flow is a sequence of producers, transformers, and consumers that can be executed to produce a result.

Passthrough

Can be used in place of a transformer when the flow should pass through the input without modification.

Producer

Generates objects of a specific type that may be retrieved locally or remotely, or created dynamically.

Transformer

An atomic transformer that generates new products from the products of a producer.

Exceptions#

FlowWarning

A warning specific to flows.

Submodules#

core

Core classes used internally by fluxus.

functional

Functional API for the flow module.

lineage

Products implementing the HasLineage interface are able to store and retrieve the lineage of the intermediary products that were created along the way through the flow to the final product.

simple

Implementation of simple producers and transformers, and producer and transformer groups, for managing collections of producers and transformers.

util

Simple utility classes, implementing basic conduits.

viz

Visualizations for flows.