Loading DMT/core/docu_dut_lib.py +6 −3 Original line number Diff line number Diff line Loading @@ -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)) Loading DMT/core/dut_lib.py +19 −14 Original line number Diff line number Diff line Loading @@ -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: Loading Loading @@ -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 test/test_core_no_interfaces/test_dut_lib.py +2 −5 Original line number Diff line number Diff line Loading @@ -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( Loading @@ -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, Loading Loading
DMT/core/docu_dut_lib.py +6 −3 Original line number Diff line number Diff line Loading @@ -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)) Loading
DMT/core/dut_lib.py +19 −14 Original line number Diff line number Diff line Loading @@ -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: Loading Loading @@ -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
test/test_core_no_interfaces/test_dut_lib.py +2 −5 Original line number Diff line number Diff line Loading @@ -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( Loading @@ -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, Loading