def convert_units(config): result = [] for army in config: units = [] for (name_or_id, count) in army['units'].items(): units.append(Constants.Unit(name_or_id, count)) result.append(Constants.Army(army['commander'], army['items'], units)) return result
def read_army(prompt, mapper=None, quit="."): commander_type = read_nonempty("Commander name/ID: ", quit=quit) items = read_list("Items: ", quit=quit) units = read_repeated("Units\n", make_multiple_reader("Unit name/ID, quantity: ", 2, [None, int], quit=quit), quit=quit, mapper=lambda x: Constants.Unit(*x)) return Constants.Army(commander_type, items, units)