Source code for iocbio.kinetics.handler.experiment_generic
from ..constants import database_table_experiment
[docs]class ExperimentGeneric(object):
"""Collection of methods used by all experiments"""
database_table = database_table_experiment
@staticmethod
def database_schema(db):
db.query("CREATE TABLE IF NOT EXISTS " + db.table(ExperimentGeneric.database_table) +
"(experiment_id text not null, date text not null, time text, type_generic text not null, type_specific text not null, hardware text not null " +
", primary key(experiment_id))")
@staticmethod
def has_record(database, experiment_id):
try:
res = database.has_record(ExperimentGeneric.database_table, experiment_id=experiment_id)
except:
res = False
return res
@staticmethod
def hardware(database, experiment_id):
return database.query("select hardware from " + database.table("experiment") +
" where experiment_id=:experiment_id",
experiment_id=experiment_id).first().hardware
@staticmethod
def store(database, experiment_id, time, type_generic, type_specific, hardware):
if ExperimentGeneric.has_record(database, experiment_id):
return
date = time.split()[0]
t = time.split()[1]
database.query("INSERT INTO " + database.table(ExperimentGeneric.database_table) +
"(experiment_id, date, time, type_generic, type_specific, hardware) " +
"VALUES(:experiment_id, :date, :time, :typeg, :types, :hardware)",
experiment_id=experiment_id, date=date, time=t,
typeg=type_generic, types=type_specific, hardware=hardware)
def __init__(self, db):
self.database = db