class_docstr: Base class for operations in nodes. Operations could be machine learning
  (or statistical) models or data operations
  
  Args:
      operation_type: name of the operation
code: def __init__(self, operation_type: str, **kwargs):
      self.operation_type = operation_type
  
      self._eval_strategy = None
      self.operations_repo: Optional[OperationTypesRepository] = None
      self.fitted_operation = None
  
      self.log = default_log(self)
  
imports: from abc import abstractmethod
  from typing import Any, Dict, Optional, Union
  from golem.core.log import default_log
  from golem.serializers.serializer import register_serializable
  from fedot.core.data.data import InputData, OutputData
  from fedot.core.operations.hyperparameters_preprocessing import HyperparametersPreprocessor
  from fedot.core.operations.operation_parameters import OperationParameters
  from fedot.core.repository.operation_types_repository import OperationMetaInfo
  from fedot.core.repository.operation_types_repository import OperationTypesRepository
  from fedot.core.repository.tasks import Task, TaskTypesEnum, compatible_task_types
  from fedot.utilities.custom_errors import AbstractMethodNotImplementError
label_desc: Use image node_id 1 to create a new Operation object  with example: obj = Operation(operation_type)