DaveM@12: #!/usr/bin/env python DaveM@12: DaveM@12: import csv DaveM@12: DaveM@12: DaveM@12: def readFile(filename): DaveM@12: text = [] DaveM@12: with open(filename) as fp: DaveM@12: line = fp.readline() DaveM@12: text.append(line.strip()) DaveM@12: while line: DaveM@12: line = fp.readline() DaveM@12: text.append(line.strip()) DaveM@12: return text DaveM@12: DaveM@12: def parseCompatDef(filename): DaveM@12: comList = readFile(filename) DaveM@12: compat = {} DaveM@12: for com in comList: DaveM@12: c = com.split(',') DaveM@12: # print c DaveM@12: if len(c) == 4: DaveM@12: if len(c[1]) > 1: DaveM@12: for subset in c[1].split(' '): DaveM@12: key = sorted((c[0],c[2])) DaveM@12: key.append(subset) DaveM@12: compat[tuple(key)] = c[3] DaveM@12: elif len(c[1]) == 0 : DaveM@12: key = (c[0],c[2]) DaveM@12: compat[key] = c[3] DaveM@12: return compat DaveM@12: # pdb.set_trace() DaveM@12: DaveM@12: def applyCompatScore(people,rules): DaveM@12: # ruleKeys = rules.keys() DaveM@12: for person in people: DaveM@12: print "newPerson: " + str(person['ID']) DaveM@12: person['score'] = 0 DaveM@12: for pRule in person.keys(): DaveM@12: if pRule in rules: DaveM@12: person['score'] += int(rules[pRule]) DaveM@12: print pRule, rules[pRule] DaveM@12: print person['score'] DaveM@12: