docs: def check_args(args):
      """
      Parse arguments and check if the arguments are valid
  
      """
      if not os.path.exists(args.fd):
          print("Not a valid path", args.fd, file=ERROR_LOG)
          return [], [], False
      if args.fl is not None:
          # we already ensure the file can be opened and opened the file
          file_line = args.fl.readline()
          amr_ids = file_line.strip().split()
      elif args.f is None:
          print("No AMR ID was given", file=ERROR_LOG)
          return [], [], False
      else:
          amr_ids = args.f
      names = []
      check_name = True
      if args.p is None:
          names = get_names(args.fd, amr_ids)
          # no need to check names
          check_name = False
          if len(names) == 0:
              print("Cannot find any user who tagged these AMR", file=ERROR_LOG)
              return [], [], False
          else:
              names = args.p
      if len(names) == 0:
          print("No user was given", file=ERROR_LOG)
          return [], [], False
      if len(names) == 1:
          print("Only one user is given. Smatch calculation requires at least two users.", file=ERROR_LOG)
          return [], [], False
      if "consensus" in names:
          con_index = names.index("consensus")
          names.pop(con_index)
          names.append("consensus")
      # check if all the AMR_id and user combinations are valid
      if check_name:
          pop_name = []
          for i, name in enumerate(names):
              for amr in amr_ids:
                  amr_path = args.fd + name + "/" + amr + ".txt"
                  if not os.path.exists(amr_path):
                      print("User", name, "fails to tag AMR", amr, file=ERROR_LOG)
                      pop_name.append(i)
                      break
          if len(pop_name) != 0:
              pop_num = 0
              for p in pop_name:
                  print("Deleting user", names[p - pop_num], "from the name list", file=ERROR_LOG)
                  names.pop(p - pop_num)
                  pop_num += 1
          if len(names) < 2:
              print("Not enough users to evaluate. Smatch requires >2 users who tag all the AMRs", file=ERROR_LOG)
              return "", "", False
      return amr_ids, names, True