You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Apr 30, 2026. It is now read-only.
Block - not shown in the code above, but required to understand a flow - a block provides a generate() method transforms an input dataset and returns an output dataset
Block config - a description of how to instantiate and invoke a block
Flow - a class which describes how to render a sequence of block configs from a template
Pipeline - a pipeline is created from a sequence of block configs, and provides a generate() method in which it instantiates and invokes blocks in turn, passing the input dataset and collecting the output
SDG - an SDG is created from a list of pipelines, and its generate() method calls pipelines in turn
Proposals:
Remove SDG - we don't need both SDG and Pipeline since Pipeline can already do everything SDG can do
Model Flow as a block config template - it would be more clear if we reinforced the idea that a "flow" is a template of a block config sequence - a render() method make sense to me, and an extensible params object for the common case of instantiating multiple flows
Create a pipeline from a sequence of flows - add a Pipeline.from_flows() convenience class method to Pipeline that knows how to render block configs from a sequence of flows
Consider the following:
or:
Consider the nouns:
generate()method transforms an input dataset and returns an output datasetgenerate()method in which it instantiates and invokes blocks in turn, passing the input dataset and collecting the outputgenerate()method calls pipelines in turnProposals:
SDG- we don't need bothSDGandPipelinesincePipelinecan already do everythingSDGcan doFlowas a block config template - it would be more clear if we reinforced the idea that a "flow" is a template of a block config sequence - arender()method make sense to me, and an extensibleparamsobject for the common case of instantiating multiple flowsPipeline.from_flows()convenience class method to Pipeline that knows how to render block configs from a sequence of flowsSo we could have e.g.
or:
or:
Resolving this issue would require an update to the design doc and a code change
It would definitely be better to do this before users of the API proliferate