def write_affiliation_file(file_, affiliations, assignments): """ Write an OMP affiliations file to the specified file handle. """ # Make affiliation lookup table. affiliation_codes = {} config = get_config() for affiliation_code in config.options('affiliation_code'): affiliation_name = config.get('affiliation_code', affiliation_code) for affiliation in affiliations.values(): if affiliation.name == affiliation_name: affiliation_codes[affiliation.id] = affiliation_code lines = [] for (project, assignment) in assignments.items(): for (affiliation, fraction) in assignment.items(): if affiliation == 0: logger.warning( 'Project {} includes unknown assignment', project) code = 'zz' else: code = affiliation_codes.get(affiliation) if code is None: if affiliation in affiliations: affiliation = affiliations[affiliation].name logger.error('Unknown affiliation: {}', affiliation) sys.exit(1) lines.append((project, code, fraction)) for line in lines: print(*line, file=file_)
def __init__(self): self.db = sqlite3.connect(get_config().get('database', 'file'))