Skip to content

Commit 4b84b54

Browse files
authored
Merge pull request #7307 from jpdehollain/enhancement/get_after_set_only_on_set
dond enhancement: get after set only when the parameter is set
2 parents 8aab050 + 000b705 commit 4b84b54

3 files changed

Lines changed: 16 additions & 29 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
In dond, only process get_after_set in the loop instances where the parameter is actually being set

src/qcodes/dataset/dond/do_nd.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -815,11 +815,10 @@ def dond(
815815
for act in set_event.actions:
816816
act()
817817
time.sleep(set_event.delay)
818+
if set_event.get_after_set:
819+
set_event.new_value = set_event.parameter()
818820

819-
if set_event.get_after_set:
820-
results[set_event.parameter] = set_event.parameter()
821-
else:
822-
results[set_event.parameter] = set_event.new_value
821+
results[set_event.parameter] = set_event.new_value
823822

824823
meas_value_pair = call_params_meas()
825824
for meas_param, value in meas_value_pair:

tests/dataset/dond/test_doNd.py

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1791,44 +1791,31 @@ def test_dond_get_after_set(_param_set, _param_set_2, _param) -> None:
17911791

17921792
a = TrackingParameter("a", initial_value=0)
17931793
b = TrackingParameter("b", initial_value=0)
1794+
c = TrackingParameter("c", initial_value=0)
17941795

17951796
a.reset_count()
17961797
b.reset_count()
1798+
c.reset_count()
17971799

17981800
assert a.get_count == 0
17991801
assert a.set_count == 0
18001802
assert b.get_count == 0
18011803
assert b.set_count == 0
1804+
assert c.get_count == 0
1805+
assert c.set_count == 0
18021806

1803-
dond(LinSweep(a, 0, 10, n_points, get_after_set=True), b)
1807+
dond(
1808+
LinSweep(a, 0, 10, n_points, get_after_set=True),
1809+
LinSweep(b, 0, 10, n_points, get_after_set=False),
1810+
c,
1811+
)
18041812

18051813
assert a.get_count == n_points
18061814
assert a.set_count == n_points
1807-
assert b.get_count == n_points
1808-
assert b.set_count == 0
1809-
1810-
1811-
@pytest.mark.usefixtures("plot_close", "experiment")
1812-
def test_dond_no_get_after_set(_param_set, _param_set_2, _param) -> None:
1813-
n_points = 10
1814-
1815-
a = TrackingParameter("a", initial_value=0)
1816-
b = TrackingParameter("b", initial_value=0)
1817-
1818-
a.reset_count()
1819-
b.reset_count()
1820-
1821-
assert a.get_count == 0
1822-
assert a.set_count == 0
18231815
assert b.get_count == 0
1824-
assert b.set_count == 0
1825-
1826-
dond(LinSweep(a, 0, 10, n_points, get_after_set=False), b)
1827-
1828-
assert a.get_count == 0
1829-
assert a.set_count == n_points
1830-
assert b.get_count == n_points
1831-
assert b.set_count == 0
1816+
assert b.set_count == n_points**2
1817+
assert c.get_count == n_points**2
1818+
assert c.set_count == 0
18321819

18331820

18341821
@pytest.mark.usefixtures("plot_close", "experiment")

0 commit comments

Comments
 (0)