Ejemplo n.º 1
0
 def insert(self,v=-1):
     print self.dbpath
     _db = db(self.dbpath)
     j = 0
     self.jobs = [DD(dic) for dic in self.sampler.create_hp(v)]
     for i,_job in enumerate(self.jobs):
         _job.update({EXPERIMENT: str(self.exppath)})
         insert_dict(_job,_db)
         j+=1
         print 'inserting job: '+str(_job)
         if i == v:
             break
     print 'Inserted',j,'jobs in',self.dbpath
Ejemplo n.º 2
0
    def save(self, table_name, row):
        db = self._open_db(table_name)

        with SafeSession(db) as safe_session:

            if "id" in row:
                row_id = row["id"]
                del row["id"]

                sql_row = self._load_in_safe_session(db=db,
                                                     safe_session=safe_session,
                                                     row_id=row_id)[0]
                logger.debug("update row %d" % row_id)
                with safe_session.set_timer(60 * 5):
                    sql_row.update_simple(flatten(row), safe_session.session)
            else:
                logger.debug("insert new row")
                with safe_session.set_timer(60 * 5):
                    sql_row = sql.insert_dict(flatten(row),
                                              db,
                                              session=safe_session.session)
                    if sql_row is None:
                        raise OperationalError("Identical row already exists")
                    sql_row._set_in_session(sql.JOBID, sql_row.id,
                                            safe_session.session)

            row_id = sql_row.id

            with safe_session.set_timer(60 * 5):
                safe_session.session.commit()
                logger.debug("session commited")

        # load in new session otherwise lazy attribute selection hangs
        # on forever... why is that!?
        with SafeSession(db) as safe_session:
            sql_row = self._load_in_safe_session(db,
                                                 safe_session,
                                                 row_id=row_id)[0]
            logger.debug("Fetch all row attributes...")
            eager_dict = self._eager_dicts([sql_row], safe_session)[0]
            logger.debug("Fetch done")

            eager_dict['id'] = row_id

        return eager_dict
Ejemplo n.º 3
0
    def save(self, table_name, row):
        db = self._open_db(table_name)

        with SafeSession(db) as safe_session:

            if "id" in row:
                row_id = row["id"]
                del row["id"]

                sql_row = self._load_in_safe_session(
                    db=db, safe_session=safe_session, row_id=row_id)[0]
                logger.debug("update row %d" % row_id)
                with safe_session.set_timer(60 * 5):
                    sql_row.update_simple(flatten(row), safe_session.session)
            else:
                logger.debug("insert new row")
                with safe_session.set_timer(60 * 5):
                    sql_row = sql.insert_dict(flatten(row), db,
                                              session=safe_session.session)
                    if sql_row is None:
                        raise OperationalError("Identical row already exists")
                    sql_row._set_in_session(sql.JOBID, sql_row.id,
                                            safe_session.session)

            row_id = sql_row.id

            with safe_session.set_timer(60 * 5):
                safe_session.session.commit()
                logger.debug("session commited")

        # load in new session otherwise lazy attribute selection hangs
        # on forever... why is that!?
        with SafeSession(db) as safe_session:
            sql_row = self._load_in_safe_session(db, safe_session,
                                                 row_id=row_id)[0]
            logger.debug("Fetch all row attributes...")
            eager_dict = self._eager_dicts([sql_row], safe_session)[0]
            logger.debug("Fetch done")

            eager_dict['id'] = row_id

        return eager_dict