Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
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()
Ejemplo n.º 3
0
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()
Ejemplo n.º 4
0
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()
Ejemplo n.º 5
0
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()
Ejemplo n.º 6
0
                "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
Ejemplo n.º 7
0
                "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