code: def make_diffuse_comp_info_dict(**kwargs):
      
      library_yamlfile = kwargs.pop('library', 'models/library.yaml')
      components = kwargs.pop('components', None)
      if components is None:
          comp_yamlfile = kwargs.pop('comp', 'config/binning.yaml')
          components = Component.build_from_yamlfile(comp_yamlfile)
      gmm = kwargs.get('GalpropMapManager', GalpropMapManager(**kwargs))
      dmm = kwargs.get('DiffuseModelManager', DiffuseModelManager(**kwargs))
      if library_yamlfile is None or library_yamlfile == 'None':
          diffuse_comps = {}
      else:
          diffuse_comps = DiffuseModelManager.read_diffuse_component_yaml(
              library_yamlfile)
      diffuse_comp_info_dict = dmm.make_diffuse_comp_info_dict(
          diffuse_comps, components)
      for diffuse_value in diffuse_comps.values():
          if diffuse_value is None:
              continue
          if diffuse_value['model_type'] != 'galprop_rings':
              continue
          versions = diffuse_value['versions']
          for version in versions:
              galprop_dict = gmm.make_diffuse_comp_info_dict(version)
              diffuse_comp_info_dict.update(galprop_dict)
  
      return dict(comp_info_dict=diffuse_comp_info_dict,
                  GalpropMapManager=gmm,
                  DiffuseModelManager=dmm)
docs: Build and return the information about the diffuse components