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)
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))