Skip to content

Commit c70a9cd

Browse files
committed
Ensure <var> in <exp> syntax works for chained experiment
Previously the `get_var_from_experiment` only looks at `self.experiments`, such that chained_experiments are skipped.
1 parent 3c5123a commit c70a9cd

2 files changed

Lines changed: 11 additions & 3 deletions

File tree

lib/ramble/ramble/experiment_set.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -991,11 +991,10 @@ def get_var_from_experiment(self, experiment, variable):
991991
variable: Name of variable to look up
992992
"""
993993

994-
if experiment not in self.experiments:
994+
exp_app = self.get_experiment(experiment)
995+
if not exp_app:
995996
return None
996997

997-
exp_app = self.experiments[experiment]
998-
999998
return exp_app.expander.expand_var(variable)
1000999

10011000

lib/ramble/ramble/test/experiment_set.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1056,6 +1056,15 @@ def test_chained_experiments_populate_new_experiments(workspace_name):
10561056
assert "basic.test_wl.series2_6.chain.1.basic.test_wl.test1" in exp_set.chained_experiments
10571057
assert "basic.test_wl.test1" in exp_set.experiments
10581058

1059+
assert exp_set.get_var_from_experiment("basic.test_wl.series2_4", "{n_ranks}") == "4"
1060+
assert (
1061+
exp_set.get_var_from_experiment(
1062+
"basic.test_wl.series2_4.chain.0.basic.test_wl.test1", "{n_ranks}"
1063+
)
1064+
== "2"
1065+
)
1066+
assert exp_set.get_var_from_experiment("non_existent.exp.name", "{n_ranks}") is None
1067+
10591068

10601069
def test_chained_experiment_has_correct_directory(workspace_name):
10611070
workspace("create", workspace_name)

0 commit comments

Comments
 (0)