code: def load_source(self, src, build_index=True, merge_sources=True,
                      **kwargs):
          
          src = copy.deepcopy(src)
          name = src.name.replace(' ', '').lower()
  
          min_sep = kwargs.get('min_separation', None)
  
          if min_sep is not None:
  
              sep = src.skydir.separation(self._src_skydir).deg
              if len(sep) > 0 and np.min(sep) < min_sep:
                  return
  
          match_srcs = self.match_source(src)
  
          if len(match_srcs) == 1:
  
              # self.logger.debug('Found matching source for %s : %s',
              #                  src.name, match_srcs[0].name)
  
              if merge_sources:
                  match_srcs[0].update_from_source(src)
              else:
                  match_srcs[0].add_name(src.name)
  
              self._add_source_alias(src.name.replace(' ', '').lower(),
                                     match_srcs[0])
              return
          elif len(match_srcs) > 2:
              raise Exception('Multiple sources with name %s' % name)
  
          self._add_source_alias(src.name, src)
  
          for name in src.names:
              self._add_source_alias(name.replace(' ', '').lower(), src)
  
          if isinstance(src, Source):
              self._srcs.append(src)
          else:
              self._diffuse_srcs.append(src)
  
          if build_index:
              self._build_src_index()
docs: Load a single source.
  
          Parameters
          ----------
  
          src : `~fermipy.roi_model.Source`
             Source object that will be added to the ROI.
  
          merge_sources : bool        
             When a source matches an existing source in the model
             update that source with the properties of the new source.
  
          build_index : bool 
             Re-make the source index after loading this source.