def parse(pref_fname="preferences.txt", groups_fname="groups.txt", terms_fname="terms.txt", assign_fname="output.txt"): preferences = parse_preferences(open(pref_fname).read()) assignments = parse_assignments(open(assign_fname).read()) groups = parse_groups(open(groups_fname).read()) subjects, terms = parse_subjects_and_terms(open(terms_fname).read()) return Configuration(preferences, groups, subjects, terms), assignments
def test_parsing(self): assignments = parse_assignments(''' [258597] 645273:645342 645275:645366 [258590] 645274:645355 645275:645368''') self.assertEquals(assignments, frozenset([ Assignment(person=Person(id=258597)), Assignment(person=Person(id=258590)) ])) mapping = {assignment.person.id: assignment.subject_ids_to_term_ids for assignment in assignments} self.assertEquals(mapping, { 258590: {645274: 645355, 645275: 645368}, 258597: {645273: 645342, 645275: 645366} })