code: def pipe(self, other_task):
          
          other_task._source = self
          self._listeners.append(PipeListener(other_task))
          return other_task
docs: Add a pipe listener to the execution of this task. The
          output of this task is required to be an iterable. Each item in
          the iterable will be queued as the sole argument to an execution
          of the listener task.
  
          Can also be written as::
  
              pipeline = task1 | task2