class_docstr: K-Folds cross-validator
  
  Provides train/test indices to split data in train/test sets. Split
  dataset into k consecutive folds (without shuffling by default).
  
  Each fold is then used once as a validation while the k - 1 remaining
  folds form the training set.
  
  Parameters
  ----------
  n_splits : int, default=5
      Number of folds. Must be at least 2.
  
  shuffle : boolean, optional
      Whether to shuffle the data before splitting into batches.
  
  random_state : int, RandomState instance or None, optional, default=None
      If int, random_state is the seed used by the random number generator;
      If RandomState instance, random_state is the random number generator;
      If None, the random number generator is the RandomState instance used
      by `np.random`. Used when ``shuffle`` == True.
class_docstr_tok: ["K-Folds","cross-validator","Provides","train\/test","indices","to","split","data","in","train\/test","sets",".","Split","dataset","into","k","consecutive","folds","(","without","shuffling","by","default",")",".","Each","fold","is","then","used","once","as","a","validation","while","the","k","-","1","remaining","folds","form","the","training","set",".","Parameters","--","--","--","--","--","n_splits",":","int",",","default=5","Number","of","folds",".","Must","be","at","least","2.","shuffle",":","boolean",",","optional","Whether","to","shuffle","the","data","before","splitting","into","batches",".","random_state",":","int",",","RandomState","instance","or","None",",","optional",",","default=None","If","int",",","random_state","is","the","seed","used","by","the","random","number","generator",";","If","RandomState","instance",",","random_state","is","the","random","number","generator",";","If","None",",","the","random","number","generator","is","the","RandomState","instance","used","by","`","np.random","`",".","Used","when","``","shuffle","``","==","True","."]
code: def _split(self, test_start, test_stop, n_samples, chunks, seeds):
      train_objs = []
      test_objs = []
      train_sizes = []
      test_sizes = []
  
      offset = 0
      for chunk, seed in zip(chunks, seeds):
          start, stop = offset, offset + chunk
  
          test_id_start = max(test_start, start)
          test_id_stop = min(test_stop, stop)
  
          if test_id_start < test_id_stop:
              test_objs.append(
                  dask.delayed(_generate_offset_idx)(
                      chunk, test_id_start, test_id_stop, offset, seed
                  )
              )
              test_sizes.append(test_id_stop - test_id_start)
  
          train_id_stop = min(test_id_start, stop)
          if train_id_stop > start:
              train_objs.append(
                  dask.delayed(_generate_offset_idx)(
                      chunk, start, train_id_stop, offset, seed
                  )
              )
              train_sizes.append(train_id_stop - start)
  
          train_id_start = max(test_id_stop, start)
          if train_id_start < stop:
              train_objs.append(
                  dask.delayed(_generate_offset_idx)(
                      chunk, train_id_start, stop, offset, seed
                  )
              )
              train_sizes.append(stop - train_id_start)
          offset = stop
  
      train_idx = da.concatenate(
          [
              da.from_delayed(obj, (train_size,), np.dtype("int"))
              for obj, train_size in zip(train_objs, train_sizes)
          ]
      )
  
      test_idx = da.concatenate(
          [
              da.from_delayed(obj, (test_size,), np.dtype("int"))
              for obj, test_size in zip(test_objs, test_sizes)
          ]
      )
  
      return train_idx, test_idx
  
imports: import itertools
  import logging
  import numbers
  import warnings
  import dask
  import dask.array
  import dask.dataframe
  import numpy
  import sklearn.model_selection
  from sklearn.model_selection._split import BaseCrossValidator, _validate_shuffle_split
  from sklearn.utils import check_random_state
  from dask_ml._compat import DASK_2130, DASK_VERSION
  from dask_ml.utils import check_array, check_matching_blocks
  from .._utils import draw_seed
label_desc: Use image node_id 3 for calling the KFold obj's underlying member method code with example usage: obj._split(test_start, test_stop, n_samples, chunks, seeds) and returns: train_idx,  test_idx