ChannelTuple has no attribute submodules
- Quantify-core version: 0.7.4
Problem
Line 1348 here looks wrong:
# Special case for ChannelTuples
if isinstance(root, ChannelTuple):
parameters = list(
chain.from_iterable(
ch.parameters.values() for ch in root.submodules._channels # Line 1348
)
)
if parameter in parameters:
modules.append(root)
return parameter.name in root.submodules.name
ChannelTuple does not have a submodules attribute. Try running:
from qcodes.instrument import ChannelTuple
from qcodes.tests.instrument_mocks import DummyInstrument, DummyChannel
inst = DummyInstrument()
chan_list = [
DummyChannel(inst, "channel0", "channel0"),
DummyChannel(inst, "channel1", "channel1"),
]
ct = ChannelTuple(inst, 'dummy_channels', chan_type=DummyChannel, chan_list=chan_list)
ct.submodules # AttributeError: 'ChannelTuple' object has no attribute 'submodules'
print(list(iter(ct))) # [<DummyChannel: dummy_channel0 of DummyInstrument: dummy>, <DummyChannel: dummy_channel1 of DummyInstrument: dummy>]
print(ct._channels) # same thing
Same problem in line 1353.
Solution
Change line 1348 to
ch.parameters.values() for ch in root
And for line 1353, maybe instead do:
if parameter in parameters:
modules.append(root)
return True
else:
return False
Edited by Eugene Huang