def run(self, defn):

    # this pipeline runs all input stages in parallel, fans them back in then
    # runs the transforms tages in-order, finally fanning out the output stages
    # in parallel.
    inputs = yield FanOut(defn.get('inputs', []))
    with pipeline.After(inputs):
      last_tx = None
      with pipeline.InOrder():
        for d in defn.get('transforms', []):
          last_tx = yield GetStage(d)
      if not last_tx:
        last_tx = yield common.Ignore()
      with pipeline.After(last_tx):
        yield FanOut(defn.get('outputs', []))
Executes the pipeline.
dataset/ETHPy150Open GoogleCloudPlatform/Data-Pipeline/app/src/pipelines/pipelines.py/PushPipeline.run