From a6089703704dba9355988e0ac270115eab3abb93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Sierro?= Date: Tue, 26 Oct 2021 12:34:11 +0200 Subject: [PATCH 1/3] version bump --- src/scgenerator/const.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/scgenerator/const.py b/src/scgenerator/const.py index b8843a2..04f6b00 100644 --- a/src/scgenerator/const.py +++ b/src/scgenerator/const.py @@ -1,7 +1,4 @@ -__version__ = "0.2.3rules" - - -from typing import Any +__version__ = "0.2.4" def pbar_format(worker_id: int): From f4ca0350f024868a112b16adc34a2d80a277310f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Sierro?= Date: Wed, 27 Oct 2021 11:00:41 +0200 Subject: [PATCH 2/3] quick fixes for old version --- src/scgenerator/_utils/__init__.py | 2 +- src/scgenerator/_utils/parameter.py | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/scgenerator/_utils/__init__.py b/src/scgenerator/_utils/__init__.py index ea0184f..5c88046 100644 --- a/src/scgenerator/_utils/__init__.py +++ b/src/scgenerator/_utils/__init__.py @@ -202,7 +202,7 @@ def load_config_sequence(path: os.PathLike) -> tuple[Path, list[dict[str, Any]]] ): if len(common := root_vary.keys() & first_vary.keys()) != 0: raise ValueError(f"These variable keys are specified twice : {common!r}") - configs[0] |= {k: v for k, v in loaded_config.items() if k != "variable"} + # configs[0] |= {k: v for k, v in loaded_config.items() if k != "variable"} configs[0]["variable"].append(dict(num=list(range(configs[0].get("repeat", 1))))) return Path(final_path), configs diff --git a/src/scgenerator/_utils/parameter.py b/src/scgenerator/_utils/parameter.py index 733939e..26ad2bd 100644 --- a/src/scgenerator/_utils/parameter.py +++ b/src/scgenerator/_utils/parameter.py @@ -880,10 +880,12 @@ class Configuration: self.z_num += config["z_num"] fiber_names.add(config["name"]) vary_dict_list: list[dict[str, list]] = config.pop("variable") + if len(vary_dict_list) > 1: + vary_dict_list = [d for d in vary_dict_list if len(d) > 0] self.variationer.append(vary_dict_list) self.fiber_paths.append( utils.ensure_folder( - self.final_path / fiber_folder(i, self.name, config["name"]), + self.final_path / fiber_folder(i, self.name, Path(config["name"]).name), mkdir=False, prevent_overwrite=not self.overwrite, ) @@ -1027,7 +1029,7 @@ class Configuration: num = utils.find_last_spectrum_num(data_dir) if config_dict is None: try: - config_dict = utils._open_config(data_dir / PARAM_FN) + config_dict = utils.load_toml(data_dir / PARAM_FN) except FileNotFoundError: self.logger.warning(f"did not find {PARAM_FN!r} in {data_dir}") return self.State.ABSENT, 0 From 9cea2178b3bb0f69c7220dea6c9e8777a1e053e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Sierro?= Date: Mon, 1 Nov 2021 08:39:00 +0100 Subject: [PATCH 3/3] small stuff --- src/scgenerator/_utils/variationer.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/scgenerator/_utils/variationer.py b/src/scgenerator/_utils/variationer.py index 2e8ba9f..20181ad 100644 --- a/src/scgenerator/_utils/variationer.py +++ b/src/scgenerator/_utils/variationer.py @@ -79,7 +79,7 @@ class Variationer: len_to_test = len(values[0]) if not all(len(v) == len_to_test for v in values[1:]): raise VariationSpecsError( - f"variable items should all have the same number of parameters" + "variable items should all have the same number of parameters" ) num_vars.append(len_to_test) if len(num_vars) == 0: @@ -172,8 +172,7 @@ class VariationDescriptor(BaseModel): str_list = [] for p_name, p_value in self.flat: - ps = p_name.replace("/", "").replace("\\", "").replace(PARAM_SEPARATOR, "") - vs = self.format_value(p_name, p_value).replace("/", "").replace(PARAM_SEPARATOR, "") + ps, vs = self._format_single_pair(p_name, p_value) str_list.append(ps + PARAM_SEPARATOR + vs) tmp_name = PARAM_SEPARATOR.join(str_list) if not add_identifier: @@ -182,6 +181,11 @@ class VariationDescriptor(BaseModel): self.identifier + PARAM_SEPARATOR + self.branch.identifier + PARAM_SEPARATOR + tmp_name ) + def _format_single_pair(self, p_name: str, p_value: Any) -> tuple[str, str]: + ps = p_name.replace("/", "").replace("\\", "").replace(PARAM_SEPARATOR, "") + vs = self.format_value(p_name, p_value).replace("/", "").replace(PARAM_SEPARATOR, "") + return ps, vs + def __getitem__(self, key) -> "VariationDescriptor": return VariationDescriptor( raw_descr=self.raw_descr[key], index=self.index[key], separator=self.separator @@ -235,6 +239,13 @@ class VariationDescriptor(BaseModel): yield from p.iter_parents() yield self + @property + def short(self) -> str: + """shortened description of the simulation""" + return " ".join( + self._format_single_pair(p, v)[1] for p, v in self.flat if p not in {"fiber", "num"} + ) + @property def flat(self) -> list[tuple[str, Any]]: out = []