import initfrom hiobas.connection import *from hiobas.model.mapper import *from hiobas.model.models import *from fs.connection import *from fs.model.mapper import *from fs.model.models import *import datetime#First make dict of persons from FS and SB, keyed on (fnr, pnr):fsp = dict([(person.getKey(), person) for person in fssession.query(FSPerson).all()])hbp = dict([(person.getFSkey(), person) for person in hbsession.query(HBStud).all()])#Now, we only need to look at those common to both systems:fsset = set(fsp)sbset = set(hbp)intersect = fsset.intersection(sbset)#Function computes diff tupledef maketuple(key): fsperson = fsp[key] sbperson = sbp[key] fnr = key[0] pnr = key[1] fspin = fsperson.personreg.personkode sbpin = sbperson.pinkode active = (fsperson.studprogstudent.studentstatkode == 'AKTIV' or fsperson.studprogstudent.studentstatkode == 'PERMISJON') and fsperson.kullklassestudent.status_aktiv == 'J' and fsperson.studprogstudent.dato_studierett_gyldig_til > datetime.date.today() equal = fspin == sbpin#Now, the fun part: For each common key, map out both pins, active status.#Format tuple (fnr, pnr, fspin, sbpin, active, equal flag)diff = {}for key in intersect: diff[key] = maketuple(key)