# HG changeset patch # User James Bergstra # Date 1232571676 18000 # Node ID 9fb784c1f23d1bd2ebd5a47ea032d6d42ed833ca # Parent e52a5c3aaca551fd90fe52f86b4cd29667eb621c changed insert_ methods in sql to not clobber internal keys STATUS, PRIORITY, HASH diff -r e52a5c3aaca5 -r 9fb784c1f23d pylearn/dbdict/sql.py --- a/pylearn/dbdict/sql.py Tue Jan 20 23:32:24 2009 -0500 +++ b/pylearn/dbdict/sql.py Wed Jan 21 16:01:16 2009 -0500 @@ -231,9 +231,12 @@ rval = None if do_insert: - job[STATUS] = START - job[HASH] = jobhash - job[PRIORITY] = priority + if STATUS not in job: + job[STATUS] = START + if HASH not in job: + job[HASH] = jobhash + if PRIORITY not in job: + job[PRIORITY] = priority rval = db.insert(job, session=s) s.commit() @@ -244,7 +247,12 @@ def insert_job(experiment_fn, state, db, force_dup=False, session=None, priority=1.0): state = copy.copy(state) - state[EXPERIMENT] = experiment_fn.__module__ + '.' + experiment_fn.__name__ + experiment_name = experiment_fn.__module__ + '.' + experiment_fn.__name__ + if EXPERIMENT in state: + if state[EXPERIMENT] != experiment_name: + raise Exception('Inconsistency: state element %s does not match experiment %s' %(EXPERIMENT, experiment_name)) + else: + state[EXPERIMENT] = experiment_name return insert_dict(state, db, force_dup=force_dup, session=session, priority=priority)