AFL.double_agent.Pipeline module#
Pipeline module for the double_agent package.
This module provides the Pipeline class, which serves as a container for defining and executing computational workflows. Pipelines are composed of PipelineOp objects that perform specific operations on data.
PipelineOps in this system follow these conventions: - Each operator takes input_variable and output_variable parameters in its constructor - Each operator implements a .calculate method that:
Maintains the same signature as the base class (PipelineOp)
Writes results to an xarray Dataset or DataArray
Returns self for method chaining
- class AFL.double_agent.Pipeline.Pipeline(name: str | None = None, ops: List | None = None)#
Bases:
PipelineContext
Container class for defining and executing computational workflows.
The Pipeline class serves as a framework for organizing and running sequences of operations (PipelineOps) on data. Each operation in the pipeline takes input data, performs a specific transformation, and produces output data that can be used by subsequent operations.
- Parameters:
name (Optional[str], default=None) – Name of the pipeline. If None, defaults to “Pipeline”.
ops (Optional[List], default=None) – List of PipelineOp objects to initialize the pipeline with.
- result#
Stores the final result after pipeline execution
- Type:
Any
- ops#
List of PipelineOp objects in the pipeline
- Type:
List
- graph#
NetworkX directed graph representation of the pipeline
- Type:
nx.DiGraph
- graph_edge_labels#
Edge labels for the pipeline graph visualization
- Type:
Dict
- append(op: PipelineOp) Self #
Mirrors the behavior of python lists
- calculate(dataset: Dataset, tiled_data=None, disable_progress_bar: bool = False) Dataset #
Execute all operations in pipeline on provided dataset
- clear_outputs()#
Clears the output dict of all PipelineOps in this pipeline
- copy() Self #
- draw(figsize=(8, 8), edge_labels=True)#
Draw the pipeline as a graph
- draw_plotly()#
- extend(op: List[PipelineOp]) Self #
Mirrors the behavior of python lists
- input_variables() List[str] #
Get the input variables needed for the pipeline to fully execute
Warning
This list will currently include “Generators” that aren’t required to be in the pipeline. These will hopefully be distinguishable by having Generator in the name, but this isn’t enforced at the moment.
- make_graph()#
Build a networkx graph representation of this pipeline
- output_variables() List[str] #
Get the outputs variables of the pipeline
- print() None #
Print a summary of the pipeline
- print_code() None #
String representation of approximate code to generate this pipeline
Run this method to produce a string of Python code that should approximate this Pipeline. If all constructor parameters are not stored as class attributes, this method will fail and the code result will need to be edited.
Warning
This method is approximate. The code generated by this method may not produce an identical Pipeline to this method. Use with caution.
- static read(filename: str)#
Read pipeline from pickle file on disk
Usage#
`python from AFL.double_agent.Pipeline import Pipeline pipeline1 = Pipeline.read('pickled_pipeline.pkl') ``
- search(name: str, contains: bool = False) PipelineOp | None #
- write(filename: str)#
Write pipeline to disk as a pkl
- Parameters:
filename (str) – Filename or filepath to be written