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)
Пример #2
0
    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__))
Пример #4
0
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__))
Пример #5
0
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__))
Пример #6
0
    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)