code: def blend(self, proportion=0.2, stratify=False, seed=100, indices=None, add_diff=False):
          
          result_train = []
          result_test = []
          y = None
  
          for model in self.models:
              result = model.blend(proportion=proportion, stratify=stratify, seed=seed, indices=indices)
              train_df = pd.DataFrame(result.X_train, columns=generate_columns(result.X_train, model.name))
              test_df = pd.DataFrame(result.X_test, columns=generate_columns(result.X_test, model.name))
  
              result_train.append(train_df)
              result_test.append(test_df)
              if y is None:
                  y = result.y_train
          result_train = pd.concat(result_train, axis=1, ignore_index=True)
          result_test = pd.concat(result_test, axis=1, ignore_index=True)
  
          if add_diff:
              result_train = feature_combiner(result_train)
              result_test = feature_combiner(result_test)
  
          return Dataset(X_train=result_train, y_train=y, X_test=result_test)
docs: Blends sequence of models.
  
          Parameters
          ----------
          proportion : float, default 0.2
          stratify : bool, default False
          seed : int, default False
          indices : list(np.ndarray,np.ndarray), default None
              Two numpy arrays that contain indices for train/test slicing.
          add_diff : bool, default False
  
          Returns
          -------
          `DataFrame`
  
          Examples
          --------
          >>> pipeline = ModelsPipeline(model_rf,model_lr)
          >>> pipeline.blend(seed=15)
  
          >>> # Custom indices
          >>> train_index = np.array(range(250))
          >>> test_index = np.array(range(250,333))
          >>> res = model_rf.blend(indicies=(train_index,test_index))