This commit is contained in:
2023-05-15 13:44:21 +08:00
parent 7e8980d0c6
commit 745763ce2e
3 changed files with 34 additions and 21 deletions

View File

@@ -6,11 +6,11 @@ from sqlalchemy import text
import yaml
import random
import pandas as pd
import numpy as np
import platform
import networkx as nx
import json
class ControllerDB:
dct_parameter = None
is_test: bool = None
@@ -31,7 +31,8 @@ class ControllerDB:
**dct_para_in_test
}
print(self.dct_parameter)
self.reset_flag = reset_flag # 0, not reset; 1, reset self; 2, reset all
# 0, not reset; 1, reset self; 2, reset all
self.reset_flag = reset_flag
self.lst_saved_s_id = []
def init_tables(self):
@@ -73,7 +74,7 @@ class ControllerDB:
# insert exp
for idx_exp, dct in enumerate(list_dct):
self.add_experiment_1(idx_exp, self.dct_parameter['n_max_trial'],
dct, g_product_js) # same g_bom for all exp
dct, g_product_js) # same g_bom for all exp
print(f'Inserted experiment for exp {idx_exp}!')
def add_experiment_1(self, idx_exp, n_max_trial,
@@ -127,16 +128,19 @@ class ControllerDB:
else:
lst_table_obj.remove(a_table)
print(
f"Table {a_table.name} is dropped for exp: {self.db_name_prefix}!!!"
f"Table {a_table.name} is dropped "
f"for exp: {self.db_name_prefix}!!!"
)
finally:
is_exist = len(lst_table_obj) > 0
if is_exist:
print(
f"All tables exist. No need to reset for exp: {self.db_name_prefix}."
f"All tables exist. No need to reset "
f"for exp: {self.db_name_prefix}."
)
# change the is_done_flag from 0 to -1, to rerun the in-finished tasks
# change the is_done_flag from 0 to -1
# rerun the in-finished tasks
if self.reset_flag > 0:
if self.reset_flag == 2:
sample = db_session.query(Sample).filter(
@@ -152,7 +156,7 @@ class ControllerDB:
qry_result = db_session.query(Result).filter_by(
s_id=s.id)
if qry_result.count() > 0:
db_session.query(Result).filter(s_id = s.id).delete()
db_session.query(Result).filter(s_id=s.id).delete()
db_session.commit()
s.is_done_flag = -1
db_session.commit()
@@ -161,20 +165,21 @@ class ControllerDB:
Base.metadata.create_all(bind=engine)
self.init_tables()
print(
f"All tables are just created and initialized for exp: {self.db_name_prefix}."
f"All tables are just created and initialized "
f"for exp: {self.db_name_prefix}."
)
def prepare_list_sample(self):
res = db_session.execute(
text(f'''SELECT count(*) FROM {self.db_name_prefix}_sample s,
{self.db_name_prefix}_experiment e WHERE s.e_id=e.id '''
text(f"SELECT count(*) FROM {self.db_name_prefix}_sample s, "
f"{self.db_name_prefix}_experiment e WHERE s.e_id=e.id"
)).scalar()
n_sample = 0 if res is None else res
print(f'There are a total of {n_sample} samples.')
res = db_session.execute(
text(
f'SELECT id FROM {self.db_name_prefix}_sample WHERE is_done_flag = -1'
))
text(f"SELECT id FROM {self.db_name_prefix}_sample "
f"WHERE is_done_flag = -1"
))
for row in res:
s_id = row[0]
self.lst_saved_s_id.append(s_id)