code: def group_protos(
      proto_list: List[fra.ForwardRateAgreement],
      config: "ForwardRateAgreementConfig" = None,
  ) -> Dict[str, List["ForwardRateAgreement"]]:
      """Creates a dictionary of grouped protos."""
      del config  # config does not impact the batching
      grouped_fras = {}
      for fra_proto in proto_list:
          h, _, _, _ = _get_hash(fra_proto)
          if h in grouped_fras:
              grouped_fras[h].append(fra_proto)
          else:
              grouped_fras[h] = [fra_proto]
      return grouped_fras
  
imports: from typing import Any, List, Dict, Tuple
  import tensorflow.compat.v2
  from tf_quant_finance.experimental.pricing_platform.framework import utils
  from tf_quant_finance.experimental.pricing_platform.framework.core import business_days
  from tf_quant_finance.experimental.pricing_platform.framework.core import currencies
  from tf_quant_finance.experimental.pricing_platform.framework.core import curve_types
  from tf_quant_finance.experimental.pricing_platform.framework.core import daycount_conventions
  from tf_quant_finance.experimental.pricing_platform.framework.core import rate_indices
  from tf_quant_finance.experimental.pricing_platform.framework.core import types
  from tf_quant_finance.experimental.pricing_platform.framework.rate_instruments import cashflow_streams
  from tf_quant_finance.experimental.pricing_platform.framework.rate_instruments import utils
  from tf_quant_finance.experimental.pricing_platform.framework.rate_instruments.interest_rate_swap import proto_utils
  from tf_quant_finance.experimental.pricing_platform.instrument_protos import forward_rate_agreement_pb2
  from tf_quant_finance.experimental.pricing_platform.instrument_protos import period_pb2
label_desc: Use image node_id 3 for calling a global function with example usage: group_protos(proto_list, config) and returns: grouped_fras