class_docstr: Class to execute target functions from scripts. Uses `Popen` to execute the script in a
   subprocess.
  
  The following example shows how the script is called:
  ``target_function --instance=test --instance_features=test --seed=0 --hyperparameter1=5323``
  
  The script must return an echo in the following form (white-spaces are removed):
  ``cost=0.5; runtime=0.01; status=SUCCESS; additional_info=test`` (single-objective)
  ``cost=0.5, 0.4; runtime=0.01; status=SUCCESS; additional_info=test`` (multi-objective)
  
  The status must be a string and must be one of the ``StatusType`` values. However, ``runtime``,
  ``status`` and ``additional_info`` are optional.
  
  Note
  ----
  Everytime an instance is passed, also an instance feature in form of a comma-separated list
  (no spaces) of floats is passed. If no instance feature for the instance is given,
  an empty list is passed.
  
  Parameters
  ----------
  target_function : Callable
      The target function.
  scenario : Scenario
  required_arguments : list[str]
      A list of required arguments, which are passed to the target function.
code: def __init__(
      self,
      target_function: str,
      scenario: Scenario,
      required_arguments: list[str] = [],
  ):
      super().__init__(
          scenario=scenario, required_arguments=required_arguments
      )
      self._target_function = target_function
  
      # Check if target function is callable
      if not isinstance(self._target_function, str):
          raise TypeError(
              "Argument `target_function` must be a string but is type"
              f"`{type(self._target_function)}`."
          )
  
      if self._scenario.trial_memory_limit is not None:
          logger.warning(
              "Trial memory limit is not supported for script target functions."
          )
  
      if self._scenario.trial_walltime_limit is not None:
          logger.warning(
              "Trial walltime limit is not supported for script target functions."
          )
  
file_path: SMAC3/smac/runner/target_function_script_runner.py
imports: from __future__ import annotations
  from typing import Any
  import time
  from subprocess import PIPE, Popen
  from ConfigSpace import Configuration
  from smac.runner.abstract_runner import StatusType
  from smac.runner.abstract_serial_runner import AbstractSerialRunner
  from smac.scenario import Scenario
  from smac.utils.logging import get_logger
label_desc: Use image node_id 1 to create a new TargetFunctionScriptRunner object from inherited base classes: AbstractSerialRunner with example: obj = TargetFunctionScriptRunner(target_function, scenario, required_arguments)