Example #1
0
    def sImport(self):
        """import"""                                         
                                           
        #gui dialog                        
        filename = uiAccesories.getOpenFileName("Import CSV to table "+self.name,"dir_import_csv","Csv Files (*.csv)", self.name+".csv")                
        
        #cancel or close window
        if(filename == ""):                        
            return        
                  
        #IMPORT CSV TO DATABASE         
            
        #load csv to df
        try:            
            df = pd.DataFrame.from_csv(str(filename), sep=";", encoding = "utf8")
            #df.drop([df.columns[-1]], axis=1, inplace=True)
            df.fillna("", inplace=True)                        
        except:
            uiAccesories.showMessage(self.name+" CSV Import", "NOT Succesfully imported\n empty file or wrong format")
            return
        
        df["id"] = df.index

        #callback
        try:
            df = self.importDf2dbDdf(df)
        except KeyError:
            title = "Table '"+self.name + "' CSV Import"
            uiAccesories.showMessage(title, "NOT Succesfully"+"\n\n" +"Wrong format or not existing data.")
            return
        
        #counters
        state = {'ko':0, 'ok':0}
        
        #adding rows to DB                        
        for i,row in df.iterrows():
            
            try:
                self.importRow2dbRow(row)
            except:
                state['ko'] += 1
                continue
                 
            #to dict because of CZ
            row = dict(row)       
                                                         
            #if(db.insert_from_lists(self.name, columns, row, commit_flag = False) != False):
            if(db.insert_from_dict(self.name, row, commit = False) != False):
                                                                      
                state['ok'] += 1
            else:            
                state['ko'] += 1 #increment errors for error message                

        db.commit()                        
        self.model.Update()
        self.sImportDialog(state)
Example #2
0
 def sLoadProfile(self):
     
     #gui dialog                        
     filename = uiAccesories.getOpenFileName("Load profile","profiles_directory","Profile Files (*.json)", "profile.json")                
     if(filename == ""):                        
         return  
     profile = json.load(codecs.open(filename, 'r', 'utf-8'))
     
     #reset some values
     #profile["timing_settings"]['GET']['value']["logic_mode"] = 1
     #profile["timing_settings"]['SET']['value']["logic_mode"] = 1
     dstore.Set("com_init", 2) 
         
     dstore.Update(profile)
     uiAccesories.sGuiSetItem("racesettings-app", ["profile"], utils.toUnicode(filename))