code: def parse_exclusions(exclusions):
      
      fname = fileutil.osfn(exclusions)
      if os.path.exists(fname):
          with open(fname) as f:
              flines = f.readlines()
      else:
          print('No valid exclusions file "', fname, '" could be found!')
          print('Skipping application of exclusions files to source catalogs.')
          return None
  
      # Parse out lines which can be interpreted as positions and distances
      exclusion_list = []
      units = None
      for line in flines:
          if line[0] == '#' or 'global' in line[:6]:
              continue
          # Only interpret the part of the line prior to the comment
          # if a comment has been attached to the line
          if '#' in line:
              line = line.split('#')[0].rstrip()
  
          if units is None:
              units = 'pixels'
              if line[:3] in ['fk4', 'fk5', 'sky']:
                  units = 'sky'
              if line[:5] in ['image', 'physi', 'pixel']:
                  units = 'pixels'
              continue
  
          if 'circle(' in line:
              nline = line.replace('circle(', '')
              nline = nline.replace(')', '')
              nline = nline.replace('"', '')
              vals = nline.split(',')
              if ':' in vals[0]:
                  posval = vals[0] + ' ' + vals[1]
              else:
                  posval = (float(vals[0]), float(vals[1]))
          else:
              # Try to interpret unformatted line
              if ',' in line:
                  split_tok = ','
              else:
                  split_tok = ' '
              vals = line.split(split_tok)
              if len(vals) == 3:
                  if ':' in vals[0]:
                      posval = vals[0] + ' ' + vals[1]
                  else:
                      posval = (float(vals[0]), float(vals[1]))
              else:
                  continue
          exclusion_list.append(
              {'pos': posval, 'distance': float(vals[2]), 'units': units}
          )
      return exclusion_list
docs: Read in exclusion definitions from file named by 'exclusions'
          and return a list of positions and distances