code: def merge(self) -> SupplementaryData:
      return SupplementaryData(
          is_main_target=self.main_output.supplementary_data.is_main_target,
          data_flow_length=self.calculate_dataflow_len(),
          features_mask=self.prepare_parent_mask(),
          previous_operations=None,  # is set by Node after merge
          obligatorily_preprocessed=self.all_preprocessed(),
          optionally_preprocessed=self.all_preprocessed(
              is_obligatory=False
          ),
          non_int_idx=None,  # is set elsewhere (by preprocessor or during pipeline fit/predict)
          col_type_ids=self.merge_column_types(),
      )
  
file_path: FEDOT/fedot/core/data/merge/supplementary_data_merger.py
imports: from typing import Dict, List
  import numpy
  from golem.core.log import default_log
  from fedot.core.data.data import OutputData
  from fedot.core.data.supplementary_data import SupplementaryData
  from fedot.core.repository.dataset_types import DataTypesEnum
  from fedot.preprocessing.data_types import TableTypesCorrector
label_desc: Use image node_id 2 for calling the SupplementaryDataMerger obj's underlying member method code with example usage: obj.merge() and returns: SupplementaryData