def parse_args_modify(args, race_info): set_seed = False #keep track of whether we've found args for each field set_seeded = False set_char = False set_desc = False set_sd = False set_fp = False while args: next_cmd_args = clparse.pop_command(args) if not next_cmd_args: next_cmd_args.append(args[0]) args.pop(0) if _parse_seed(next_cmd_args, race_info): if set_seed: return None else: set_seed = True elif _parse_seeded(next_cmd_args, race_info): if set_seeded: return None else: set_seeded = True elif _parse_char(next_cmd_args, race_info): if set_char: return None else: set_char = True ## elif parse_sudden_death(args, race_info): ## if set_sd: ## return False ## else: ## set_seeded = True ## elif parse_flagplant(args, race_info): ## if set_fp: ## return False ## else: ## set_seeded = True elif _parse_desc(next_cmd_args, race_info): if set_desc: return None else: set_desc = True else: return None if race_info.seeded: race_info.seed_fixed = set_seed if not set_seed: race_info.seed = seedgen.get_new_seed() elif set_seed and set_seeded: #user set a seed and asked for unseeded, so throw up our hands return None elif set_seed: race_info.seeded = True return race_info
def parse_args(args): #user_prefs is a list of preferences we should change user_prefs = UserPrefs() while args: next_cmd_args = clparse.pop_command(args) if not next_cmd_args: next_cmd_args.append(args[0]) args.pop(0) #Parse each possible command _parse_show_spoilerchat(next_cmd_args, user_prefs) _parse_daily_alert(next_cmd_args, user_prefs) _parse_race_alert(next_cmd_args, user_prefs) #end while return user_prefs