def file_2_db(dburi, directory): """ read from files and write the configuration into database. :param dburi: database uri :param directory: folder to read :return: None """ sm = SessionManager() sess = sm.get_session(dburi) sm.prepare_db(dburi, [PGEMConfig, TestItem]) # file to db file_list = [] for root, folder, files in os.walk(directory): for f in files: # if(f.endswith(".xml") or f.endswith(".XML")): regex = re.compile(r"AGIGA\d{4}\-\d{3}\w{3}-\d{2}\.xml", re.IGNORECASE) if (regex.match(f)): file_list.append(os.path.join(root, f)) for f in file_list: config = load_xml(f) logger.debug(config) result = sess.query(PGEMConfig).filter( PGEMConfig.partnumber == config["partnumber"], PGEMConfig.revision == config["revision"]).first() if result: pgem_config = result pgem_config.testitems = [] else: pgem_config = PGEMConfig() for k, v in config.items(): if k != "testitems" and k != "TESTITEMS": setattr(pgem_config, k.lower(), v) else: items = v for tk, tv in items.items(): test_item = TestItem() setattr(test_item, "NAME".lower(), tk) for dk, dv in tv.items(): setattr(test_item, dk.lower(), dv) pgem_config.testitems.append(test_item) logger.debug(pgem_config) try: sess.add(pgem_config) sess.commit() except Exception as e: sess.rollback() raise e finally: sess.close()
def file_2_db(dburi, directory): """ read from files and write the configuration into database. :param dburi: database uri :param directory: folder to read :return: None """ sm = SessionManager() sess = sm.get_session(dburi) sm.prepare_db(dburi, [PGEMConfig, TestItem]) # file to db file_list = [] for root, folder, files in os.walk(directory): for f in files: #if(f.endswith(".xml") or f.endswith(".XML")): regex = re.compile(r"AGIGA\d{4}\-\d{3}\w{3}-\d{2}\.xml", re.IGNORECASE) if(regex.match(f)): file_list.append(os.path.join(root, f)) for f in file_list: config = load_xml(f) logger.debug(config) result = sess.query(PGEMConfig).filter( PGEMConfig.partnumber == config["partnumber"], PGEMConfig.revision == config["revision"]).first() if result: pgem_config = result pgem_config.testitems = [] else: pgem_config = PGEMConfig() for k, v in config.items(): if k != "testitems" and k != "TESTITEMS": setattr(pgem_config, k.lower(), v) else: items = v for tk, tv in items.items(): test_item = TestItem() setattr(test_item, "NAME".lower(), tk) for dk, dv in tv.items(): setattr(test_item, dk.lower(), dv) pgem_config.testitems.append(test_item) logger.debug(pgem_config) try: sess.add(pgem_config) sess.commit() except Exception as e: sess.rollback() raise e finally: sess.close()
def db_2_file(dburi, directory): """ read out from config database, save to single file :param dbrui: database uri :param directory: folder to save the xml files :return: None """ sm = SessionManager() sess = sm.get_session(dburi) sm.prepare_db(dburi, [PGEMConfig, TestItem]) # db to file for config in sess.query(PGEMConfig).all(): save_config(config.to_dict(), directory) sess.close()
def db_2_file(dburi, directory): """ read out from config database, save to single file :param dbrui: database uri :param directory: folder to save the xml files :return: None """ sm = SessionManager() sess = sm.get_session(dburi) sm.prepare_db(dburi, [PGEMConfig, TestItem]) # db to file for config in sess.query(PGEMConfig).all(): save_config(config.to_dict(), directory) sess.close()
def main(): sm = SessionManager() session = sm.get_session(DBURI) sm.prepare_db(DBURI, [DUT]) for csv in get_files(FILEPATH, EXT): print csv for dut_dict in get_data(csv): print dut_dict dut = DUT() for k, v in dut_dict.items(): setattr(dut, k, v) print dut.sn snr_total = dut.snr.split(',')[2] dut.snr_total = snr_total bin_code = dut.bin_codes.split(',')[0] dut.bin_code = bin_code session.add(dut) session.commit() session.close()
"enable": int(self.enable), "min": self.min, "max": self.max, "stoponfail": int(self.stoponfail), "misc": self.misc } } if __name__ == "__main__": from session import SessionManager dburi = "sqlite:///configuration.db" sm = SessionManager() session = sm.get_session(dburi) sm.prepare_db(dburi, [PGEMConfig, TestItem]) # Insert Example CrystalConfig = PGEMConfig() CrystalConfig.partnumber = "AGIGA9601-002BCA" CrystalConfig.description = "Crystal" CrystalConfig.revision = "04" CheckTemp = TestItem() CheckTemp.name = "Check_Temp" CheckTemp.description = "Check Temperature on chip SE97BTP, data in degree" CheckTemp.enable = True CheckTemp.min = 5.0 CheckTemp.max = 30.0 CheckTemp.stoponfail = False
"enable": int(self.enable), "min": self.min, "max": self.max, "stoponfail": int(self.stoponfail), "misc": self.misc } } if __name__ == "__main__": from session import SessionManager dburi = "sqlite:///configuration.db" sm = SessionManager() session = sm.get_session(dburi) sm.prepare_db(dburi, [PGEMConfig, TestItem]) # Insert Example CrystalConfig = PGEMConfig() CrystalConfig.partnumber = "AGIGA9601-002BCA" CrystalConfig.description = "Crystal" CrystalConfig.revision = "04" CheckTemp = TestItem() CheckTemp.name = "Check_Temp" CheckTemp.description = "Check Temperature on chip SE97BTP, data in degree" CheckTemp.enable = True CheckTemp.min = 5.0 CheckTemp.max = 30.0 CheckTemp.stoponfail = False