add dependencies to blocks and reorder based on that
Blocks can depend on other blocks. This merge request introduces block names, block dependencies and a mechanism to reorder blocks based on these dependencies.
To declare a dependency for a block, you can call
addDependency(blockName="OverlapRemoval", required=False)
in the __init__
function of the class definition. In this example, adding
the above line of code to the JVT
block, would move the JVT
block after
OverlapRemoval
, if it is present, during the fullConfigure
step; otherwise,
the JVT
block will not be moved. If required
is set to True
(default), the
code will throw an error if theOverlapRemoval
block is not present.
When a dependency is added to a block, an option named ignoreDependencies
will automatically be added to the block. The option is a list and expects
the name of one or more dependencies. In the example above, we can ignore
the dependency on OverlapRemoval
for JVT
by adding the following to the
yaml file:
JVT:
ignoreDependencies:
- OverlapRemoval
You can do the same for the block configuration as well.
Note: the mechanism that moves blocks can only move blocks forward. This can be extended, if desired.