class_docstr: Class for checking types in input data. Also perform conversion for columns with types conflicts
class_docstr_tok: ["Class","for","checking","types","in","input","data",".","Also","perform","conversion","for","columns","with","types","conflicts"]
docstr: Prepare information about columns in a form of dictionary
  Dictionary has two keys: 'target' and 'features'
docstr_tok: ["Prepare","information","about","columns","in","a","form","of","dictionary","Dictionary","has","two","keys",":","'target","'","and","'features","'"]
code: def prepare_column_types_info(
      self,
      predictors: np.ndarray,
      target: np.ndarray = None,
      task: Task = None,
  ) -> dict:
      """Prepare information about columns in a form of dictionary
      Dictionary has two keys: 'target' and 'features'
      """
      if self.features_columns_info.empty:
          # Information about column types is empty - there is a need to launch algorithm to collect info
          self.features_columns_info = define_column_types(predictors)
          predictors = self.feature_types_converting(
              features=predictors
          )
      if (
          self.target_columns_info.empty
          and task.task_type is not TaskTypesEnum.ts_forecasting
      ):
          self.target_columns_info = define_column_types(target)
          target = self.target_types_converting(
              target=target, task=task
          )
  
      feature_type_ids = _generate_list_with_types(
          self.features_columns_info, self.features_converted_columns
      )
      self._check_columns_vs_types_number(predictors, feature_type_ids)
  
      if (
          target is None
          or task.task_type is TaskTypesEnum.ts_forecasting
      ):
          return {"features": feature_type_ids}
      else:
          target_type_ids = _generate_list_with_types(
              self.target_columns_info, self.target_converted_columns
          )
          self._check_columns_vs_types_number(target, target_type_ids)
          return {
              "features": feature_type_ids,
              "target": target_type_ids,
          }
  
imports: from __future__ import annotations
  from collections.abc import Sequence
  from typing import TYPE_CHECKING, Dict, List, Optional, Tuple
  import numpy
  import pandas
  from golem.core.log import LoggerAdapter, default_log
  from fedot.core.repository.tasks import Task, TaskTypesEnum
label_desc: Use image node_id 7 for calling the TableTypesCorrector obj's underlying member method code with example usage: obj.prepare_column_types_info(predictors, target, task) and returns: dict, dict