Ejemplo n.º 1
0
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_)
Ejemplo n.º 2
0
 def __init__(self):
     self.db = sqlite3.connect(get_config().get('database', 'file'))