Skip to content

Unified layer for abstracting relationship information #757

Open
@bpbond

Description

@bpbond

Right now the data system contains all the information necessary to figure out dependencies and relationships:

  • For chunks, they report what data objects they need and what they produce. This information is available via the chunk_inputs() and chunk_outputs() functions.
  • For data objects, they contain precursor information. This information is available after the driver runs, and it's also statically preserved in the new GCAM_DATA_MAP object (see dstrace fix #751 ).

Right now, the various parts of the system that use this information (dstrace; graph_chunks; the driver itself; @pralitp 's PR #660 for figuring out minimum call sequence) get this information in tabular form and figure it out for themselves. It would be a lot better to abstract away these data structures, and have the user-facing routines query functions for the relationship information, e.g. by a call to some precursors(x, all = c(TRUE, FALSE)) utility.

In other words, we'd like, following good OOP practice, to expose relationship information without exposing how it's encoded.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions