Transformers¶
Transformer Interface¶
-
class
zircon.transformers.base.BaseTransformer[source]¶ Abstract base class defining the Transformer interface.
A Transformer takes in messages, applies some transformation, and spits them back out. It is a general piece of middleware in a data stream that can be used to compress/decompress, encode/decode, or split/combine messages in a data pipeline.
Usage:
def process(msg): do_something(msg) t = MyTransformer() t.set_callback(process) for msg in messages: t.push(msg)
Pass-through Transformer¶
-
class
zircon.transformers.base.Transformer[source]¶ Bases:
zircon.transformers.base.BaseTransformerTransformer that acts as a pass-through, invoking the callback for each message received with no alterations.
Extend this and override
push()to implement a Transformer.
Common Transformers¶
-
class
zircon.transformers.common.Combiner(limit)[source]¶ Bases:
zircon.transformers.base.TransformerCombine messages into a list, then send them out.
-
class
zircon.transformers.common.Doubler[source]¶ Bases:
zircon.transformers.base.TransformerOutput each message twice.
-
class
zircon.transformers.common.Splitter[source]¶ Bases:
zircon.transformers.base.TransformerSplit messages into parts by iterating through them.
-
class
zircon.transformers.common.Uppercaser[source]¶ Bases:
zircon.transformers.base.TransformerCapitalize string-like messages.
-
class
zircon.transformers.common.Lowercaser[source]¶ Bases:
zircon.transformers.base.TransformerLowercase string-like messages.
-
class
zircon.transformers.common.Pickler[source]¶ Bases:
zircon.transformers.base.TransformerPickle messages with the latest protocol.
-
class
zircon.transformers.common.Unpickler[source]¶ Bases:
zircon.transformers.base.TransformerUnpickle messages with the latest protocol.
-
class
zircon.transformers.common.Compressor[source]¶ Bases:
zircon.transformers.base.TransformerCompress messages using zlib.
-
class
zircon.transformers.common.Decompressor[source]¶ Bases:
zircon.transformers.base.TransformerDecompress messages using zlib.
-
class
zircon.transformers.common.TimedCombiner(dt=0.1)[source]¶ Bases:
zircon.transformers.base.TransformerConvert individual data points into a dictionary of signal names to time series, outputted at a regular interval.
Input: (12345, ‘MYSIGNAL’, -5.2), (12346, ‘MYSIGNAL’, 1.3), ... Output: {‘MYSIGNAL’: ((12345, -5.2), (12346, 1.3))}
-
class
zircon.transformers.common.Printer(prefix=None)[source]¶ Bases:
zircon.transformers.base.TransformerPrints messages and passes them on unaltered.