code: def make_ring_dict(self, galkey):
          
          galprop_rings = self.read_galprop_rings_yaml(galkey)
          galprop_run = galprop_rings['galprop_run']
          ring_limits = galprop_rings['ring_limits']
          comp_dict = galprop_rings['diffuse_comp_dict']
          remove_rings = galprop_rings.get('remove_rings', [])
          ring_dict = {}
          nring = len(ring_limits) - 1
          for source_name, source_value in comp_dict.items():
              base_dict = dict(source_name=source_name,
                               galkey=galkey,
                               galprop_run=galprop_run)
              for iring in range(nring):
                  sourcekey = "%s_%i" % (source_name, iring)
                  if sourcekey in remove_rings:
                      continue
                  full_key = "%s_%s" % (sourcekey, galkey)
                  rings = range(ring_limits[iring], ring_limits[iring + 1])
                  base_dict.update(dict(ring=iring,
                                        sourcekey=sourcekey,
                                        files=self.make_ring_filelist(source_value,
                                                                      rings, galprop_run),
                                        merged_gasmap=self.make_merged_name(sourcekey,
                                                                            galkey, False)))
                  ring_dict[full_key] = GalpropMergedRingInfo(**base_dict)
          self._ring_dicts[galkey] = ring_dict
          return ring_dict
docs: Make a dictionary mapping the merged component names to list of template files
  
          Parameters
          ----------
  
          galkey : str
              Unique key for this ring dictionary
  
          Returns `model_component.GalpropMergedRingInfo`