code: def fit_transform(self, bundle: DataBundle) -> DataBundle:
      self.num_split = self.config.num_split
      self.min_split = self.config.min_split
      self.max_split = self.config.max_split
      self.order = self.config.split_order
      self.shuffle = self.config.split_shuffle
      is_classification = self.config.is_classification
      if is_classification is None:
          if self.recognizer is None:
              is_classification = not is_float(bundle.y_train)
          else:
              is_classification = all(
                  t == ColumnTypes.CATEGORICAL
                  for t in self.recognizer.label_types.values()
              )
      self.is_classification = (
          self.config.is_classification
      ) = is_classification
      return self.transform(bundle, False)
  
imports: import numpy
  from enum import Enum
  from typing import Any
  from typing import Dict
  from typing import List
  from typing import Tuple
  from typing import Union
  from typing import Optional
  from typing import NamedTuple
  from dataclasses import dataclass
  from cftool.misc import print_warning
  from cftool.array import is_float
  from cftool.array import get_unique_indices
  from .recognizer import RecognizerBlock
  from ....schema import DataBundle
  from ....schema import ColumnTypes
  from ....schema import INoInitDataBlock
label_desc: Use image node_id 3 for calling the SplitterBlock obj's underlying member method code with example usage: obj.fit_transform(bundle) and returns: self