Commit db733737 authored by Mario's avatar Mario
Browse files

again working on the dut import... now a new way

parent 8a3406fa
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -610,13 +610,16 @@ class DocuDutLib(object):
                # find temperatures
                temps = []
                for key in dut.data.keys():
                    try:
                        temp = dut.get_key_temperature(key)
                    except NameError:
                        temp = -300  # something unrealistic
                    if specifiers.TEMPERATURE in plot_spec and np.isclose(
                        temp, plot_spec[specifiers.TEMPERATURE]
                    ):
                        temps.append(dut.get_key_temperature(key))
                        temps.append(temp)
                    elif specifiers.TEMPERATURE not in plot_spec:
                        temps.append(dut.get_key_temperature(key))
                        temps.append(temp)

                temps = list(set(temps))

+19 −14
Original line number Diff line number Diff line
@@ -405,8 +405,8 @@ class DutLib(object):
            duts.append(dut_filter(str(import_dir)))
            dut_paths.append(import_dir)
        else:
            for child in import_dir.glob("*/" * (dut_level)):  # can be used in windows and linux
                if child.is_dir():  # only directories are allowed
            for child in import_dir.glob("**/*"):  # can be used in windows and linux
                if child.parents[dut_level - 1] == import_dir:
                    child = child.resolve()
                    dut = dut_filter(str(child))
                    if dut is not None:
@@ -1705,24 +1705,29 @@ def _read_dut_folder(dut, path, force, temperature_converter, **kwargs):
    """
    if not force:
        dut.load_db()
    for root, _dirs, files in os.walk(path):
        for name in files:
    if path.is_file():
        key_list = path.name
        key = dut.join_key_temperature(path.stem, temperature_converter=temperature_converter)
        dut.add_data(path, key, force, **kwargs)
    else:
        for file in path.glob("**/*"):
            # get extension name and cast to lower case
            extension = name.split(".")[-1]
            extension = extension.lower()
            extension = file.suffix.lower()
            if (
                (extension == "mdm")
                or (extension == "elpa")
                or (extension == "csv")
                or (extension == "feather")
                (extension == ".mdm")
                or (extension == ".elpa")
                or (extension == ".csv")
                or (extension == ".feather")
            ):
                path_root = Path(root)
                # cut the everything before dut lvl and split the path into groups
                key_list = path_root.relative_to(path).parts
                key_list = file.relative_to(path).parts
                key_list = list(key_list[:-1]) + [
                    Path(key_list[-1]).stem
                ]  # cut away the file extension
                # join the groups together into a valid dut_data key
                key = dut.join_key_temperature(
                    *key_list, name.split(".")[0], temperature_converter=temperature_converter
                    *key_list, temperature_converter=temperature_converter
                )
                dut.add_data(path_root / name, key, force, **kwargs)
                dut.add_data(file, key, force, **kwargs)

    return dut.data
+2 −5
Original line number Diff line number Diff line
@@ -38,11 +38,7 @@ def create_lib():
    # -->Define subroutine at first
    # --->Subroutine: filter_dut
    def filter_dut(dut_name):
        if "dummies" in dut_name:
            return None
        elif "TLM" in dut_name:
            return None
        elif dut_name == "":
        if not "0p25x10x1_full" in dut_name:
            return None
        else:
            dut_transistor = DutMeas(
@@ -69,6 +65,7 @@ def create_lib():
        DC_filter_names=[("fgummel", "dc")],
    )
    # --->Add source measurement information in dmt and to duts
    lib.n_jobs = 1
    lib.import_directory(
        import_dir=folder_path / "test_data",
        dut_filter=filter_dut,