code: def of(runtime_context_proto, metric_group, keyed_state_backend=None):
      return StreamingRuntimeContext(
          runtime_context_proto.task_name,
          runtime_context_proto.task_name_with_subtasks,
          runtime_context_proto.number_of_parallel_subtasks,
          runtime_context_proto.max_number_of_parallel_subtasks,
          runtime_context_proto.index_of_this_subtask,
          runtime_context_proto.attempt_number,
          {
              p.key: p.value
              for p in runtime_context_proto.job_parameters
          },
          metric_group,
          keyed_state_backend,
          runtime_context_proto.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 15 for calling the StreamingRuntimeContext obj's underlying member method code with example usage: obj.of(runtime_context_proto, metric_group, keyed_state_backend) and returns: StreamingRuntimeContext