Source code for mapof.roommates.persistence.instance_exports


from mapof.core.glossary import *
from mapof.core.utils import *
from collections import Counter


[docs] def export_instance_to_a_file(experiment): """ Store votes in a file """ path_to_folder = os.path.join(os.getcwd(), "experiments", experiment.experiment_id, "instances") make_folder_if_do_not_exist(path_to_folder) path_to_file = os.path.join(path_to_folder, f'{experiment.instance_id}.ri') with open(path_to_file, 'w') as file_: if experiment.culture_id in NICE_NAME: file_.write("# " + NICE_NAME[experiment.culture_id] + " " + str(experiment.params) + "\n") else: file_.write("# " + experiment.culture_id + " " + str(experiment.params) + "\n") file_.write(str(experiment.num_agents) + "\n") for i in range(experiment.num_agents): file_.write(str(i) + ', a' + str(i) + "\n") c = Counter(map(tuple, experiment.votes)) counted_votes = [[count, list(row)] for row, count in c.items()] file_.write(str(experiment.num_agents) + ', ' + str(experiment.num_agents) + ', ' + str(len(counted_votes)) + "\n") for i in range(len(counted_votes)): file_.write(str(counted_votes[i][0]) + ', ') for j in range(len(counted_votes[i][1])): file_.write(str(int(counted_votes[i][1][j]))) if j < len(counted_votes[i][1]) - 1: file_.write(", ") file_.write("\n")