The pipeline building logic is getting a little unruly, especially with the requirements for building pipelines expanding. It would be nice to factor some external logic into the EZPipeline class, and refactor some of its already existing logic, to reduce complexity in the code and enhance the pipeline building experience.
Logic to move into EZPipeline:
[x] The concatenation builder and concatenation cache present in experimenter.experiments.random, so any pipeline can easily link multiple inputs to a pipeline step.
[x] All methods in experimenter.pipeline_builder that aren't already in the EZPipeline class
Logic to refactor within EZPipeline:
[x] Add more keyword arguments to add_pipeline_step that give options to automatically populate required arguments with defaults, and to automatically encode a step's output.
The pipeline building logic is getting a little unruly, especially with the requirements for building pipelines expanding. It would be nice to factor some external logic into the
EZPipeline
class, and refactor some of its already existing logic, to reduce complexity in the code and enhance the pipeline building experience.Logic to move into
EZPipeline
:experimenter.experiments.random
, so any pipeline can easily link multiple inputs to a pipeline step.experimenter.pipeline_builder
that aren't already in theEZPipeline
classLogic to refactor within
EZPipeline
:add_pipeline_step
that give options to automatically populate required arguments with defaults, and to automatically encode a step's output.