code: def __init__(self, params: Optional[OperationParameters] = None):
      super().__init__(params)
      self.n_jobs = determine_n_jobs(params.get("n_jobs", 1))
      self.feature_extractor = TopologicalFeaturesExtractor(
          persistence_diagram_extractor=PERSISTENCE_DIAGRAM_EXTRACTOR,
          persistence_diagram_features=PERSISTENCE_DIAGRAM_FEATURES,
      )
  
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 1 to create a new TopologicalFeaturesImplementation object from inherited base classes: DataOperationImplementation with example: obj = TopologicalFeaturesImplementation(params)