Qcodes icon indicating copy to clipboard operation
Qcodes copied to clipboard

Introduce ParamSpecTree

Open WilliamHPNielsen opened this issue 6 years ago • 0 comments

This PR introduces the ParamSpecTree object for describing the parameter tree that we have so great hopes for.

The PR is very much work in progress, but I'm opening it now just so we can look at the code together.

EDIT 2019-05-08: The dependencies.py is now self-consistent and passes its own test. I'll start working on updating the rest of code base right away. You can get an idea of ParamSpecTrees from the code already.

A small outline here: One or more ParamSpecBase objects can be combined into a ParamSpecTree:

ps1 = ParamSpecBase('conductance', 'numeric', 'conductance', 'e^2/hbar')
ps2 = ParamSpecBase('vg', 'numeric', 'gate voltage', 'V')
ps3 = ParamSpecBase('vp', 'numeric', 'plunger voltage', 'V')
tree1 = ParamSpecTree(ps1, ps2, ps3)

the InterDependencies_ object is instantiated with one or two tuple of trees:

idps = InterDependencies_(dependencies=(tree1, tree2), inferences=(tree3,))

under the hood, the InterDependencies_ object puts those trees into two ParamSpecGrove objects. Once we kill the inferences, a single ParamSpecGrove will take the place of the InterDependencies_ object.

Note that this PR contains the changes of #1547 .

EDIT 2019-05-16: Further development is hinging on/blocked by #1566

WilliamHPNielsen avatar May 03 '19 14:05 WilliamHPNielsen