class_docstr: Configuration used to map multiple inputs to different part of the model
  
  Assumptions:
  - the same trunk is used to extract the features (but we can extract the features
    at different levels for each of the inputs)
  - by default, each input correspond to a different head (but this can be changed)
  
  Supported input formats:
  
      List (Legacy format):
      ["input_key", [list of features heads is applied on]]
  
      Dict (Flexible format):
      ["input_key", {"feat_names": [], "head_index": 0, "additional_keys":["mask"]}]
code: def _parse_entry(
      self, idx: int, mapping_config: AttrDict, num_heads: int
  ):
      assert len(mapping_config) == 2, "Invalid format"
      if isinstance(mapping_config[1], list):
          input_key = self._add_key(mapping_config[0])
          self.feat_names[input_key] = mapping_config[1]
          self.head_index[input_key] = min(idx, num_heads - 1)
          self.additional_keys[input_key] = []
      else:
          input_key = self._add_key(mapping_config[0])
          self.feat_names[input_key] = mapping_config[1]["feat_names"]
          self.head_index[input_key] = mapping_config[1].get(
              "head_index", min(idx, num_heads - 1)
          )
          self.additional_keys[input_key] = mapping_config[1].get(
              "additional_keys", []
          )
  
imports: from dataclasses import dataclass, field
  from typing import Dict, List, Optional
  from vissl.config import AttrDict
label_desc: Use image node_id 2 for calling the MultipleInputMapping obj's underlying member method code with example usage: obj._parse_entry(idx, mapping_config, num_heads) without return types