class_docstr: Class for selecting optimal data processing strategies based on type of data.
  Available data sources are:
      * numpy array
      * pandas DataFrame
      * string (path to csv file)
      * InputData (FEDOT dataclass)
  
  Data preprocessing such a class performing also
class_docstr_tok: ["Class","for","selecting","optimal","data","processing","strategies","based","on","type","of","data",".","Available","data","sources","are",":","*","numpy","array","*","pandas","DataFrame","*","string","(","path","to","csv","file",")","*","InputData","(","FEDOT","dataclass",")","Data","preprocessing","such","a","class","performing","also"]
code: def __init__(self, task: Task, use_input_preprocessing: bool = True):
      self.task = task
  
      self._recommendations = {}
      self.preprocessor = DummyPreprocessor()
      if use_input_preprocessing:
          self.preprocessor = DataPreprocessor()
  
          # Dictionary with recommendations (e.g. 'cut' for cutting dataset, 'label_encoded'
          # to encode features using label encoder). Parameters for transformation provided also
          self._recommendations = {
              "cut": self.preprocessor.cut_dataset,
              "label_encoded": self.preprocessor.label_encoding_for_fit,
          }
  
      self.log = default_log(self)
  
imports: import sys
  from datetime import datetime
  from typing import Dict, Union
  from typing import Optional
  import numpy
  from golem.core.log import default_log
  from fedot.api.api_utils.data_definition import data_strategy_selector, FeaturesType, TargetType
  from fedot.core.data.data import InputData, OutputData, data_type_is_table
  from fedot.core.data.data_preprocessing import convert_into_column
  from fedot.core.data.multi_modal import MultiModalData
  from fedot.core.pipelines.pipeline import Pipeline
  from fedot.core.pipelines.ts_wrappers import in_sample_ts_forecast, convert_forecast_to_output
  from fedot.core.repository.tasks import Task, TaskTypesEnum
  from fedot.core.utils import convert_memory_size
  from fedot.preprocessing.dummy_preprocessing import DummyPreprocessor
  from fedot.preprocessing.preprocessing import DataPreprocessor
label_desc: Use image node_id 1 to create a new ApiDataProcessor object  with example: obj = ApiDataProcessor(task, use_input_preprocessing)