Qcodes icon indicating copy to clipboard operation
Qcodes copied to clipboard

Provide interface for parameters to announce their interdependencies

Open jenshnielsen opened this issue 9 months ago • 0 comments

Currently DelegateParameter (and potentially other classes) implement an interface that allows users to create a parameter that delegates to other parameters. However, when such a parameter is used in a measurement either as a sweeped or as a measured parameter we only captures the values of the delegate parameter. Reconstructing the values of the underlying parameter is only possible by looking at the snapshot of the parameter to find properties such as scale and offset and manually calculate the values of the underlying parameter(s). This makes it hard to reconstruct a delegate mapping more complex than scale and offset and makes the underlying data harder to audit (e.g. what were the actual values set on the instrument).

QCoDeS already provides an interface for allowing parameters to declare that they are inderred from another parameter. This card is to track defining an interface on ParameterBase such that a Parameter can declare that it can be infeered from a set of parameters. This can take the form of

def inferences(self) -> Tuple[ParameterBase,...]
     # error handling missing
     return (self,).extend(self.source.inferences)

or something similar.

Once this is resolved https://github.com/microsoft/Qcodes/issues/7064 can be tackled to make use of this interface to automatically capture data.

Note that for this to be useful the bug reported in https://github.com/microsoft/Qcodes/issues/7051 should be resolved first.

jenshnielsen avatar Apr 11 '25 07:04 jenshnielsen