Skip to content

Resolve "Implement TransformationDAG into plot creators"

What does this MR do?

This MR implements the DAG framework into the plot creator framework to generally allow data selection and transformation.

Furthermore, this MR improves and extends parts of the DAG framework. The need for these changes only occurred during the implementation.

Can this MR be accepted?

  • Integrated the DAG framework into BasePlotCreator
  • Integrated the DAG framework into ExternalPlotCreator and derived classes
    • Specialisation for UniversePlotCreator
    • Specialisation for MultiversePlotCreator
  • Improved and extended DAG framework:
    • Hash computation now \mathcal{O}(100) faster than before (no longer using yaml serialization but python __repr__)
    • Now also internally using the public add_node and add_nodes method -> more consistent interface, also allowing to add nodes after initialisation
    • Added select_base property, which can be set to any reference which then serves as basis for selection.
    • Extended profiling info; TransformationDAG now also aggregates the profiling information from all Transformations.
    • Now recursively resolving DAGReference objects within the arguments
  • Tests added or adjusted
    • Full coverage of new features
  • Documentation written or updated
    • Consistent docstrings
    • Wrote a page on DAG usage in plot framework
    • Updated section on hash computation of Transformation objects
  • Pipeline passes
  • Changelog entry added and version bumped
  • Locally tested in utopya
  • Approved by @jeremiastraub
  • Approved by @herdeanu

Anything to double-check?

Related issues

Closes #99 (closed)

Edited by Utopia Developers

Merge request reports