Skip to content

Commit

Permalink
Merge pull request #311 from caracal-pipeline/issue-309
Browse files Browse the repository at this point in the history
fixes #309. Fixes #310
  • Loading branch information
o-smirnov authored Jun 10, 2024
2 parents 9448658 + 458e0cd commit 735ac3a
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 6 deletions.
10 changes: 5 additions & 5 deletions scabha/evaluator.py
Original file line number Diff line number Diff line change
Expand Up @@ -621,12 +621,12 @@ def evaluate_dict(self, params: Dict[str, Any],
del corresponding_ns[name]
elif new_value is not value and new_value != value:
if params_out is params:
params_out = params.copy()
params_out = OrderedDict(**params)
params_out[name] = new_value
if corresponding_ns:
corresponding_ns[name] = new_value
elif isinstance(value, (dict, DictConfig)) and recursive:
params_out[name] = self.evaluate_dict(
value = self.evaluate_dict(
value,
corresponding_ns,
defaults,
Expand All @@ -635,9 +635,9 @@ def evaluate_dict(self, params: Dict[str, Any],
recursive=True,
verbose=verbose
)
params_out[name] = value
elif isinstance(value, (list, ListConfig)) and recursive:
params_out[name] = type(value)(
[
seq = [
*self.evaluate_dict(
{f"[{i}]": v for i, v in enumerate(value)},
corresponding_ns,
Expand All @@ -648,7 +648,7 @@ def evaluate_dict(self, params: Dict[str, Any],
verbose=verbose
).values()
]
)
params_out[name] = type(value)(seq)

return params_out

Expand Down
2 changes: 1 addition & 1 deletion stimela/kitchen/recipe.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ def do_assign(assignments):
Substitution errors are ignored at this stage, a final round of re-evaluation with ignore=False is done at the end.
"""
# flatten assignments
flattened = flatten_dict(assignments)
flattened = assignments # flatten_dict(assignments)
# drop entries protected from assignment
flattened = {name: value for name, value in flattened.items() if name not in self._protected_from_assign}
# merge into recipe namespace
Expand Down
2 changes: 2 additions & 0 deletions stimela/kitchen/step.py
Original file line number Diff line number Diff line change
Expand Up @@ -410,6 +410,8 @@ def run(self, backend: Optional[Dict] = None, subst: Optional[Dict[str, Any]] =
skip = self._skip
if self._skip is None and subst is not None:
skip = evaluate_and_substitute_object(self.skip, subst, location=[self.fqname, "skip"])
if skip is UNSET: # skip: =IFSET(recipe.foo) will return UNSET
skip = False
self.log.debug(f"dynamic skip attribute evaluation returns {skip}")
# formulas with unset variables return UNSET instance
if isinstance(skip, UNSET):
Expand Down

0 comments on commit 735ac3a

Please sign in to comment.