code: def transform(self, input_data: InputData) -> OutputData:
      parallel = Parallel(
          n_jobs=self.n_jobs, verbose=0, pre_dispatch="2*n_jobs"
      )
      feature_matrix = parallel(
          delayed(self.generate_features_from_ts)(sample)
          for sample in input_data.features
      )
      predict = self._clean_predict(
          np.array([ts for ts in feature_matrix])
      )
      return predict
  
file_path: FEDOT/fedot/core/operations/evaluation/operation_implementations/data_operations/topological/topological_extractor.py
imports: import math
  import sys
  from multiprocessing import cpu_count
  from typing import Optional
  import numpy
  from joblib import Parallel, delayed
  from fedot.core.data.data import InputData, OutputData
  from fedot.core.operations.evaluation.operation_implementations.data_operations.topological.point_cloud import TopologicalTransformation
  from fedot.core.operations.evaluation.operation_implementations.data_operations.topological.topological import HolesNumberFeature, MaxHoleLifeTimeFeature, RelevantHolesNumber, AverageHoleLifetimeFeature, SumHoleLifetimeFeature, PersistenceEntropyFeature, SimultaneousAliveHolesFeature, AveragePersistenceLandscapeFeature, BettiNumbersSumFeature, RadiusAtMaxBNFeature, PersistenceDiagramsExtractor, TopologicalFeaturesExtractor
  from fedot.core.operations.evaluation.operation_implementations.implementation_interfaces import DataOperationImplementation
  from fedot.core.operations.operation_parameters import OperationParameters
  from golem.utilities.utilities import determine_n_jobs
label_desc: Use image node_id 3 for calling the TopologicalFeaturesImplementation obj's underlying member method code with example usage: obj.transform(input_data) and returns: predict