Closed Yoshanuikabundi closed 11 months ago
@Yoshanuikabundi I think "root to leaf" doesn't make sense in this situation, you can define the graph as parent tasks pointing to children, or children tasks pointing to their parents, (i.e. either parents or children could be the root) and both are probably used in the codebase as both views are useful in different situations.
ProtocolDAG.protocol_unit_results
- this order is returning objects in the order that you could execute them in.ProtocolUnit
has a list of dependencies
which refer to tasks that must be completed for it to execute, (i.e. a child pulls data into a task, rather than a parent pushing data into a child).result_graph
have children pointing towards parents. E.g. a MD unit would point towards an equilibration unit.
ProtocolDag.result_graph
andProtocolDAG.protocol_unit_results
both discuss a dependency order, but are unclear about what that ordering is - do the result graph edges point from source to dependency or the reverse? Is a dependency order uniquely defined? Does it go from root to leaf or leaf to root?There are probably other similar issues in similar methods. See also https://github.com/OpenFreeEnergy/gufe/pull/220#pullrequestreview-1599093202