-
Notifications
You must be signed in to change notification settings - Fork 0
Description
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.