def METHOD_NAME(argv):
  """
  Uses pygama's amazing DataSet class to process runs for different
  data sets, with arbitrary configuration options defined in a JSON file.
  C. Wiseman, 2019/04/09
  """
  run_db = './runDB.json'
  # -- parse args --
  par = argparse.ArgumentParser(description="test data processing suite")
  arg, st, sf = par.add_argument, "store_true", "store_false"
  arg("-ds", nargs='*', action="store", help="load runs for a DS")
  arg("-r", "--run", nargs=1, help="load a single run")
  arg("-t0", "--daq_to_raw", action=st, help="run ProcessRaw on list")
  arg("-t1", "--raw_to_dsp", action=st, help="run RunDSP on list")
  arg("-t", "--test", action=st, help="test mode, don't run")
  arg("-n", "--nevt", nargs='?', default=np.inf, help="limit max num events")
  arg("-i", "--ioff", nargs='?', default=0, help="start at index [i]")
  arg("-v", "--verbose", action=st, help="set verbose output")
  arg("-o", "--ovr", action=st, help="overwrite existing files")
  arg("-m", "--nomp", action=sf, help="don't use multiprocessing")
  args = vars(par.parse_args())
  # -- declare the DataSet --
  if args["ds"]:
    ds_lo = int(args["ds"][0])
    try:
      ds_hi = int(args["ds"][1])
    except:
      ds_hi = None
    ds = DataSet(ds_lo, ds_hi, md=run_db, v=args["verbose"])
    if args["run"]:
      ds = DataSet(run=int(args["run"][0]), md=run_db, v=args["verbose"])
    # -- start processing --
    if args["daq_to_raw"]:
      daq_to_raw(ds, args["ovr"], args["nevt"], args["verbose"], args["test"])
    if args["raw_to_dsp"]:
      raw_to_dsp(ds, args["ovr"], args["nevt"], args["ioff"], args["nomp"], args["verbose"],
            args["test"])