code: def divide_data_categorical_numerical(
      input_data: InputData,
      categorical_ids: list,
      non_categorical_ids: list,
  ) -> Tuple[Optional[InputData], Optional[InputData]]:
      """
      Split tabular InputData into two parts: with numerical and categorical features
      using list with ids of categorical and numerical features.
      """
      numerical_input = input_data.subset_features(non_categorical_ids)
      categorical_input = input_data.subset_features(categorical_ids)
      if numerical_input or categorical_input:
          return numerical_input, categorical_input
      else:
          prefix = "InputData contains no categorical and no numerical features."
          raise ValueError(
              f"{prefix} Check data for Nans and inf values"
          )
  
file_path: FEDOT/fedot/core/data/data_preprocessing.py
imports: from typing import Optional, Tuple
  import numpy
  import pandas
  from fedot.core.data.data import InputData, data_type_is_multi_ts, data_type_is_table, data_type_is_ts
  from fedot.core.repository.dataset_types import DataTypesEnum
  from fedot.preprocessing.data_types import TYPE_TO_ID
label_desc: Use image node_id 5 for calling a global function with example usage: divide_data_categorical_numerical(input_data, categorical_ids, non_categorical_ids) and returns: numerical_input,  categorical_input