Skip to content

To what extent input connection validation? #87

@liamhuber

Description

@liamhuber

In #69, #76, #85 and #86, we work fairly hard to validate that the recipes are internally consistent. This includes ensuring that all requested edges can be made given the available nodes and their available IO ports.

One thing that isn't covered is the validation that inputs are sufficiently connected to data. I.e., some internal input of a workflow or other flow control recipe may be left unconnected.

In the case that such a node is an AtomicNode, this might be ok as those can verifiably get default values. We don't ever want to log those actual values here (this is a recipe format and data free), but it may behoove us to at least indicate for which input ports defaults are available.

For the other recipe formats, I had envisioned them being viable alone -- i.e. not parsed from a python function (which might have defaults) but being usable purely from their data format, e.g. read from a JSON file, in which case defaults are never available for any ports.

I'm not sure how I feel about this, perhaps demanding that the recipes be usable without default value specification is too annoying? Or perhaps we want to remain ambivalent and simply not check one way or the other that input is sufficiently provided to all nodes? I am also not completely against the verbose but very reliable validation that all non-atomic nodes are fully input-connected, and that atomic nodes are explicit about which ports can be left safely alone.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions