code: def get_sources(self, skydir=None, distance=None, cuts=None,
                      minmax_ts=None, minmax_npred=None,
                      exclude=None, square=False, coordsys='CEL',
                      names=None):
          
  
          if skydir is None:
              skydir = self.skydir
  
          if exclude is None:
              exclude = []
  
          rsrc, srcs = self.get_sources_by_position(skydir,
                                                    distance,
                                                    square=square,
                                                    coordsys=coordsys)
  
          o = []
          for s in srcs + self.diffuse_sources:
  
              if names and s.name not in names:
                  continue
              if s.name in exclude:
                  continue
              if not s.check_cuts(cuts):
                  continue
              ts = s['ts']
              npred = s['npred']
  
              if not utils.apply_minmax_selection(ts, minmax_ts):
                  continue
              if not utils.apply_minmax_selection(npred, minmax_npred):
                  continue
              o.append(s)
  
          return o
docs: Retrieve list of source objects satisfying the following
          selections:
  
          * Angular separation from ``skydir`` or ROI center (if
               ``skydir`` is None) less than ``distance``.           
  
          * Cuts on source properties defined in ``cuts`` list.
  
          * TS and Npred in range specified by ``minmax_ts`` and ``minmax_npred``.
  
          * Name matching a value in ``names``
  
          Sources can be excluded from the selection by adding their
          name to the ``exclude`` list.
  
          Returns
          -------
          srcs : list
              List of source objects.