class_docstr: Transformer pipeline
  
  Pipeline class for wrapping a preprocessing pipeline of transformers.
  
  .. versionadded: 0.2.0
  
  Parameters
  ----------
  pipeline : list, instance
      A :class:`~mlens.parallel.Transformer` instance or a list of
      :class:`~mlens.parallel.Transformer`
      instances. Accepted input formats::
  
          option_1 = transformer_1
          option_2 = [transformer_1, transformer_2]
          option_3 = [("tr-1", transformer_1), ("tr-2", transformer_2)]
          option_4 = [transformer_1, ("tr-2", transformer_2)]
  
  name : str, optional
      name of pipeline.
  
  return_y : bool, default = False
      If True, both X and y will be returned in a
      :func:`~mlens.parallel.handles.Pipeline.transform` call.
docstr: Run job on pipeline.
docstr_tok: ["Run","job","on","pipeline","."]
code: def _run(self, fit, process, X, y=None):
      """Run job on pipeline."""
      out = self._check_empty(process, X, y)
      if out is not False:
          return out
  
      if fit:
          self._pipeline = [
              (tr_name, clone(tr)) for tr_name, tr in self.pipeline
          ]
  
      for tr_name, tr in self._pipeline:
          if fit:
              tr.fit(X, y)
  
          if len(self._pipeline) > 1 or process:
              X, y = transform(tr, X, y)
  
      if process:
          if self.return_y:
              return X, y
          return X
      return self
  
imports: from .base import BaseEstimator
  from .learner import Learner, Transformer
  from ._base_functions import mold_objects, transform
  from ..utils import format_name, check_instances
  from ..utils.formatting import _check_instances
  from ..externals.sklearn.base import clone, BaseEstimator
label_desc: Use image node_id 2 for calling the Pipeline obj's underlying member method code with example usage: obj._run(fit, process, X, y) and returns: self, out, X, X,  y