diff --git a/tests/workflow-definitions/duplicate-workflow-variable-names.yaml b/tests/workflow-definitions/duplicate-workflow-variable-names.yaml index 3f8c6f1..3704041 100644 --- a/tests/workflow-definitions/duplicate-workflow-variable-names.yaml +++ b/tests/workflow-definitions/duplicate-workflow-variable-names.yaml @@ -3,7 +3,7 @@ kind: DataManagerWorkflow kind-version: "2024.1" name: duplicate-workflow-variable-names description: A workflow with a duplicate variable name in the input and output -variables: +variable-mapping: inputs: - name: x type: squonk/x-smiles diff --git a/tests/workflow-definitions/simple-python-molprops-with-options.yaml b/tests/workflow-definitions/simple-python-molprops-with-options.yaml index 61f7ad8..36b843d 100644 --- a/tests/workflow-definitions/simple-python-molprops-with-options.yaml +++ b/tests/workflow-definitions/simple-python-molprops-with-options.yaml @@ -3,7 +3,7 @@ kind: DataManagerWorkflow kind-version: "2024.1" name: python-workflow description: A simple python experimental workflow -variables: +variable-mapping: inputs: - name: candidateMolecules type: squonk/x-smiles diff --git a/tests/workflow-definitions/simple-python-molprops.yaml b/tests/workflow-definitions/simple-python-molprops.yaml index aa761a7..18f6282 100644 --- a/tests/workflow-definitions/simple-python-molprops.yaml +++ b/tests/workflow-definitions/simple-python-molprops.yaml @@ -3,7 +3,7 @@ kind: DataManagerWorkflow kind-version: "2024.1" name: python-workflow description: A simple python experimental workflow -variables: +variable-mapping: inputs: - name: candidateMolecules type: squonk/x-smiles diff --git a/tests/workflow-definitions/simple-python-parallel.yaml b/tests/workflow-definitions/simple-python-parallel.yaml index 68ee767..b1978ed 100644 --- a/tests/workflow-definitions/simple-python-parallel.yaml +++ b/tests/workflow-definitions/simple-python-parallel.yaml @@ -3,7 +3,7 @@ kind: DataManagerWorkflow kind-version: "2024.1" name: python-workflow description: A simple branching workflow -variables: +variable-mapping: inputs: - name: candidateMolecules type: squonk/x-smiles diff --git a/tests/workflow-definitions/workflow-options.yaml b/tests/workflow-definitions/workflow-options.yaml index a0392c0..db80bd6 100644 --- a/tests/workflow-definitions/workflow-options.yaml +++ b/tests/workflow-definitions/workflow-options.yaml @@ -3,7 +3,7 @@ kind: DataManagerWorkflow kind-version: "2024.1" name: workflow-options description: Illustrate the use of workflow options -variables: +variable-mapping: options: - name: variableWithoutDefault as: diff --git a/workflow/decoder.py b/workflow/decoder.py index a96e603..652e54c 100644 --- a/workflow/decoder.py +++ b/workflow/decoder.py @@ -68,7 +68,7 @@ def get_variable_names(definition: dict[str, Any]) -> list[str]: outputs and options. This function DOES NOT de-duplicate names, that is the role of the validator.""" wf_variable_names: list[str] = [] - variables: dict[str, Any] | None = definition.get("variables") + variables: dict[str, Any] | None = definition.get("variable-mapping") if variables: wf_variable_names.extend( input_variable["name"] for input_variable in variables.get("inputs", []) @@ -112,7 +112,7 @@ def set_variables_from_options_for_step( assert step_name result = {} - options = definition.get("variables", {}).get("options", []) + options = definition.get("variable-mapping", {}).get("options", []) for opt in options: for step_alias in opt["as"]: @@ -131,7 +131,7 @@ def get_required_variable_names(definition: dict[str, Any]) -> list[str]: variables that are required to be defined when it is RUN - i.e. all those the user needs to provide.""" required_variables: list[str] = [] - variables: dict[str, Any] | None = definition.get("variables") + variables: dict[str, Any] | None = definition.get("variable-mapping") if variables: # All inputs are required (no defaults atm)... required_variables.extend( diff --git a/workflow/workflow-schema.yaml b/workflow/workflow-schema.yaml index 32b7bf8..33226e3 100644 --- a/workflow/workflow-schema.yaml +++ b/workflow/workflow-schema.yaml @@ -28,6 +28,14 @@ properties: items: $ref: "#/definitions/step" variables: + # A Job-compliant set of variable declarations for the workflow. + # This block structure is a reproduction of that used in Job definitions + # and, like JObs, has no current schema. + type: object + additionalProperties: false + variable-mapping: + # Workflow-specific variable declarations, + # used (at the moment) to map workflow variables to steps. type: object additionalProperties: false properties: