class_docstr: Splitter of data that provides generator of test-train splits.
  Can provide hold-out validation and k-fold validation.
  
  :param cv_folds: Number of folds on data for cross-validation.
  If provided, then cross validation is used. Otherwise, hold-out validation is used.
  :param validation_blocks: Validation blocks count.
  Applied only for time series data.
  If not provided, then value will be calculated.
  :param split_ratio: Ratio of data for splitting.
  Applied only in case of hold-out split.
  If not provided, then default split ratios will be used.
  :param shuffle: Is shuffling required for data.
  :param stratify: If True then stratification is used for samples
  :param random_seed: Random seed for shuffle.
  :param log: Log for logging.
class_docstr_tok: ["Splitter","of","data","that","provides","generator","of","test-train","splits",".","Can","provide","hold-out","validation","and","k-fold","validation",".",":","param","cv_folds",":","Number","of","folds","on","data","for","cross-validation",".","If","provided",",","then","cross","validation","is","used",".","Otherwise",",","hold-out","validation","is","used",".",":","param","validation_blocks",":","Validation","blocks","count",".","Applied","only","for","time","series","data",".","If","not","provided",",","then","value","will","be","calculated",".",":","param","split_ratio",":","Ratio","of","data","for","splitting",".","Applied","only","in","case","of","hold-out","split",".","If","not","provided",",","then","default","split","ratios","will","be","used",".",":","param","shuffle",":","Is","shuffling","required","for","data",".",":","param","stratify",":","If","True","then","stratification","is","used","for","samples",":","param","random_seed",":","Random","seed","for","shuffle",".",":","param","log",":","Log","for","logging","."]
docstr: Build trivial data producer for hold-out validation
  that always returns same data split. Equivalent to 1-fold validation.
docstr_tok: ["Build","trivial","data","producer","for","hold-out","validation","that","always","returns","same","data","split",".","Equivalent","to","1-fold","validation","."]
code: def _build_holdout_producer(self, data: InputData) -> DataSource:
      """
      Build trivial data producer for hold-out validation
      that always returns same data split. Equivalent to 1-fold validation.
      """
  
      train_data, test_data = train_test_data_setup(
          data,
          split_ratio=self.split_ratio,
          stratify=self.stratify,
          random_seed=self.random_seed,
          shuffle=self.shuffle,
          validation_blocks=self.validation_blocks,
      )
  
      if RemoteEvaluator().is_enabled:
          init_data_for_remote_execution(train_data)
  
      return partial(self._data_producer, train_data, test_data)
  
file_path: FEDOT/fedot/core/optimisers/objective/data_source_splitter.py
imports: from functools import partial
  from typing import Optional, Union
  from golem.core.log import default_log
  from fedot.core.constants import default_data_split_ratio_by_task
  from fedot.core.data.data import InputData
  from fedot.core.data.data_split import train_test_data_setup, _are_stratification_allowed
  from fedot.core.data.multi_modal import MultiModalData
  from fedot.core.optimisers.objective.data_objective_eval import DataSource
  from fedot.core.repository.tasks import TaskTypesEnum
  from fedot.remote.remote_evaluator import RemoteEvaluator, init_data_for_remote_execution
  from fedot.core.data.cv_folds import cv_generator
label_desc: Use image node_id 4 for calling the DataSourceSplitter obj's underlying member method code with example usage: obj._build_holdout_producer(data) and returns: partial