def METHOD_NAME(
  route: str, sidx: int, daemons: Union[str, Iterable[str]] = "all", outdir: str = FAKEDATA,
  upload: bool = False, use_route_meta: bool = False, disable_tqdm: bool = False
) -> str:
  lr, frs = setup_data_readers(route, sidx, use_route_meta)
  output_logs = regen_segment(lr, frs, daemons, disable_tqdm=disable_tqdm)
  log_dir = os.path.join(outdir, time.strftime("%Y-%m-%d--%H-%M-%S--0", time.gmtime()))
  rel_log_dir = os.path.relpath(log_dir)
  rpath = os.path.join(log_dir, "rlog.bz2")
  os.makedirs(log_dir)
  save_log(rpath, output_logs, compress=True)
  print("\n\n", "*"*30, "\n\n", sep="")
  print("New route:", rel_log_dir, "\n")
  if not check_openpilot_enabled(output_logs):
    raise Exception("Route did not engage for long enough")
  if upload:
    upload_route(rel_log_dir)
  return rel_log_dir