def unserialize_sequence_dict(self): dfc_subset_sequences_file = dfc_subset_sequences_store.get_subset_sequence_file_name( ) from dfcleanser.common.common_utils import does_file_exist if (does_file_exist(dfc_subset_sequences_file)): import json try: with open(dfc_subset_sequences_file, 'r') as dfc_subset_file: temp_dict = json.load(dfc_subset_file) dfc_subset_file.close() new_subset_sequences_dict = {} for i in range(len(temp_dict)): current_sequence = temp_dict[i] current_attributes = current_sequence[0] current_sequence_title = current_attributes[0] current_sequence_total_steps = int(current_attributes[1]) if (DEBUG_SUBSET_MODEL): print("current_sequence_title", current_sequence_title) print("current_sequence_total_steps", current_sequence_total_steps) new_sequence = dfc_subset_sequence() new_sequence.set_sequence_title(current_sequence_title) for j in range(current_sequence_total_steps): current_step = dfc_subset_step( current_sequence[j + 1][0], current_sequence[j + 1][1], current_sequence[j + 1][2], current_sequence[j + 1][3], current_sequence[j + 1][4]) new_sequence.add_step_to_sequence_steps(current_step) new_subset_sequences_dict.update( {current_sequence_title: new_sequence}) except: from dfcleanser.common.cfg import add_error_to_log add_error_to_log("[Load dfc subset sequences file Error] " + str(sys.exc_info()[0].__name__)) return (new_subset_sequences_dict)
def get_item_from_file(self,itemtype,itemname,creator) : import os #print("get_item_from_file",itemtype,itemname,creator) if(creator == DFC_CREATED) : if(itemtype == DICT_ID) : dsitem = self.dictStore.get(itemname,None) else : dsitem = self.listStore.get(itemname,None) else : if(itemtype == DICT_ID) : dsitem = self.userdictStore.get(itemname,None) else : dsitem = self.userlistStore.get(itemname,None) #print("dsitem",dsitem) if(not(dsitem is None)) : fname = os.path.join(cfg.get_common_files_path(),"datastructures") fname = os.path.join(fname,dsitem[1]) #print("fname",fname) if(not (fname is None)) : try : with open(fname, 'r') as ds_file : ds = json.load(ds_file) ds_file.close() return(ds) except : add_error_to_log("[Get Dict from File - no file name] " + itemname + str(sys.exc_info()[0].__name__)) return(None) else : add_error_to_log("[Dict not found] " + itemname) return(None) else : return(None)
def save_dfc_subset_sequences(self): dfc_subset_sequences_file = dfc_subset_sequences_store.get_subset_sequence_file_name( ) if (DEBUG_SUBSET_MODEL): print("save_dfc_subset_sequences", dfc_subset_sequences_file) print(self.dfc_subset_sequences_dict) serial_dict = self.serialize_sequence_dict() try: with open(dfc_subset_sequences_file, 'w') as dfc_subset_file: import json json.dump(serial_dict, dfc_subset_file) dfc_subset_file.close() except: from dfcleanser.common.cfg import add_error_to_log add_error_to_log("[Save dfc subset sequences file Error] " + str(sys.exc_info()[0].__name__))
def display_list_maint(keyValue=None, loadfile=None): """ * ------------------------------------------------------------------------ * function : display the user lists maintenance form * * parms : * keyValue - list name * * ------------------------------------------------------------------------- """ opstat = opStatus() if (loadfile is None): list_maint_input_form = InputForm( maint_list_utility_input_id, maint_list_utility_input_idList, maint_list_utility_input_labelList, maint_list_utility_input_typeList, maint_list_utility_input_placeholderList, maint_list_utility_input_jsList, maint_list_utility_input_reqList) else: list_maint_input_form = InputForm( maint_list_file_utility_input_id, maint_list_file_utility_input_idList, maint_list_file_utility_input_labelList, maint_list_file_utility_input_typeList, maint_list_file_utility_input_placeholderList, maint_list_file_utility_input_jsList, maint_list_file_utility_input_reqList) selectDicts = [] from dfcleanser.sw_utilities.sw_utility_model import get_lists_names, USER_CREATED list_names = get_lists_names(USER_CREATED) #print("list_names",list_names) if (not (list_names is None)): if (keyValue is None): def_list = list_names[0] else: def_list = keyValue sellist = swum.get_List(def_list, USER_CREATED) dsstr = "[" for i in range(len(sellist)): dsstr = dsstr + str(sellist[i]) if (i == (len(sellist) - 1)): dsstr = dsstr + "]" else: dsstr = dsstr + "," else: list_names = ["No User lists defined"] def_list = "No User lists defined" sellist = "User defined list" listssel = { "default": def_list, "list": list_names, "callback": "select_list" } selectDicts.append(listssel) from dfcleanser.common.common_utils import get_select_defaults get_select_defaults(list_maint_input_form, maint_list_utility_input_id, maint_list_utility_input_idList, maint_list_utility_input_typeList, selectDicts) list_maint_input_form.set_gridwidth(700) if (loadfile is None): list_maint_input_form.set_buttonstyle({ "font-size": 13, "height": 75, "width": 90, "left-margin": 20 }) else: list_maint_input_form.set_buttonstyle({ "font-size": 13, "height": 75, "width": 90, "left-margin": 205 }) list_maint_input_form.set_fullparms(True) cfg.drop_config_value(maint_list_utility_input_id + "Parms") cfg.drop_config_value(maint_list_utility_input_id + "ParmsProtect") if (not (loadfile is None)): import json from dfcleanser.common.common_utils import does_file_exist if (does_file_exist(loadfile)): try: with open(loadfile, 'r') as ds_file: ds = json.load(ds_file) ds_file.close() dsstr = "[" for i in range(len(ds)): dsstr = dsstr + str(ds[i]) if (i == (len(ds) - 1)): dsstr = dsstr + "]" else: dsstr = dsstr + "," except Exception as e: opstat.set_status(False) opstat.set_errorMsg("Error processing user file to load" + loadfile) opstat.set_exception(e) else: opstat.set_status(False) opstat.set_errorMsg("invalid user file to load" + loadfile) if (opstat.get_status()): if (loadfile is None): cfg.set_config_value(maint_list_utility_input_id + "Parms", [def_list, "", dsstr, ""]) else: cfg.set_config_value(maint_list_utility_input_id + "Parms", [def_list, "", dsstr, loadfile]) cfg.set_config_value(maint_list_utility_input_id + "ParmsProtect", [True, False, True, True]) help_note = "To add a user list enter parms and values above and click on 'Add User List'.</br>To update the current list change values and click on 'Update User List'" from dfcleanser.common.common_utils import get_help_note_html list_maint_notes_html = get_help_note_html(help_note, 80, 75, None) list_maint_html = "" list_maint_html = list_maint_input_form.get_html() list_maint_title_html = "<div>User Lists</div><br></br>" gridclasses = [ "dfcleanser-common-grid-header", "dfc-bottom", "dfc-footer" ] gridhtmls = [ list_maint_title_html, list_maint_html, list_maint_notes_html ] #print(list_maint_html) #print(list_maint_notes_html) print("\n") display_generic_grid("sw-utils-listdict-wrapper", gridclasses, gridhtmls) else: display_exception(opstat) add_error_to_log("[Get User Dict from File] " + loadfile + str(sys.exc_info()[0].__name__))
def display_dict_maint(keyValue=None, loadfile=None): """ * ------------------------------------------------------------------------ * function : display the user dicts maintenance form * * parms : * keyValue - dict name * * ------------------------------------------------------------------------- """ #print("display_dict_maint",keyValue,loadfile) opstat = opStatus() if (loadfile is None): dict_maint_input_form = InputForm( maint_dict_utility_input_id, maint_dict_utility_input_idList, maint_dict_utility_input_labelList, maint_dict_utility_input_typeList, maint_dict_utility_input_placeholderList, maint_dict_utility_input_jsList, maint_dict_utility_input_reqList) else: dict_maint_input_form = InputForm( maint_dict_file_utility_input_id, maint_dict_file_utility_input_idList, maint_dict_file_utility_input_labelList, maint_dict_file_utility_input_typeList, maint_dict_file_utility_input_placeholderList, maint_dict_file_utility_input_jsList, maint_dict_file_utility_input_reqList) selectDicts = [] from dfcleanser.sw_utilities.sw_utility_model import get_dicts_names, USER_CREATED dict_names = get_dicts_names(USER_CREATED) #print("dict_names",dict_names) if (not (dict_names is None)): if (keyValue is None): def_dict = dict_names[0] else: def_dict = keyValue seldict = swum.get_Dict(def_dict, USER_CREATED) keys = list(seldict.keys()) if ((def_dict == "Country_Codes") or (def_dict == "Language_Codes")): keys.sort() seldict = swum.get_pretty_dict(seldict, keys) else: dict_names = ["No User dicts defined"] def_dict = "No User dicts defined" seldict = "User defined dict" dictssel = { "default": def_dict, "list": dict_names, "callback": "select_dict" } selectDicts.append(dictssel) from dfcleanser.common.common_utils import get_select_defaults get_select_defaults(dict_maint_input_form, maint_dict_utility_input_id, maint_dict_utility_input_idList, maint_dict_utility_input_typeList, selectDicts) dict_maint_input_form.set_gridwidth(700) #dict_maint_input_form.set_custombwidth(110) if (loadfile is None): dict_maint_input_form.set_buttonstyle({ "font-size": 13, "height": 75, "width": 90, "left-margin": 20 }) else: dict_maint_input_form.set_buttonstyle({ "font-size": 13, "height": 75, "width": 90, "left-margin": 205 }) dict_maint_input_form.set_fullparms(True) cfg.drop_config_value(maint_dict_utility_input_id + "Parms") cfg.drop_config_value(maint_dict_utility_input_id + "ParmsProtect") if (not (loadfile is None)): import json #from dfcleanser.common.common_utils import does_file_exist #print("does_file_exist",does_file_exist(loadfile)) try: with open(loadfile, 'r') as ds_file: ds = json.load(ds_file) ds_file.close() keys = list(ds.keys()) seldict = swum.get_pretty_dict(ds, keys) #print(seldict) except Exception as e: opstat.set_errorMsg("invalid user file to load " + loadfile) opstat.set_exception(e) if (opstat.get_status()): if (loadfile is None): cfg.set_config_value(maint_dict_utility_input_id + "Parms", [def_dict, "", seldict, ""]) else: cfg.set_config_value(maint_dict_utility_input_id + "Parms", [def_dict, "", seldict, loadfile]) cfg.set_config_value(maint_dict_utility_input_id + "ParmsProtect", [True, False, True, True]) help_note = "To add a user dict enter parms and values above and click on 'Add User Dict'.</br>To update the current dict change values and click on 'Update User Dict'" from dfcleanser.common.common_utils import get_help_note_html dict_maint_notes_html = get_help_note_html(help_note, 80, 75, None) dict_maint_html = "Fill in new user dict parms or update currently displayed user dict." dict_maint_html = dict_maint_input_form.get_html() dict_maint_title_html = "<div>User Dicts</div><br></br>" gridclasses = [ "dfcleanser-common-grid-header", "dfc-bottom", "dfc-footer" ] gridhtmls = [ dict_maint_title_html, dict_maint_html, dict_maint_notes_html ] #print(dict_maint_html) #print(dict_maint_notes_html) print("\n") display_generic_grid("sw-utils-listdict-wrapper", gridclasses, gridhtmls) else: display_exception(opstat) add_error_to_log("[Get User Dict from File] " + loadfile + str(sys.exc_info()[0].__name__))
def update_Item(self,dstype,name,creator,dsitem) : #print("update_Item",dstype,name,creator,"\n",dsitem) if(dstype == DICT_ID) : if(creator == DFC_CREATED) : add_error_to_log("Can not update DFC Dict : " + name) else : current_dict = self.userdictStore.get(name,None) if(not (current_dict is None)) : if(current_dict[0] == DATA_TYPE) : self.userdictStore.update({name : dsitem}) else : filename = current_dict[1] try : with open(filename, 'w') as dsdict_file : json.dump(dsitem,dsdict_file) dsdict_file.close() except : add_error_to_log("Can not update DFC Dict : " + name) else : add_error_to_log("DFC Dict : " + name + " not in user dicts ") else : if(creator == DFC_CREATED) : add_error_to_log("Can not update DFC List : " + name) else : current_list = self.userlistStore.get(name,None) if(not (current_list is None)) : if(current_list[0] == DATA_TYPE) : self.userlistStore.update({name : dsitem}) else : filename = current_list[1] #print("filename",filename) try : with open(filename, 'w') as dslist_file : json.dump(dsitem,dslist_file) dslist_file.close() except : add_error_to_log("Can not update DFC List : " + name) else : add_error_to_log("DFC List : " + name + " not in user lists ") self.save_datastructures_file(dstype,creator)