You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For historical reasons the naming of data structures and variables associated with task outputs and prerequisites is a bit confusing:
originally task outputs were task messages, full stop
consequently tasks messages are the fundamental thing stored as outputs and prereqs in the code
and they are usually called "outputs" because they function as outputs
then we added short names for use as triggers in the graph
these got variously called output "names", "labels", or "triggers", and sometimes "outputs"
So that's all a bit confusing. And now, for Cylc 8, the way we talk about optional and required outputs elevates the importance of the short names.
We should:
check that "output" always refers to the short name, in the docs
ensure that naming in the code is consistent with this
and possibly change the internals to store the short outputs as the fundamental entities rather than the task messages. The translation can be done first thing on receiving incoming messages
The text was updated successfully, but these errors were encountered:
Expanding on the above a bit, the way task outputs are stored in the TaskOutputs class is quite ungainly. (3 overlapping dicts: _by_trigger, _by_message, and _required). I'm sure this could be reduced to one simple data structure, particularly if we switch to using only outputs (as opposed to messages) internally.
For historical reasons the naming of data structures and variables associated with task outputs and prerequisites is a bit confusing:
So that's all a bit confusing. And now, for Cylc 8, the way we talk about optional and required outputs elevates the importance of the short names.
We should:
The text was updated successfully, but these errors were encountered: