def print(cls, msg, severity=Severity.DEBUG, task_id=None, task_type=TaskType.WEB): msg = str(msg) print(f"{severity}: {msg}") DBManager.get_session().execute(cls.__table__.insert().values( msg=msg, severity=severity, task_id=task_id, task_type=task_type)) DBManager.get_session().commit()
def update_best_model(self, workers): try: from FinalProject.src.CeleryUtils.CeleryTableWorker import CeleryTableWorker, Statuses models_result: [CeleryTableWorker] = [ worker for worker in workers if worker.status == Statuses.FINISHED ] best_model = sorted(models_result, key=lambda model: model.score, reverse=True)[0] if best_model: self.best_model = best_model.task_id except Exception as ex: self.print(repr(ex), Severity.ERROR) finally: DBManager.get_session().merge(self) DBManager.get_session().commit()
def show_rows(cls): rows = DBManager.get_session().query(cls).all() for row in rows: print(row.msg)
def delete_table(table_name): DBManager.get_session().execute( f'drop table if exists "{table_name}" cascade') DBManager.get_session().commit()
def db_to_df(self): df = pd.read_sql( self.get_rows(sub_query=True).statement, DBManager.get_session().bind) self.df = df return df
def get_rows(self, sub_query=False): query = DBManager.get_session().query(self.table) if sub_query: return query return query.all()
def table(self): if self._table is None: self._table = DBManager.reflect_table(self.table_name) return self._table
def update_db(self): DBManager.get_session().merge(self) DBManager.get_session().commit()
def get_workers_by_task_ids(cls, task_ids: Iterable): return DBManager.get_session().query(cls).filter( cls.task_id.in_(task_ids)).all()
def get_columns_name(_title): table = DBManager.reflect_table(f'{_title}_data') return [ str(column.key) for column in table.c if str(column.key) != PreprocessData.TEST_COLUMN ]
def set_table(self, title): self.dm = DataManagement(title) self.table = DBManager.reflect_table(self.dm.table_name)