code: def __init__(
      self,
      task_name: str,
      task_name_with_subtasks: str,
      number_of_parallel_subtasks: int,
      max_number_of_parallel_subtasks: int,
      index_of_this_subtask: int,
      attempt_number: int,
      job_parameters: Dict[str, str],
      metric_group: MetricGroup,
      keyed_state_backend,
      in_batch_execution_mode: bool,
  ):
      self._task_name = task_name
      self._task_name_with_subtasks = task_name_with_subtasks
      self._number_of_parallel_subtasks = number_of_parallel_subtasks
      self._max_number_of_parallel_subtasks = (
          max_number_of_parallel_subtasks
      )
      self._index_of_this_subtask = index_of_this_subtask
      self._attempt_number = attempt_number
      self._job_parameters = job_parameters
      self._metric_group = metric_group
      self._keyed_state_backend = keyed_state_backend
      self._in_batch_execution_mode = in_batch_execution_mode
  
imports: from typing import Dict
  from pyflink.datastream import RuntimeContext
  from pyflink.datastream.state import ValueStateDescriptor, ValueState, ListStateDescriptor, ListState, MapStateDescriptor, MapState, ReducingStateDescriptor, ReducingState, AggregatingStateDescriptor, AggregatingState
  from pyflink.fn_execution.coders import from_type_info, MapCoder, GenericArrayCoder
  from pyflink.metrics import MetricGroup
label_desc: Use image node_id 1 to create a new StreamingRuntimeContext object from inherited base classes: RuntimeContext with example: obj = StreamingRuntimeContext(task_name, task_name_with_subtasks, number_of_parallel_subtasks, max_number_of_parallel_subtasks, index_of_this_subtask, attempt_number, job_parameters, metric_group, keyed_state_backend, in_batch_execution_mode)