class_docstr: ``InputBase`` is the base class for the :class:`~flash.core.data.io.input.Input` and
  :class:`~flash.core.data.io.input.IterableInput` dataset implementations in Flash. These datasets are constructed
  via the ``load_data`` and ``load_sample`` hooks, which allow a single dataset object to include custom loading logic
  according to the running stage (e.g. train, validate, test, predict).
  
  Args:
      running_stage: The running stage for which the input will be used.
      *args: Any arguments that are to be passed to the ``load_data`` hook.
      **kwargs: Any additional keyword arguments to pass to the ``load_data`` hook.
code: def __init__(
      self, running_stage: RunningStage, *args: Any, **kwargs: Any
  ) -> None:
      super().__init__(running_stage=running_stage)
  
      self.data = None
      if len(args) >= 1 and args[0] is not None:
          self.data = getattr(
              self, f"{_STAGES_PREFIX[running_stage]}_load_data"
          )(*args, **kwargs)
  
imports: import functools
  import os
  from enum import Enum
  from typing import Any, Dict, Iterable, List, Sequence, Tuple, Union, cast
  from pytorch_lightning.utilities.enums import LightningEnum
  from torch.utils.data import Dataset
  from flash.core.data.properties import Properties
  from flash.core.data.utils import _STAGES_PREFIX
  from flash.core.utilities.stages import RunningStage
label_desc: Use image node_id 1 to create a new InputBase object from inherited base classes: Properties with example: obj = InputBase(running_stage)