database store graph
This commit is contained in:
@@ -8,7 +8,8 @@ import random
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
import platform
|
||||
|
||||
import networkx as nx
|
||||
import json
|
||||
|
||||
class ControllerDB:
|
||||
dct_parameter = None
|
||||
@@ -41,6 +42,8 @@ class ControllerDB:
|
||||
Firm = pd.read_csv("Firm_amended.csv")
|
||||
Firm['Code'] = Firm['Code'].astype('string')
|
||||
Firm.fillna(0, inplace=True)
|
||||
|
||||
# fill dct_lst_init_remove_firm_prod
|
||||
list_dct = []
|
||||
for _, row in Firm.iterrows():
|
||||
code = row['Code']
|
||||
@@ -52,19 +55,35 @@ class ControllerDB:
|
||||
list_dct = [{'133': ['1.4.4.1']}]
|
||||
# list_dct = [{'2': ['1.1.3']}]
|
||||
# list_dct = [{'135': ['1.3.2.1']}]
|
||||
|
||||
# fill g_bom
|
||||
BomNodes = pd.read_csv('BomNodes.csv', index_col=0)
|
||||
BomNodes.set_index('Code', inplace=True)
|
||||
BomCateNet = pd.read_csv('BomCateNet.csv', index_col=0)
|
||||
BomCateNet.fillna(0, inplace=True)
|
||||
g_bom = nx.from_pandas_adjacency(BomCateNet.T,
|
||||
create_using=nx.MultiDiGraph())
|
||||
bom_labels_dict = {}
|
||||
for code in g_bom.nodes:
|
||||
bom_labels_dict[code] = BomNodes.loc[code].to_dict()
|
||||
nx.set_node_attributes(g_bom, bom_labels_dict)
|
||||
g_product_js = json.dumps(nx.adjacency_data(g_bom))
|
||||
|
||||
# insert exp
|
||||
for idx_exp, dct in enumerate(list_dct):
|
||||
self.add_experiment_1(idx_exp, self.dct_parameter['n_max_trial'],
|
||||
dct)
|
||||
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,
|
||||
dct_lst_init_remove_firm_prod):
|
||||
dct_lst_init_remove_firm_prod, g_bom):
|
||||
e = Experiment(
|
||||
idx_exp=idx_exp,
|
||||
n_sample=int(self.dct_parameter['n_sample']),
|
||||
n_iter=int(self.dct_parameter['n_iter']),
|
||||
n_max_trial=n_max_trial,
|
||||
dct_lst_init_remove_firm_prod=dct_lst_init_remove_firm_prod)
|
||||
dct_lst_init_remove_firm_prod=dct_lst_init_remove_firm_prod,
|
||||
g_bom=g_bom)
|
||||
db_session.add(e)
|
||||
db_session.commit()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user