class_docstr: Data Shuffling step that shuffles data inputs, and expected_outputs at the same time.
  
  .. code-block:: python
  
      p = Pipeline([
          TrainOnlyWrapper(DataShuffler(seed=42, increment_seed_after_each_fit=True)),
          EpochRepeater(ForecastingPipeline(), epochs=EPOCHS, repeat_in_test_mode=False)
      ])
  
  .. warning::
      You probably always want to wrap this step by a :class:`TrainOnlyWrapper`
  
  .. seealso::
      :class:`EpochRepeater`,
      :class:`~neuraxle.steps.flow.TrainOnlyWrapper`,
      :class:`~neuraxle.steps.output_handlers.InputAndOutputTransformerMixin`,
      :class:`~neuraxle.base.BaseStep`
class_docstr_tok: ["Data","Shuffling","step","that","shuffles","data","inputs",",","and","expected_outputs","at","the","same","time",".","..","code-block",":",":","python","p","=","Pipeline","(","[","TrainOnlyWrapper","(","DataShuffler","(","seed=42",",","increment_seed_after_each_fit=True",")",")",",","EpochRepeater","(","ForecastingPipeline","(",")",",","epochs=EPOCHS",",","repeat_in_test_mode=False",")","]",")","..","warning",":",":","You","probably","always","want","to","wrap","this","step","by","a",":","class",":","`","TrainOnlyWrapper","`","..","seealso",":",":",":","class",":","`","EpochRepeater","`",",",":","class",":","`","~neuraxle.steps.flow.TrainOnlyWrapper","`",",",":","class",":","`","~neuraxle.steps.output_handlers.InputAndOutputTransformerMixin","`",",",":","class",":","`","~neuraxle.base.BaseStep","`"]
code: def __init__(self, seed=None, increment_seed_after_each_fit=True):
      BaseTransformer.__init__(self)
      IdsAndInputAndOutputTransformerMixin.__init__(self)
      if seed is None:
          seed = 42
      self.seed = seed
      self.increment_seed_after_each_fit = increment_seed_after_each_fit
  
imports: import random
  from operator import attrgetter
  from typing import Iterable, List, Tuple
  from neuraxle.base import BaseStep, BaseTransformer
  from neuraxle.base import ExecutionContext
  from neuraxle.base import ForceHandleOnlyMixin, MetaStep
  from neuraxle.data_container import DACT, _inner_concatenate_np_array
  from neuraxle.pipeline import Pipeline
  from neuraxle.steps.flow import TrainOnlyWrapper
  from neuraxle.steps.output_handlers import IdsAndInputAndOutputTransformerMixin
label_desc: Use image node_id 1 to create a new DataShuffler object from inherited base classes: IdsAndInputAndOutputTransformerMixin, BaseTransformer with example: obj = DataShuffler(seed, increment_seed_after_each_fit)