Source code for iocbio.kinetics.modules.sysbio.mechanics.experiment_mechanics

from iocbio.kinetics.handler.experiment_generic import ExperimentGeneric
from iocbio.kinetics.constants import database_table_experiment

IocbioKineticsModule = ['database_schema']

[docs]class ExperimentMechanics(ExperimentGeneric): """General description of experiment performed on SBMicroscope Mechanics""" database_table = "mechanics" @staticmethod def database_schema(db): db.query("CREATE TABLE IF NOT EXISTS " + db.table(ExperimentMechanics.database_table) + "(experiment_id text PRIMARY KEY, filename text, mode text, title text, " + "FOREIGN KEY (experiment_id) REFERENCES " + db.table(database_table_experiment) + "(experiment_id) ON DELETE CASCADE" + ")") @staticmethod def store(database, data): ExperimentGeneric.database_schema(database) ExperimentMechanics.database_schema(database) experiment_id = data.experiment_id ExperimentGeneric.store(database, experiment_id, time=data.time, type_generic=data.type_generic, type_specific=data.type, hardware="mechanics") c = database if not database.has_record(ExperimentMechanics.database_table, experiment_id = experiment_id): c.query("INSERT INTO " + database.table(ExperimentMechanics.database_table) + "(experiment_id, filename, mode, title) " + "VALUES(:experiment_id,:fname,:mode,:exptitle)", experiment_id=experiment_id, fname=data.config['filename'], mode=data.config['mode'], exptitle=data.name) @staticmethod def get_fname_mode(database, experiment_id): hw = ExperimentGeneric.hardware(database, experiment_id) if hw != 'mechanics': return None, None r = database.query("SELECT filename, mode FROM " + database.table(ExperimentMechanics.database_table) + " WHERE experiment_id=:experiment_id", experiment_id=experiment_id).first() return r.filename, r.mode def __init__(self, database, data): ExperimentMechanics.database_schema(database) ExperimentGeneric.__init__(self, database) experiment_id = data.experiment_id self.name = data.name
def database_schema(db): ExperimentMechanics.database_schema(db)