code: def __init__(
      self, *args, name: str = None, n_outputs: int = 1, **kwargs
  ):
      # Necessary to use this class as a mixin
      super().__init__(*args, **kwargs)  # type: ignore
  
      # Use name as is if it was specified by the user, to avoid the user a surprise
      self._name = (
          name if name is not None else self._generate_unique_name()
      )
      # TODO: Add self.n_inputs? Could be used to check inputs in __call__
      self._n_outputs = n_outputs
      self._nodes = []
  
imports: import inspect
  import warnings
  from typing import Any, Callable, Dict, List, Optional, Union, TYPE_CHECKING
  from baikal._core.data_placeholder import DataPlaceholder, is_data_placeholder_list
  from baikal._core.utils import listify, make_name, make_repr
label_desc: Use image node_id 1 to create a new _StepBase object  with example: obj = _StepBase()