class_docstr: Trainable that runs a user function reporting results.
  
  This mode of execution does not support checkpoint/restore.
code: def _start(self):
      def entrypoint():
          try:
              return self._trainable_func(self.config)
          except Exception as e:
              raise StartTraceback from e
  
      # the runner thread is not started until the first call to _train
      self._runner = RunnerThread(
          target=entrypoint, error_queue=self._error_queue, daemon=True
      )
      # if not alive, try to start
      self._status_reporter._start()
      try:
          self._runner.start()
      except RuntimeError:
          # If this is reached, it means the thread was started and is
          # now done or has raised an exception.
          pass
  
imports: import inspect
  import logging
  import os
  from functools import partial
  from numbers import Number
  from typing import Any, Callable, Dict, Optional, Type
  from ray.air._internal.util import StartTraceback, RunnerThread
  import queue
  from ray.air.constants import _ERROR_FETCH_TIMEOUT
  import ray.train
  from ray.train._internal.checkpoint_manager import _TrainingResult
  from ray.train._internal.session import init_session, get_session, shutdown_session, _TrainSession, TrialInfo
  from ray.tune.execution.placement_groups import PlacementGroupFactory
  from ray.tune.result import DEFAULT_METRIC, RESULT_DUPLICATE, SHOULD_CHECKPOINT
  from ray.tune.trainable import Trainable
  from ray.tune.utils import _detect_checkpoint_function, _detect_config_single, _detect_reporter
  from ray.util.annotations import DeveloperAPI
label_desc: Use image node_id 3 for calling the FunctionTrainable obj's underlying member method code with example usage: obj._start() and returns: self