code: def runtime_apply_for_iterable_object(
      node: Node,
      origin_dict: Dict,
      input_dict: Dict,
      node_index: int,
      user_node_index: int,
  ):
      """
      This method will be invoked during runtime to do the shape consistency, which makes sure the activations in type of tuple or list
      is converted into the user node expected form.
      """
      rst = []
      for index, (
          origin_sharding_spec,
          target_sharding_spec,
      ) in enumerate(
          zip(
              origin_dict[node_index],
              input_dict[node_index][user_node_index],
          )
      ):
          rst.append(
              shape_consistency_manager.apply_for_autoparallel_runtime(
                  node[index],
                  origin_sharding_spec,
                  target_sharding_spec,
              )
          )
      rst = type(node)(rst)
      return rst
  
file_path: colossalai/colossalai/auto_parallel/passes/runtime_apply_pass.py
imports: from typing import Dict, List
  import torch
  from torch.fx.node import Node
  from colossalai._analyzer.fx.node_util import MetaInfo
  from colossalai.auto_parallel.tensor_shard.sharding_strategy import CommType, OperationDataType
  from colossalai.tensor.comm_spec import CommSpec
  from colossalai.tensor.shape_consistency import ShapeConsistencyManager
  from colossalai.tensor.sharding_spec import ShardingSpec
label_desc: Use image node_id 2 for calling a global function with example usage: runtime_apply_for_iterable_object(node, origin_dict, input_dict, node_index, user_node_index) and returns: rst