示例#1
0
def db_column_hook(module, param_name, value, yaml_filename):
    from sqlalchemy import select
    mo = __db_column_pattern.match(param_name)
    if mo is not None:
        try:
            name = mo.group('name')
            engine = DBConnection().engine
            images_table = DBConnection().images_table
            result = engine.execute(select([images_table.c[value]]).distinct())
            fields = [field[0] for field in result]
            utils.set_parameter_kwargs(__name__, '{}_filter'.format(name),
                                       items=fields)
            utils.set_parameter_value(__name__, '{}_filter'.format(name),
                                      fields)
        except utils.ParameterException:
            return value
    return value
示例#2
0
def reload_db_schema():
    print 'Loading database schemas'

    images_table = DBConnection().images_table
    objects_table = DBConnection().objects_table
    for param_name in ('images_db_columns', 'image_files_db_columns',
                       'image_id_db_column', 'position_db_column',
                       'plate_db_column', 'replicate_db_column',
                       'well_db_column', 'treatment_db_column'):
        utils.set_parameter_kwargs(__name__, param_name,
                                   items=images_table.c.keys())
        utils.set_parameter_visible(__name__, param_name)
    for param_name in ('objects_db_columns', 'object_img_id_db_column',
                       'position_x_db_column', 'position_y_db_column'):
        utils.set_parameter_kwargs(__name__, param_name,
                                   items=objects_table.c.keys())
        utils.set_parameter_visible(__name__, param_name)

    utils.invalidate_module(__name__)

    msg = 'Finished retrieving database schema'
    print msg
    return msg