From 284da7f40be6dba48b1e6fc4ce8a4933648d9a42 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Sun, 21 Sep 2025 17:22:07 +0200 Subject: [PATCH 1/7] Skip requiring resource requirement specification --- client/src/components/Tool/ToolSourceSchema.json | 2 +- lib/galaxy/tool_util/deps/requirements.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/client/src/components/Tool/ToolSourceSchema.json b/client/src/components/Tool/ToolSourceSchema.json index 43242befc5dd..f6a888331a59 100644 --- a/client/src/components/Tool/ToolSourceSchema.json +++ b/client/src/components/Tool/ToolSourceSchema.json @@ -1 +1 @@ -{"$defs": {"BaseUrlParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_baseurl", "default": "gx_baseurl", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "baseurl", "title": "type", "type": "string"}}, "required": ["name", "type"], "title": "BaseUrlParameterModel", "type": "object"}, "BooleanParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_boolean", "default": "gx_boolean", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "boolean", "title": "type", "type": "string"}, "value": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "value"}, "truevalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "truevalue"}, "falsevalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "falsevalue"}}, "required": ["name", "type"], "title": "BooleanParameterModel", "type": "object"}, "Citation": {"properties": {"type": {"title": "type", "type": "string"}, "content": {"title": "content", "type": "string"}}, "required": ["type", "content"], "title": "Citation", "type": "object"}, "ColorParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_color", "default": "gx_color", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "color", "title": "type", "type": "string"}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "value"}}, "required": ["name", "type"], "title": "ColorParameterModel", "type": "object"}, "ConditionalParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_conditional", "default": "gx_conditional", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "conditional", "title": "type", "type": "string"}, "test_parameter": {"anyOf": [{"$ref": "#/$defs/BooleanParameterModel"}, {"$ref": "#/$defs/SelectParameterModel"}], "title": "test_parameter"}, "whens": {"items": {"$ref": "#/$defs/ConditionalWhen"}, "title": "whens", "type": "array"}}, "required": ["name", "type", "test_parameter", "whens"], "title": "ConditionalParameterModel", "type": "object"}, "ConditionalWhen": {"additionalProperties": false, "properties": {"discriminator": {"anyOf": [{"type": "boolean"}, {"type": "string"}], "title": "Discriminator"}, "parameters": {"items": {"anyOf": [{"$ref": "#/$defs/CwlIntegerParameterModel"}, {"$ref": "#/$defs/CwlFloatParameterModel"}, {"$ref": "#/$defs/CwlStringParameterModel"}, {"$ref": "#/$defs/CwlBooleanParameterModel"}, {"$ref": "#/$defs/CwlNullParameterModel"}, {"$ref": "#/$defs/CwlFileParameterModel"}, {"$ref": "#/$defs/CwlDirectoryParameterModel"}, {"$ref": "#/$defs/CwlUnionParameterModel"}, {"$ref": "#/$defs/TextParameterModel"}, {"$ref": "#/$defs/IntegerParameterModel"}, {"$ref": "#/$defs/FloatParameterModel"}, {"$ref": "#/$defs/BooleanParameterModel"}, {"$ref": "#/$defs/HiddenParameterModel"}, {"$ref": "#/$defs/SelectParameterModel"}, {"$ref": "#/$defs/DataParameterModel"}, {"$ref": "#/$defs/DataCollectionParameterModel"}, {"$ref": "#/$defs/DataColumnParameterModel"}, {"$ref": "#/$defs/DirectoryUriParameterModel"}, {"$ref": "#/$defs/RulesParameterModel"}, {"$ref": "#/$defs/DrillDownParameterModel"}, {"$ref": "#/$defs/GroupTagParameterModel"}, {"$ref": "#/$defs/BaseUrlParameterModel"}, {"$ref": "#/$defs/GenomeBuildParameterModel"}, {"$ref": "#/$defs/ColorParameterModel"}, {"$ref": "#/$defs/ConditionalParameterModel"}, {"$ref": "#/$defs/RepeatParameterModel"}, {"$ref": "#/$defs/SectionParameterModel"}]}, "title": "Parameters", "type": "array"}, "is_default_when": {"title": "Is Default When", "type": "boolean"}}, "required": ["discriminator", "parameters", "is_default_when"], "title": "ConditionalWhen", "type": "object"}, "Container": {"properties": {"type": {"enum": ["docker", "singularity"], "title": "type", "type": "string"}, "container_id": {"title": "container_id", "type": "string"}}, "required": ["type", "container_id"], "title": "Container", "type": "object"}, "ContainerRequirement": {"properties": {"type": {"const": "container", "title": "type", "type": "string"}, "container": {"$ref": "#/$defs/Container", "title": "container"}}, "required": ["type", "container"], "title": "ContainerRequirement", "type": "object"}, "CwlBooleanParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "cwl_boolean", "default": "cwl_boolean", "title": "parameter_type", "type": "string"}}, "required": ["name"], "title": "CwlBooleanParameterModel", "type": "object"}, "CwlDirectoryParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "cwl_directory", "default": "cwl_directory", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}}, "required": ["name"], "title": "CwlDirectoryParameterModel", "type": "object"}, "CwlFileParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "cwl_file", "default": "cwl_file", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}}, "required": ["name"], "title": "CwlFileParameterModel", "type": "object"}, "CwlFloatParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "cwl_float", "default": "cwl_float", "title": "parameter_type", "type": "string"}}, "required": ["name"], "title": "CwlFloatParameterModel", "type": "object"}, "CwlIntegerParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "cwl_integer", "default": "cwl_integer", "title": "parameter_type", "type": "string"}}, "required": ["name"], "title": "CwlIntegerParameterModel", "type": "object"}, "CwlNullParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "cwl_null", "default": "cwl_null", "title": "parameter_type", "type": "string"}}, "required": ["name"], "title": "CwlNullParameterModel", "type": "object"}, "CwlStringParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "cwl_string", "default": "cwl_string", "title": "parameter_type", "type": "string"}}, "required": ["name"], "title": "CwlStringParameterModel", "type": "object"}, "CwlUnionParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "cwl_union", "default": "cwl_union", "title": "parameter_type", "type": "string"}, "parameters": {"items": {"anyOf": [{"$ref": "#/$defs/CwlIntegerParameterModel"}, {"$ref": "#/$defs/CwlFloatParameterModel"}, {"$ref": "#/$defs/CwlStringParameterModel"}, {"$ref": "#/$defs/CwlBooleanParameterModel"}, {"$ref": "#/$defs/CwlNullParameterModel"}, {"$ref": "#/$defs/CwlFileParameterModel"}, {"$ref": "#/$defs/CwlDirectoryParameterModel"}, {"$ref": "#/$defs/CwlUnionParameterModel"}]}, "title": "parameters", "type": "array"}}, "required": ["name", "parameters"], "title": "CwlUnionParameterModel", "type": "object"}, "DataCollectionParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_data_collection", "default": "gx_data_collection", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "data_collection", "title": "type", "type": "string"}, "collection_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "collection_type"}, "extensions": {"default": ["data"], "items": {"type": "string"}, "title": "extensions", "type": "array"}, "value": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "value"}}, "required": ["name", "type", "value"], "title": "DataCollectionParameterModel", "type": "object"}, "DataColumnParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_data_column", "default": "gx_data_column", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "data_column", "title": "type", "type": "string"}, "multiple": {"title": "multiple", "type": "boolean"}, "value": {"anyOf": [{"type": "integer"}, {"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "default": null, "title": "value"}}, "required": ["name", "type", "multiple"], "title": "DataColumnParameterModel", "type": "object"}, "DataParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_data", "default": "gx_data", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "data", "title": "type", "type": "string"}, "extensions": {"default": ["data"], "description": "Limit inputs to datasets with these extensions. Use 'data' to allow all input datasets.", "examples": ["txt", "tabular", "tiff"], "items": {"type": "string"}, "title": "extensions", "type": "array"}, "multiple": {"default": false, "description": "Allow multiple values to be selected.", "title": "multiple", "type": "boolean"}, "min": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "title": "min"}, "max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "title": "max"}}, "required": ["name", "type"], "title": "DataParameterModel", "type": "object"}, "DirectoryUriParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_directory_uri", "default": "gx_directory_uri", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "directory", "title": "type", "type": "string"}, "validators": {"default": [], "items": {"anyOf": [{"$ref": "#/$defs/LengthParameterValidatorModel"}, {"$ref": "#/$defs/RegexParameterValidatorModel"}, {"$ref": "#/$defs/ExpressionParameterValidatorModel"}, {"$ref": "#/$defs/EmptyFieldParameterValidatorModel"}]}, "title": "validators", "type": "array"}}, "required": ["name", "type"], "title": "DirectoryUriParameterModel", "type": "object"}, "DrillDownOptionsDict": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "name"}, "value": {"title": "value", "type": "string"}, "options": {"items": {"$ref": "#/$defs/DrillDownOptionsDict"}, "title": "options", "type": "array"}, "selected": {"title": "selected", "type": "boolean"}}, "required": ["name", "value", "options", "selected"], "title": "DrillDownOptionsDict", "type": "object"}, "DrillDownParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_drill_down", "default": "gx_drill_down", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "drill_down", "title": "type", "type": "string"}, "options": {"anyOf": [{"items": {"$ref": "#/$defs/DrillDownOptionsDict"}, "type": "array"}, {"type": "null"}], "default": null, "title": "options"}, "multiple": {"title": "multiple", "type": "boolean"}, "hierarchy": {"enum": ["recurse", "exact"], "title": "hierarchy", "type": "string"}}, "required": ["name", "type", "multiple", "hierarchy"], "title": "DrillDownParameterModel", "type": "object"}, "EmptyFieldParameterValidatorModel": {"additionalProperties": false, "properties": {"type": {"const": "empty_field", "default": "empty_field", "title": "Type", "type": "string"}, "message": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Message"}, "implicit": {"default": false, "title": "Implicit", "type": "boolean"}, "negate": {"default": false, "title": "Negate", "type": "boolean"}}, "title": "EmptyFieldParameterValidatorModel", "type": "object"}, "ExpressionParameterValidatorModel": {"additionalProperties": false, "description": "Check if a one line python expression given expression evaluates to True.\n\nThe expression is given is the content of the validator tag.", "properties": {"type": {"const": "expression", "default": "expression", "title": "Type", "type": "string"}, "message": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Message"}, "implicit": {"default": false, "title": "Implicit", "type": "boolean"}, "negate": {"default": false, "title": "Negate", "type": "boolean"}, "expression": {"title": "Expression", "type": "string"}}, "required": ["expression"], "title": "ExpressionParameterValidatorModel", "type": "object"}, "FilePatternDatasetCollectionDescription": {"properties": {"discover_via": {"const": "pattern", "title": "discover_via", "type": "string"}, "format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "format"}, "visible": {"title": "visible", "type": "boolean"}, "assign_primary_output": {"title": "assign_primary_output", "type": "boolean"}, "directory": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "directory"}, "recurse": {"title": "recurse", "type": "boolean"}, "match_relative_path": {"title": "match_relative_path", "type": "boolean"}, "sort_key": {"enum": ["filename", "name", "designation", "dbkey"], "title": "sort_key", "type": "string"}, "sort_comp": {"enum": ["lexical", "numeric"], "title": "sort_comp", "type": "string"}, "sort_reverse": {"default": false, "title": "sort_reverse", "type": "boolean"}, "pattern": {"title": "pattern", "type": "string"}}, "required": ["discover_via", "format", "visible", "assign_primary_output", "directory", "recurse", "match_relative_path", "sort_key", "sort_comp", "pattern"], "title": "FilePatternDatasetCollectionDescription", "type": "object"}, "FloatParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_float", "default": "gx_float", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "float", "title": "type", "type": "string"}, "value": {"anyOf": [{"type": "number"}, {"type": "null"}], "default": null, "title": "value"}, "min": {"anyOf": [{"type": "number"}, {"type": "null"}], "default": null, "title": "min"}, "max": {"anyOf": [{"type": "number"}, {"type": "null"}], "default": null, "title": "max"}, "validators": {"default": [], "items": {"$ref": "#/$defs/InRangeParameterValidatorModel"}, "title": "validators", "type": "array"}}, "required": ["name", "type"], "title": "FloatParameterModel", "type": "object"}, "GalaxyToolParameterModel": {"discriminator": {"mapping": {"baseurl": "#/$defs/BaseUrlParameterModel", "boolean": "#/$defs/BooleanParameterModel", "color": "#/$defs/ColorParameterModel", "conditional": "#/$defs/ConditionalParameterModel", "data": "#/$defs/DataParameterModel", "data_collection": "#/$defs/DataCollectionParameterModel", "data_column": "#/$defs/DataColumnParameterModel", "directory": "#/$defs/DirectoryUriParameterModel", "drill_down": "#/$defs/DrillDownParameterModel", "float": "#/$defs/FloatParameterModel", "genomebuild": "#/$defs/GenomeBuildParameterModel", "group_tag": "#/$defs/GroupTagParameterModel", "hidden": "#/$defs/HiddenParameterModel", "integer": "#/$defs/IntegerParameterModel", "repeat": "#/$defs/RepeatParameterModel", "rules": "#/$defs/RulesParameterModel", "section": "#/$defs/SectionParameterModel", "select": "#/$defs/SelectParameterModel", "text": "#/$defs/TextParameterModel"}, "propertyName": "type"}, "oneOf": [{"$ref": "#/$defs/TextParameterModel"}, {"$ref": "#/$defs/IntegerParameterModel"}, {"$ref": "#/$defs/FloatParameterModel"}, {"$ref": "#/$defs/BooleanParameterModel"}, {"$ref": "#/$defs/HiddenParameterModel"}, {"$ref": "#/$defs/SelectParameterModel"}, {"$ref": "#/$defs/DataParameterModel"}, {"$ref": "#/$defs/DataCollectionParameterModel"}, {"$ref": "#/$defs/DataColumnParameterModel"}, {"$ref": "#/$defs/DirectoryUriParameterModel"}, {"$ref": "#/$defs/RulesParameterModel"}, {"$ref": "#/$defs/DrillDownParameterModel"}, {"$ref": "#/$defs/GroupTagParameterModel"}, {"$ref": "#/$defs/BaseUrlParameterModel"}, {"$ref": "#/$defs/GenomeBuildParameterModel"}, {"$ref": "#/$defs/ColorParameterModel"}, {"$ref": "#/$defs/ConditionalParameterModel"}, {"$ref": "#/$defs/RepeatParameterModel"}, {"$ref": "#/$defs/SectionParameterModel"}], "title": "GalaxyToolParameterModel"}, "GenomeBuildParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_genomebuild", "default": "gx_genomebuild", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "genomebuild", "title": "type", "type": "string"}, "multiple": {"title": "multiple", "type": "boolean"}}, "required": ["name", "type", "multiple"], "title": "GenomeBuildParameterModel", "type": "object"}, "GroupTagParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_group_tag", "default": "gx_group_tag", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "group_tag", "title": "type", "type": "string"}, "multiple": {"title": "multiple", "type": "boolean"}}, "required": ["name", "type", "multiple"], "title": "GroupTagParameterModel", "type": "object"}, "HelpContent": {"properties": {"format": {"enum": ["restructuredtext", "plain_text", "markdown"], "title": "format", "type": "string"}, "content": {"title": "content", "type": "string"}}, "required": ["format", "content"], "title": "HelpContent", "type": "object"}, "HiddenParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_hidden", "default": "gx_hidden", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "hidden", "title": "type", "type": "string"}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "value"}, "validators": {"default": [], "items": {"anyOf": [{"$ref": "#/$defs/LengthParameterValidatorModel"}, {"$ref": "#/$defs/RegexParameterValidatorModel"}, {"$ref": "#/$defs/ExpressionParameterValidatorModel"}, {"$ref": "#/$defs/EmptyFieldParameterValidatorModel"}]}, "title": "validators", "type": "array"}}, "required": ["name", "type", "value"], "title": "HiddenParameterModel", "type": "object"}, "InRangeParameterValidatorModel": {"additionalProperties": false, "properties": {"type": {"const": "in_range", "default": "in_range", "title": "Type", "type": "string"}, "message": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Message"}, "implicit": {"default": false, "title": "Implicit", "type": "boolean"}, "min": {"anyOf": [{"type": "number"}, {"type": "integer"}, {"type": "null"}], "default": null, "title": "Min"}, "max": {"anyOf": [{"type": "number"}, {"type": "integer"}, {"type": "null"}], "default": null, "title": "Max"}, "exclude_min": {"default": false, "title": "Exclude Min", "type": "boolean"}, "exclude_max": {"default": false, "title": "Exclude Max", "type": "boolean"}, "negate": {"default": false, "title": "Negate", "type": "boolean"}}, "title": "InRangeParameterValidatorModel", "type": "object"}, "IncomingToolOutputCollection": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Parameter name. Used when referencing parameter in workflows.", "title": "name"}, "label": {"anyOf": [{"description": "Output label. Will be used as dataset name in history.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "hidden": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "If true, the output will not be shown in the history.", "title": "hidden"}, "type": {"const": "collection", "title": "type", "type": "string"}, "structure": {"$ref": "#/$defs/ToolOutputCollectionStructure", "title": "structure"}}, "required": ["type", "structure"], "title": "IncomingToolOutputCollection", "type": "object"}, "IncomingToolOutputDataset": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Parameter name. Used when referencing parameter in workflows.", "title": "name"}, "label": {"anyOf": [{"description": "Output label. Will be used as dataset name in history.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "hidden": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "If true, the output will not be shown in the history.", "title": "hidden"}, "type": {"const": "data", "title": "type", "type": "string"}, "format": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The short name for the output datatype.", "title": "format"}, "format_source": {"anyOf": [{"description": "This sets the data type of the output dataset(s) to be the same format as that of the specified tool input.", "type": "string"}, {"type": "null"}], "default": null, "title": "format_source"}, "metadata_source": {"anyOf": [{"description": "This copies the metadata information from the tool\u2019s input dataset to serve as default for information that cannot be detected from the output. One prominent use case is interval data with a non-standard column order that cannot be deduced from a header line, but which is known to be identical in the input and output datasets.", "type": "string"}, {"type": "null"}], "default": null, "title": "metadata_source"}, "discover_datasets": {"anyOf": [{"items": {"anyOf": [{"$ref": "#/$defs/FilePatternDatasetCollectionDescription"}, {"$ref": "#/$defs/ToolProvidedMetadataDatasetCollection"}]}, "type": "array"}, {"type": "null"}], "default": null, "title": "discover_datasets"}, "from_work_dir": {"anyOf": [{"description": "Relative path to a file produced by the tool in its working directory. Output\u2019s contents are set to this file\u2019s contents.", "title": "from_work_dir", "type": "string"}, {"type": "null"}], "default": null, "title": "from_work_dir"}}, "required": ["type"], "title": "IncomingToolOutputDataset", "type": "object"}, "IntegerParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_integer", "default": "gx_integer", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "title": "optional", "type": "boolean"}, "type": {"const": "integer", "title": "type", "type": "string"}, "value": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "title": "value"}, "min": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "title": "min"}, "max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "title": "max"}, "validators": {"default": [], "items": {"$ref": "#/$defs/InRangeParameterValidatorModel"}, "title": "validators", "type": "array"}}, "required": ["name", "type"], "title": "IntegerParameterModel", "type": "object"}, "JavascriptRequirement": {"properties": {"type": {"const": "javascript", "title": "type", "type": "string"}, "expression_lib": {"anyOf": [{"items": {"description": "Provide Javascript/ECMAScript 5.1 code here that will be available for expressions inside the `shell_command` field.", "examples": ["function pickValue() {\n if (inputs.conditional_parameter.test_parameter == \"a\") {\n return inputs.conditional_parameter.integer_parameter\n } else {\n return inputs.conditional_parameter.boolean_parameter\n }\n}"], "title": "expression_lib", "type": "string"}, "type": "array"}, {"type": "null"}], "title": "expression_lib"}}, "required": ["type", "expression_lib"], "title": "JavascriptRequirement", "type": "object"}, "LabelValue": {"properties": {"label": {"title": "Label", "type": "string"}, "value": {"title": "Value", "type": "string"}, "selected": {"title": "Selected", "type": "boolean"}}, "required": ["label", "value", "selected"], "title": "LabelValue", "type": "object"}, "LengthParameterValidatorModel": {"additionalProperties": false, "properties": {"type": {"const": "length", "default": "length", "title": "Type", "type": "string"}, "message": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Message"}, "implicit": {"default": false, "title": "Implicit", "type": "boolean"}, "min": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "title": "Min"}, "max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "title": "Max"}, "negate": {"default": false, "title": "Negate", "type": "boolean"}}, "title": "LengthParameterValidatorModel", "type": "object"}, "NoOptionsParameterValidatorModel": {"additionalProperties": false, "properties": {"type": {"const": "no_options", "default": "no_options", "title": "Type", "type": "string"}, "message": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Message"}, "implicit": {"default": false, "title": "Implicit", "type": "boolean"}, "negate": {"default": false, "title": "Negate", "type": "boolean"}}, "title": "NoOptionsParameterValidatorModel", "type": "object"}, "RegexParameterValidatorModel": {"additionalProperties": false, "description": "Check if a regular expression **matches** the value, i.e. appears\nat the beginning of the value. To enforce a match of the complete value use\n``$`` at the end of the expression. The expression is given is the content\nof the validator tag. Note that for ``selects`` each option is checked\nseparately.", "properties": {"type": {"const": "regex", "default": "regex", "title": "Type", "type": "string"}, "message": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Message"}, "implicit": {"default": false, "title": "Implicit", "type": "boolean"}, "negate": {"default": false, "title": "Negate", "type": "boolean"}, "expression": {"title": "Expression", "type": "string"}}, "required": ["expression"], "title": "RegexParameterValidatorModel", "type": "object"}, "RepeatParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_repeat", "default": "gx_repeat", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "repeat", "title": "type", "type": "string"}, "parameters": {"items": {"anyOf": [{"$ref": "#/$defs/CwlIntegerParameterModel"}, {"$ref": "#/$defs/CwlFloatParameterModel"}, {"$ref": "#/$defs/CwlStringParameterModel"}, {"$ref": "#/$defs/CwlBooleanParameterModel"}, {"$ref": "#/$defs/CwlNullParameterModel"}, {"$ref": "#/$defs/CwlFileParameterModel"}, {"$ref": "#/$defs/CwlDirectoryParameterModel"}, {"$ref": "#/$defs/CwlUnionParameterModel"}, {"$ref": "#/$defs/TextParameterModel"}, {"$ref": "#/$defs/IntegerParameterModel"}, {"$ref": "#/$defs/FloatParameterModel"}, {"$ref": "#/$defs/BooleanParameterModel"}, {"$ref": "#/$defs/HiddenParameterModel"}, {"$ref": "#/$defs/SelectParameterModel"}, {"$ref": "#/$defs/DataParameterModel"}, {"$ref": "#/$defs/DataCollectionParameterModel"}, {"$ref": "#/$defs/DataColumnParameterModel"}, {"$ref": "#/$defs/DirectoryUriParameterModel"}, {"$ref": "#/$defs/RulesParameterModel"}, {"$ref": "#/$defs/DrillDownParameterModel"}, {"$ref": "#/$defs/GroupTagParameterModel"}, {"$ref": "#/$defs/BaseUrlParameterModel"}, {"$ref": "#/$defs/GenomeBuildParameterModel"}, {"$ref": "#/$defs/ColorParameterModel"}, {"$ref": "#/$defs/ConditionalParameterModel"}, {"$ref": "#/$defs/RepeatParameterModel"}, {"$ref": "#/$defs/SectionParameterModel"}]}, "title": "parameters", "type": "array"}, "min": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "title": "min"}, "max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "title": "max"}}, "required": ["name", "type", "parameters"], "title": "RepeatParameterModel", "type": "object"}, "ResourceRequirement": {"properties": {"type": {"const": "resource", "title": "type", "type": "string"}, "cores_min": {"anyOf": [{"anyOf": [{"type": "integer"}, {"type": "number"}], "description": "Minimum reserved number of CPU cores.\nMay be a fractional value to indicate to a scheduling algorithm that one core can be allocated to multiple jobs. For example, a value of 0.25 indicates that up to 4 jobs may run in parallel on 1 core. A value of 1.25 means that up to 3 jobs can run on a 4 core system (4/1.25 \u2248 3).\nThe reported number of CPU cores reserved for the process is a non-zero integer calculated by rounding up the cores request to the next whole number.\n"}, {"type": "null"}], "default": 1, "title": "cores_min"}, "cores_max": {"anyOf": [{"anyOf": [{"type": "integer"}, {"type": "number"}], "description": "Maximum reserved number of CPU cores.\nMay be a fractional value to indicate to a scheduling algorithm that one core can be allocated to multiple jobs. For example, a value of 0.25 indicates that up to 4 jobs may run in parallel on 1 core. A value of 1.25 means that up to 3 jobs can run on a 4 core system (4/1.25 \u2248 3).\nThe reported number of CPU cores reserved for the process is a non-zero integer calculated by rounding up the cores request to the next whole number.\n"}, {"type": "null"}], "default": null, "title": "cores_max"}, "ram_min": {"anyOf": [{"anyOf": [{"type": "integer"}, {"type": "number"}], "description": "Minimum reserved RAM in mebibytes (2**20).\nMay be a fractional value. If so, the actual RAM request is rounded up to the next whole number. The reported amount of RAM reserved for the process is a non-zero integer."}, {"type": "null"}], "default": 256, "title": "ram_min"}, "ram_max": {"anyOf": [{"anyOf": [{"type": "integer"}, {"type": "number"}], "description": "Maximum reserved RAM in mebibytes (2**20).\nMay be a fractional value. If so, the actual RAM request is rounded up to the next whole number. The reported amount of RAM reserved for the process is a non-zero integer."}, {"type": "null"}], "default": null, "title": "ram_max"}, "tmpdir_min": {"anyOf": [{"type": "number"}, {"type": "integer"}, {"type": "null"}], "default": null, "title": "tmpdir_min"}, "tmpdir_max": {"anyOf": [{"type": "number"}, {"type": "integer"}, {"type": "null"}], "default": null, "title": "tmpdir_max"}, "cuda_version_min": {"anyOf": [{"type": "number"}, {"type": "integer"}, {"type": "null"}], "default": null, "title": "cuda_version_min"}, "cuda_compute_capability": {"anyOf": [{"type": "number"}, {"type": "integer"}, {"type": "null"}], "default": null, "title": "cuda_compute_capability"}, "gpu_memory_min": {"anyOf": [{"type": "number"}, {"type": "integer"}, {"type": "null"}], "default": null, "title": "gpu_memory_min"}, "cuda_device_count_min": {"anyOf": [{"type": "number"}, {"type": "integer"}, {"type": "null"}], "default": null, "title": "cuda_device_count_min"}, "cuda_device_count_max": {"anyOf": [{"type": "number"}, {"type": "integer"}, {"type": "null"}], "default": null, "title": "cuda_device_count_max"}, "shm_size": {"anyOf": [{"type": "number"}, {"type": "integer"}, {"type": "null"}], "default": null, "title": "shm_size"}}, "required": ["type"], "title": "ResourceRequirement", "type": "object"}, "RulesParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_rules", "default": "gx_rules", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "rules", "title": "type", "type": "string"}}, "required": ["name", "type"], "title": "RulesParameterModel", "type": "object"}, "SectionParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_section", "default": "gx_section", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "section", "title": "type", "type": "string"}, "parameters": {"items": {"anyOf": [{"$ref": "#/$defs/CwlIntegerParameterModel"}, {"$ref": "#/$defs/CwlFloatParameterModel"}, {"$ref": "#/$defs/CwlStringParameterModel"}, {"$ref": "#/$defs/CwlBooleanParameterModel"}, {"$ref": "#/$defs/CwlNullParameterModel"}, {"$ref": "#/$defs/CwlFileParameterModel"}, {"$ref": "#/$defs/CwlDirectoryParameterModel"}, {"$ref": "#/$defs/CwlUnionParameterModel"}, {"$ref": "#/$defs/TextParameterModel"}, {"$ref": "#/$defs/IntegerParameterModel"}, {"$ref": "#/$defs/FloatParameterModel"}, {"$ref": "#/$defs/BooleanParameterModel"}, {"$ref": "#/$defs/HiddenParameterModel"}, {"$ref": "#/$defs/SelectParameterModel"}, {"$ref": "#/$defs/DataParameterModel"}, {"$ref": "#/$defs/DataCollectionParameterModel"}, {"$ref": "#/$defs/DataColumnParameterModel"}, {"$ref": "#/$defs/DirectoryUriParameterModel"}, {"$ref": "#/$defs/RulesParameterModel"}, {"$ref": "#/$defs/DrillDownParameterModel"}, {"$ref": "#/$defs/GroupTagParameterModel"}, {"$ref": "#/$defs/BaseUrlParameterModel"}, {"$ref": "#/$defs/GenomeBuildParameterModel"}, {"$ref": "#/$defs/ColorParameterModel"}, {"$ref": "#/$defs/ConditionalParameterModel"}, {"$ref": "#/$defs/RepeatParameterModel"}, {"$ref": "#/$defs/SectionParameterModel"}]}, "title": "parameters", "type": "array"}}, "required": ["name", "type", "parameters"], "title": "SectionParameterModel", "type": "object"}, "SelectParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_select", "default": "gx_select", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "select", "title": "type", "type": "string"}, "options": {"anyOf": [{"items": {"$ref": "#/$defs/LabelValue"}, "type": "array"}, {"type": "null"}], "default": null, "title": "options"}, "multiple": {"default": false, "title": "multiple", "type": "boolean"}, "validators": {"default": [], "items": {"$ref": "#/$defs/NoOptionsParameterValidatorModel"}, "title": "validators", "type": "array"}}, "required": ["name", "type"], "title": "SelectParameterModel", "type": "object"}, "TextParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_text", "default": "gx_text", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"description": "Will be displayed on the tool page as the label of the parameter.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "help": {"anyOf": [{"description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "type": "string"}, {"type": "null"}], "default": null, "title": "help"}, "argument": {"anyOf": [{"description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "type": "string"}, {"type": "null"}], "default": null, "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "text", "title": "type", "type": "string"}, "area": {"default": false, "title": "area", "type": "boolean"}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "default_value"}, "default_options": {"default": [], "items": {"$ref": "#/$defs/LabelValue"}, "title": "default_options", "type": "array"}, "validators": {"default": [], "items": {"anyOf": [{"$ref": "#/$defs/LengthParameterValidatorModel"}, {"$ref": "#/$defs/RegexParameterValidatorModel"}, {"$ref": "#/$defs/ExpressionParameterValidatorModel"}, {"$ref": "#/$defs/EmptyFieldParameterValidatorModel"}]}, "title": "validators", "type": "array"}}, "required": ["name", "type"], "title": "TextParameterModel", "type": "object"}, "ToolOutputBoolean": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows.", "title": "name"}, "label": {"anyOf": [{"description": "Output label. Will be used as dataset name in history.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "hidden": {"description": "If true, the output will not be shown in the history.", "title": "hidden"}, "type": {"const": "boolean", "title": "type", "type": "string"}}, "required": ["name", "hidden", "type"], "title": "ToolOutputBoolean", "type": "object"}, "ToolOutputCollectionStructure": {"properties": {"collection_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "collection_type"}, "collection_type_source": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "collection_type_source"}, "collection_type_from_rules": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "collection_type_from_rules"}, "structured_like": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "structured_like"}, "discover_datasets": {"anyOf": [{"items": {"anyOf": [{"$ref": "#/$defs/FilePatternDatasetCollectionDescription"}, {"$ref": "#/$defs/ToolProvidedMetadataDatasetCollection"}]}, "type": "array"}, {"type": "null"}], "default": null, "title": "discover_datasets"}}, "title": "ToolOutputCollectionStructure", "type": "object"}, "ToolOutputFloat": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows.", "title": "name"}, "label": {"anyOf": [{"description": "Output label. Will be used as dataset name in history.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "hidden": {"description": "If true, the output will not be shown in the history.", "title": "hidden"}, "type": {"const": "float", "title": "type", "type": "string"}}, "required": ["name", "hidden", "type"], "title": "ToolOutputFloat", "type": "object"}, "ToolOutputInteger": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows.", "title": "name"}, "label": {"anyOf": [{"description": "Output label. Will be used as dataset name in history.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "hidden": {"description": "If true, the output will not be shown in the history.", "title": "hidden"}, "type": {"const": "integer", "title": "type", "type": "string"}}, "required": ["name", "hidden", "type"], "title": "ToolOutputInteger", "type": "object"}, "ToolOutputText": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows.", "title": "name"}, "label": {"anyOf": [{"description": "Output label. Will be used as dataset name in history.", "type": "string"}, {"type": "null"}], "default": null, "title": "label"}, "hidden": {"description": "If true, the output will not be shown in the history.", "title": "hidden"}, "type": {"const": "text", "title": "type", "type": "string"}}, "required": ["name", "hidden", "type"], "title": "ToolOutputText", "type": "object"}, "ToolProvidedMetadataDatasetCollection": {"properties": {"discover_via": {"const": "tool_provided_metadata", "title": "discover_via", "type": "string"}, "format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "format"}, "visible": {"title": "visible", "type": "boolean"}, "assign_primary_output": {"title": "assign_primary_output", "type": "boolean"}, "directory": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "directory"}, "recurse": {"title": "recurse", "type": "boolean"}, "match_relative_path": {"title": "match_relative_path", "type": "boolean"}}, "required": ["discover_via", "format", "visible", "assign_primary_output", "directory", "recurse", "match_relative_path"], "title": "ToolProvidedMetadataDatasetCollection", "type": "object"}, "XrefDict": {"properties": {"value": {"title": "value", "type": "string"}, "type": {"title": "type", "type": "string"}}, "required": ["value", "type"], "title": "XrefDict", "type": "object"}, "YamlTemplateConfigFile": {"properties": {"content": {"title": "content", "type": "string"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "name"}, "filename": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "filename"}, "eval_engine": {"const": "ecmascript", "default": "ecmascript", "title": "eval_engine", "type": "string"}}, "required": ["content"], "title": "YamlTemplateConfigFile", "type": "object"}}, "properties": {"class": {"const": "GalaxyUserTool", "title": "class_", "type": "string"}, "id": {"description": "Unique identifier for the tool. Should be all lower-case and should not include whitespace.", "examples": ["my-cool-tool"], "maxLength": 255, "minLength": 3, "title": "id", "type": "string"}, "version": {"description": "Version for the tool.", "examples": ["0.1.0"], "title": "version", "type": "string"}, "name": {"description": "The name of the tool, displayed in the tool menu. This is not the same as the tool id, which is a unique identifier for the tool.", "title": "name", "type": "string"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The description is displayed in the tool menu immediately following the hyperlink for the tool.", "title": "description"}, "configfiles": {"anyOf": [{"items": {"$ref": "#/$defs/YamlTemplateConfigFile"}, "type": "array"}, {"type": "null"}], "default": null, "description": "A list of config files for this tool.", "title": "configfiles"}, "container": {"description": "Container image to use for this tool.", "examples": ["quay.io/biocontainers/python:3.13"], "title": "container", "type": "string"}, "requirements": {"anyOf": [{"items": {"anyOf": [{"$ref": "#/$defs/JavascriptRequirement"}, {"$ref": "#/$defs/ResourceRequirement"}, {"$ref": "#/$defs/ContainerRequirement"}]}, "type": "array"}, {"type": "null"}], "default": [], "description": "A list of requirements needed to execute this tool. These can be javascript expressions, resource requirements or container images.", "title": "requirements"}, "shell_command": {"description": "A string that contains the command to be executed. Parameters can be referenced inside $().", "examples": ["head -n '$(inputs.n_lines)' '$(inputs.data_input.path)'"], "title": "shell_command", "type": "string"}, "inputs": {"default": [], "items": {"$ref": "#/$defs/GalaxyToolParameterModel"}, "title": "inputs", "type": "array"}, "outputs": {"default": [], "items": {"discriminator": {"mapping": {"boolean": "#/$defs/ToolOutputBoolean", "collection": "#/$defs/IncomingToolOutputCollection", "data": "#/$defs/IncomingToolOutputDataset", "float": "#/$defs/ToolOutputFloat", "integer": "#/$defs/ToolOutputInteger", "text": "#/$defs/ToolOutputText"}, "propertyName": "type"}, "oneOf": [{"$ref": "#/$defs/IncomingToolOutputDataset"}, {"$ref": "#/$defs/IncomingToolOutputCollection"}, {"$ref": "#/$defs/ToolOutputText"}, {"$ref": "#/$defs/ToolOutputInteger"}, {"$ref": "#/$defs/ToolOutputFloat"}, {"$ref": "#/$defs/ToolOutputBoolean"}]}, "title": "outputs", "type": "array"}, "citations": {"anyOf": [{"items": {"$ref": "#/$defs/Citation"}, "type": "array"}, {"type": "null"}], "default": null, "title": "citations"}, "license": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "A full URI or a a short [SPDX](https://spdx.org/licenses/) identifier for a license for this tool wrapper. The tool wrapper license can be independent of the underlying tool license. This license covers the tool yaml and associated scripts shipped with the tool.", "examples": ["MIT"], "title": "license"}, "edam_operations": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "default": null, "title": "edam_operations"}, "edam_topics": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "default": null, "title": "edam_topics"}, "xrefs": {"anyOf": [{"items": {"$ref": "#/$defs/XrefDict"}, "type": "array"}, {"type": "null"}], "default": null, "title": "xrefs"}, "help": {"anyOf": [{"$ref": "#/$defs/HelpContent"}, {"type": "null"}], "default": null, "description": "Help text shown below the tool interface.", "title": "help"}}, "required": ["class", "id", "version", "name", "container", "shell_command"], "title": "UserToolSource", "type": "object"} \ No newline at end of file +{"$defs": {"BaseUrlParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_baseurl", "default": "gx_baseurl", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "baseurl", "title": "type", "type": "string"}}, "required": ["name", "type"], "title": "BaseUrlParameterModel", "type": "object"}, "BooleanParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_boolean", "default": "gx_boolean", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "boolean", "title": "type", "type": "string"}, "value": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "value"}, "truevalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "truevalue"}, "falsevalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "falsevalue"}}, "required": ["name", "type"], "title": "BooleanParameterModel", "type": "object"}, "Citation": {"properties": {"type": {"title": "type", "type": "string"}, "content": {"title": "content", "type": "string"}}, "required": ["type", "content"], "title": "Citation", "type": "object"}, "ColorParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_color", "default": "gx_color", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "color", "title": "type", "type": "string"}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "value"}}, "required": ["name", "type"], "title": "ColorParameterModel", "type": "object"}, "ConditionalParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_conditional", "default": "gx_conditional", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "conditional", "title": "type", "type": "string"}, "test_parameter": {"anyOf": [{"$ref": "#/$defs/BooleanParameterModel"}, {"$ref": "#/$defs/SelectParameterModel"}], "title": "test_parameter"}, "whens": {"items": {"$ref": "#/$defs/ConditionalWhen"}, "title": "whens", "type": "array"}}, "required": ["name", "type", "test_parameter", "whens"], "title": "ConditionalParameterModel", "type": "object"}, "ConditionalWhen": {"additionalProperties": false, "properties": {"discriminator": {"anyOf": [{"type": "boolean"}, {"type": "string"}], "title": "Discriminator"}, "parameters": {"items": {"anyOf": [{"$ref": "#/$defs/CwlIntegerParameterModel"}, {"$ref": "#/$defs/CwlFloatParameterModel"}, {"$ref": "#/$defs/CwlStringParameterModel"}, {"$ref": "#/$defs/CwlBooleanParameterModel"}, {"$ref": "#/$defs/CwlNullParameterModel"}, {"$ref": "#/$defs/CwlFileParameterModel"}, {"$ref": "#/$defs/CwlDirectoryParameterModel"}, {"$ref": "#/$defs/CwlUnionParameterModel"}, {"$ref": "#/$defs/TextParameterModel"}, {"$ref": "#/$defs/IntegerParameterModel"}, {"$ref": "#/$defs/FloatParameterModel"}, {"$ref": "#/$defs/BooleanParameterModel"}, {"$ref": "#/$defs/HiddenParameterModel"}, {"$ref": "#/$defs/SelectParameterModel"}, {"$ref": "#/$defs/DataParameterModel"}, {"$ref": "#/$defs/DataCollectionParameterModel"}, {"$ref": "#/$defs/DataColumnParameterModel"}, {"$ref": "#/$defs/DirectoryUriParameterModel"}, {"$ref": "#/$defs/RulesParameterModel"}, {"$ref": "#/$defs/DrillDownParameterModel"}, {"$ref": "#/$defs/GroupTagParameterModel"}, {"$ref": "#/$defs/BaseUrlParameterModel"}, {"$ref": "#/$defs/GenomeBuildParameterModel"}, {"$ref": "#/$defs/ColorParameterModel"}, {"$ref": "#/$defs/ConditionalParameterModel"}, {"$ref": "#/$defs/RepeatParameterModel"}, {"$ref": "#/$defs/SectionParameterModel"}]}, "title": "Parameters", "type": "array"}, "is_default_when": {"title": "Is Default When", "type": "boolean"}}, "required": ["discriminator", "parameters", "is_default_when"], "title": "ConditionalWhen", "type": "object"}, "Container": {"properties": {"type": {"enum": ["docker", "singularity"], "title": "type", "type": "string"}, "container_id": {"title": "container_id", "type": "string"}}, "required": ["type", "container_id"], "title": "Container", "type": "object"}, "ContainerRequirement": {"properties": {"type": {"const": "container", "title": "type", "type": "string"}, "container": {"$ref": "#/$defs/Container", "title": "container"}}, "required": ["type", "container"], "title": "ContainerRequirement", "type": "object"}, "CwlBooleanParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "cwl_boolean", "default": "cwl_boolean", "title": "parameter_type", "type": "string"}}, "required": ["name"], "title": "CwlBooleanParameterModel", "type": "object"}, "CwlDirectoryParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "cwl_directory", "default": "cwl_directory", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}}, "required": ["name"], "title": "CwlDirectoryParameterModel", "type": "object"}, "CwlFileParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "cwl_file", "default": "cwl_file", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}}, "required": ["name"], "title": "CwlFileParameterModel", "type": "object"}, "CwlFloatParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "cwl_float", "default": "cwl_float", "title": "parameter_type", "type": "string"}}, "required": ["name"], "title": "CwlFloatParameterModel", "type": "object"}, "CwlIntegerParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "cwl_integer", "default": "cwl_integer", "title": "parameter_type", "type": "string"}}, "required": ["name"], "title": "CwlIntegerParameterModel", "type": "object"}, "CwlNullParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "cwl_null", "default": "cwl_null", "title": "parameter_type", "type": "string"}}, "required": ["name"], "title": "CwlNullParameterModel", "type": "object"}, "CwlStringParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "cwl_string", "default": "cwl_string", "title": "parameter_type", "type": "string"}}, "required": ["name"], "title": "CwlStringParameterModel", "type": "object"}, "CwlUnionParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "cwl_union", "default": "cwl_union", "title": "parameter_type", "type": "string"}, "parameters": {"items": {"anyOf": [{"$ref": "#/$defs/CwlIntegerParameterModel"}, {"$ref": "#/$defs/CwlFloatParameterModel"}, {"$ref": "#/$defs/CwlStringParameterModel"}, {"$ref": "#/$defs/CwlBooleanParameterModel"}, {"$ref": "#/$defs/CwlNullParameterModel"}, {"$ref": "#/$defs/CwlFileParameterModel"}, {"$ref": "#/$defs/CwlDirectoryParameterModel"}, {"$ref": "#/$defs/CwlUnionParameterModel"}]}, "title": "parameters", "type": "array"}}, "required": ["name", "parameters"], "title": "CwlUnionParameterModel", "type": "object"}, "DataCollectionParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_data_collection", "default": "gx_data_collection", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "data_collection", "title": "type", "type": "string"}, "collection_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "collection_type"}, "extensions": {"default": ["data"], "items": {"type": "string"}, "title": "extensions", "type": "array"}, "value": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "value"}}, "required": ["name", "type", "value"], "title": "DataCollectionParameterModel", "type": "object"}, "DataColumnParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_data_column", "default": "gx_data_column", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "data_column", "title": "type", "type": "string"}, "multiple": {"title": "multiple", "type": "boolean"}, "value": {"anyOf": [{"type": "integer"}, {"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "default": null, "title": "value"}}, "required": ["name", "type", "multiple"], "title": "DataColumnParameterModel", "type": "object"}, "DataParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_data", "default": "gx_data", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "data", "title": "type", "type": "string"}, "extensions": {"default": ["data"], "description": "Limit inputs to datasets with these extensions. Use 'data' to allow all input datasets.", "examples": ["txt", "tabular", "tiff"], "items": {"type": "string"}, "title": "extensions", "type": "array"}, "multiple": {"default": false, "description": "Allow multiple values to be selected.", "title": "multiple", "type": "boolean"}, "min": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "title": "min"}, "max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "title": "max"}}, "required": ["name", "type"], "title": "DataParameterModel", "type": "object"}, "DirectoryUriParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_directory_uri", "default": "gx_directory_uri", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "directory", "title": "type", "type": "string"}, "validators": {"default": [], "items": {"anyOf": [{"$ref": "#/$defs/LengthParameterValidatorModel"}, {"$ref": "#/$defs/RegexParameterValidatorModel"}, {"$ref": "#/$defs/ExpressionParameterValidatorModel"}, {"$ref": "#/$defs/EmptyFieldParameterValidatorModel"}]}, "title": "validators", "type": "array"}}, "required": ["name", "type"], "title": "DirectoryUriParameterModel", "type": "object"}, "DrillDownOptionsDict": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "name"}, "value": {"title": "value", "type": "string"}, "options": {"items": {"$ref": "#/$defs/DrillDownOptionsDict"}, "title": "options", "type": "array"}, "selected": {"title": "selected", "type": "boolean"}}, "required": ["name", "value", "options", "selected"], "title": "DrillDownOptionsDict", "type": "object"}, "DrillDownParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_drill_down", "default": "gx_drill_down", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "drill_down", "title": "type", "type": "string"}, "options": {"anyOf": [{"items": {"$ref": "#/$defs/DrillDownOptionsDict"}, "type": "array"}, {"type": "null"}], "default": null, "title": "options"}, "multiple": {"title": "multiple", "type": "boolean"}, "hierarchy": {"enum": ["recurse", "exact"], "title": "hierarchy", "type": "string"}}, "required": ["name", "type", "multiple", "hierarchy"], "title": "DrillDownParameterModel", "type": "object"}, "EmptyFieldParameterValidatorModel": {"additionalProperties": false, "properties": {"type": {"const": "empty_field", "default": "empty_field", "title": "Type", "type": "string"}, "message": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Message"}, "implicit": {"default": false, "title": "Implicit", "type": "boolean"}, "negate": {"default": false, "title": "Negate", "type": "boolean"}}, "title": "EmptyFieldParameterValidatorModel", "type": "object"}, "ExpressionParameterValidatorModel": {"additionalProperties": false, "description": "Check if a one line python expression given expression evaluates to True.\n\nThe expression is given is the content of the validator tag.", "properties": {"type": {"const": "expression", "default": "expression", "title": "Type", "type": "string"}, "message": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Message"}, "implicit": {"default": false, "title": "Implicit", "type": "boolean"}, "negate": {"default": false, "title": "Negate", "type": "boolean"}, "expression": {"title": "Expression", "type": "string"}}, "required": ["expression"], "title": "ExpressionParameterValidatorModel", "type": "object"}, "FilePatternDatasetCollectionDescription": {"properties": {"discover_via": {"const": "pattern", "title": "discover_via", "type": "string"}, "format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "format"}, "visible": {"title": "visible", "type": "boolean"}, "assign_primary_output": {"title": "assign_primary_output", "type": "boolean"}, "directory": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "directory"}, "recurse": {"title": "recurse", "type": "boolean"}, "match_relative_path": {"title": "match_relative_path", "type": "boolean"}, "sort_key": {"enum": ["filename", "name", "designation", "dbkey"], "title": "sort_key", "type": "string"}, "sort_comp": {"enum": ["lexical", "numeric"], "title": "sort_comp", "type": "string"}, "sort_reverse": {"default": false, "title": "sort_reverse", "type": "boolean"}, "pattern": {"title": "pattern", "type": "string"}}, "required": ["discover_via", "format", "visible", "assign_primary_output", "directory", "recurse", "match_relative_path", "sort_key", "sort_comp", "pattern"], "title": "FilePatternDatasetCollectionDescription", "type": "object"}, "FloatParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_float", "default": "gx_float", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "float", "title": "type", "type": "string"}, "value": {"anyOf": [{"type": "number"}, {"type": "null"}], "default": null, "title": "value"}, "min": {"anyOf": [{"type": "number"}, {"type": "null"}], "default": null, "title": "min"}, "max": {"anyOf": [{"type": "number"}, {"type": "null"}], "default": null, "title": "max"}, "validators": {"default": [], "items": {"$ref": "#/$defs/InRangeParameterValidatorModel"}, "title": "validators", "type": "array"}}, "required": ["name", "type"], "title": "FloatParameterModel", "type": "object"}, "GalaxyToolParameterModel": {"discriminator": {"mapping": {"baseurl": "#/$defs/BaseUrlParameterModel", "boolean": "#/$defs/BooleanParameterModel", "color": "#/$defs/ColorParameterModel", "conditional": "#/$defs/ConditionalParameterModel", "data": "#/$defs/DataParameterModel", "data_collection": "#/$defs/DataCollectionParameterModel", "data_column": "#/$defs/DataColumnParameterModel", "directory": "#/$defs/DirectoryUriParameterModel", "drill_down": "#/$defs/DrillDownParameterModel", "float": "#/$defs/FloatParameterModel", "genomebuild": "#/$defs/GenomeBuildParameterModel", "group_tag": "#/$defs/GroupTagParameterModel", "hidden": "#/$defs/HiddenParameterModel", "integer": "#/$defs/IntegerParameterModel", "repeat": "#/$defs/RepeatParameterModel", "rules": "#/$defs/RulesParameterModel", "section": "#/$defs/SectionParameterModel", "select": "#/$defs/SelectParameterModel", "text": "#/$defs/TextParameterModel"}, "propertyName": "type"}, "oneOf": [{"$ref": "#/$defs/TextParameterModel"}, {"$ref": "#/$defs/IntegerParameterModel"}, {"$ref": "#/$defs/FloatParameterModel"}, {"$ref": "#/$defs/BooleanParameterModel"}, {"$ref": "#/$defs/HiddenParameterModel"}, {"$ref": "#/$defs/SelectParameterModel"}, {"$ref": "#/$defs/DataParameterModel"}, {"$ref": "#/$defs/DataCollectionParameterModel"}, {"$ref": "#/$defs/DataColumnParameterModel"}, {"$ref": "#/$defs/DirectoryUriParameterModel"}, {"$ref": "#/$defs/RulesParameterModel"}, {"$ref": "#/$defs/DrillDownParameterModel"}, {"$ref": "#/$defs/GroupTagParameterModel"}, {"$ref": "#/$defs/BaseUrlParameterModel"}, {"$ref": "#/$defs/GenomeBuildParameterModel"}, {"$ref": "#/$defs/ColorParameterModel"}, {"$ref": "#/$defs/ConditionalParameterModel"}, {"$ref": "#/$defs/RepeatParameterModel"}, {"$ref": "#/$defs/SectionParameterModel"}], "title": "GalaxyToolParameterModel"}, "GenomeBuildParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_genomebuild", "default": "gx_genomebuild", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "genomebuild", "title": "type", "type": "string"}, "multiple": {"title": "multiple", "type": "boolean"}}, "required": ["name", "type", "multiple"], "title": "GenomeBuildParameterModel", "type": "object"}, "GroupTagParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_group_tag", "default": "gx_group_tag", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "group_tag", "title": "type", "type": "string"}, "multiple": {"title": "multiple", "type": "boolean"}}, "required": ["name", "type", "multiple"], "title": "GroupTagParameterModel", "type": "object"}, "HelpContent": {"properties": {"format": {"enum": ["restructuredtext", "plain_text", "markdown"], "title": "format", "type": "string"}, "content": {"title": "content", "type": "string"}}, "required": ["format", "content"], "title": "HelpContent", "type": "object"}, "HiddenParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_hidden", "default": "gx_hidden", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "hidden", "title": "type", "type": "string"}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "value"}, "validators": {"default": [], "items": {"anyOf": [{"$ref": "#/$defs/LengthParameterValidatorModel"}, {"$ref": "#/$defs/RegexParameterValidatorModel"}, {"$ref": "#/$defs/ExpressionParameterValidatorModel"}, {"$ref": "#/$defs/EmptyFieldParameterValidatorModel"}]}, "title": "validators", "type": "array"}}, "required": ["name", "type", "value"], "title": "HiddenParameterModel", "type": "object"}, "InRangeParameterValidatorModel": {"additionalProperties": false, "properties": {"type": {"const": "in_range", "default": "in_range", "title": "Type", "type": "string"}, "message": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Message"}, "implicit": {"default": false, "title": "Implicit", "type": "boolean"}, "min": {"anyOf": [{"type": "number"}, {"type": "integer"}, {"type": "null"}], "default": null, "title": "Min"}, "max": {"anyOf": [{"type": "number"}, {"type": "integer"}, {"type": "null"}], "default": null, "title": "Max"}, "exclude_min": {"default": false, "title": "Exclude Min", "type": "boolean"}, "exclude_max": {"default": false, "title": "Exclude Max", "type": "boolean"}, "negate": {"default": false, "title": "Negate", "type": "boolean"}}, "title": "InRangeParameterValidatorModel", "type": "object"}, "IncomingToolOutputCollection": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Parameter name. Used when referencing parameter in workflows.", "title": "name"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Output label. Will be used as dataset name in history.", "title": "label"}, "hidden": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "If true, the output will not be shown in the history.", "title": "hidden"}, "type": {"const": "collection", "title": "type", "type": "string"}, "structure": {"$ref": "#/$defs/ToolOutputCollectionStructure", "title": "structure"}}, "required": ["type", "structure"], "title": "IncomingToolOutputCollection", "type": "object"}, "IncomingToolOutputDataset": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Parameter name. Used when referencing parameter in workflows.", "title": "name"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Output label. Will be used as dataset name in history.", "title": "label"}, "hidden": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "If true, the output will not be shown in the history.", "title": "hidden"}, "type": {"const": "data", "title": "type", "type": "string"}, "format": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The short name for the output datatype.", "title": "format"}, "format_source": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "This sets the data type of the output dataset(s) to be the same format as that of the specified tool input.", "title": "format_source"}, "metadata_source": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "This copies the metadata information from the tool\u2019s input dataset to serve as default for information that cannot be detected from the output. One prominent use case is interval data with a non-standard column order that cannot be deduced from a header line, but which is known to be identical in the input and output datasets.", "title": "metadata_source"}, "discover_datasets": {"anyOf": [{"items": {"anyOf": [{"$ref": "#/$defs/FilePatternDatasetCollectionDescription"}, {"$ref": "#/$defs/ToolProvidedMetadataDatasetCollection"}]}, "type": "array"}, {"type": "null"}], "default": null, "title": "discover_datasets"}, "from_work_dir": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Relative path to a file produced by the tool in its working directory. Output\u2019s contents are set to this file\u2019s contents.", "title": "from_work_dir"}}, "required": ["type"], "title": "IncomingToolOutputDataset", "type": "object"}, "IntegerParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_integer", "default": "gx_integer", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "title": "optional", "type": "boolean"}, "type": {"const": "integer", "title": "type", "type": "string"}, "value": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "title": "value"}, "min": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "title": "min"}, "max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "title": "max"}, "validators": {"default": [], "items": {"$ref": "#/$defs/InRangeParameterValidatorModel"}, "title": "validators", "type": "array"}}, "required": ["name", "type"], "title": "IntegerParameterModel", "type": "object"}, "JavascriptRequirement": {"properties": {"type": {"const": "javascript", "title": "type", "type": "string"}, "expression_lib": {"anyOf": [{"items": {"description": "Provide Javascript/ECMAScript 5.1 code here that will be available for expressions inside the `shell_command` field.", "examples": ["function pickValue() {\n if (inputs.conditional_parameter.test_parameter == \"a\") {\n return inputs.conditional_parameter.integer_parameter\n } else {\n return inputs.conditional_parameter.boolean_parameter\n }\n}"], "title": "expression_lib", "type": "string"}, "type": "array"}, {"type": "null"}], "title": "expression_lib"}}, "required": ["type", "expression_lib"], "title": "JavascriptRequirement", "type": "object"}, "LabelValue": {"properties": {"label": {"title": "Label", "type": "string"}, "value": {"title": "Value", "type": "string"}, "selected": {"title": "Selected", "type": "boolean"}}, "required": ["label", "value", "selected"], "title": "LabelValue", "type": "object"}, "LengthParameterValidatorModel": {"additionalProperties": false, "properties": {"type": {"const": "length", "default": "length", "title": "Type", "type": "string"}, "message": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Message"}, "implicit": {"default": false, "title": "Implicit", "type": "boolean"}, "min": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "title": "Min"}, "max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "title": "Max"}, "negate": {"default": false, "title": "Negate", "type": "boolean"}}, "title": "LengthParameterValidatorModel", "type": "object"}, "NoOptionsParameterValidatorModel": {"additionalProperties": false, "properties": {"type": {"const": "no_options", "default": "no_options", "title": "Type", "type": "string"}, "message": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Message"}, "implicit": {"default": false, "title": "Implicit", "type": "boolean"}, "negate": {"default": false, "title": "Negate", "type": "boolean"}}, "title": "NoOptionsParameterValidatorModel", "type": "object"}, "RegexParameterValidatorModel": {"additionalProperties": false, "description": "Check if a regular expression **matches** the value, i.e. appears\nat the beginning of the value. To enforce a match of the complete value use\n``$`` at the end of the expression. The expression is given is the content\nof the validator tag. Note that for ``selects`` each option is checked\nseparately.", "properties": {"type": {"const": "regex", "default": "regex", "title": "Type", "type": "string"}, "message": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "Message"}, "implicit": {"default": false, "title": "Implicit", "type": "boolean"}, "negate": {"default": false, "title": "Negate", "type": "boolean"}, "expression": {"title": "Expression", "type": "string"}}, "required": ["expression"], "title": "RegexParameterValidatorModel", "type": "object"}, "RepeatParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_repeat", "default": "gx_repeat", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "repeat", "title": "type", "type": "string"}, "parameters": {"items": {"anyOf": [{"$ref": "#/$defs/CwlIntegerParameterModel"}, {"$ref": "#/$defs/CwlFloatParameterModel"}, {"$ref": "#/$defs/CwlStringParameterModel"}, {"$ref": "#/$defs/CwlBooleanParameterModel"}, {"$ref": "#/$defs/CwlNullParameterModel"}, {"$ref": "#/$defs/CwlFileParameterModel"}, {"$ref": "#/$defs/CwlDirectoryParameterModel"}, {"$ref": "#/$defs/CwlUnionParameterModel"}, {"$ref": "#/$defs/TextParameterModel"}, {"$ref": "#/$defs/IntegerParameterModel"}, {"$ref": "#/$defs/FloatParameterModel"}, {"$ref": "#/$defs/BooleanParameterModel"}, {"$ref": "#/$defs/HiddenParameterModel"}, {"$ref": "#/$defs/SelectParameterModel"}, {"$ref": "#/$defs/DataParameterModel"}, {"$ref": "#/$defs/DataCollectionParameterModel"}, {"$ref": "#/$defs/DataColumnParameterModel"}, {"$ref": "#/$defs/DirectoryUriParameterModel"}, {"$ref": "#/$defs/RulesParameterModel"}, {"$ref": "#/$defs/DrillDownParameterModel"}, {"$ref": "#/$defs/GroupTagParameterModel"}, {"$ref": "#/$defs/BaseUrlParameterModel"}, {"$ref": "#/$defs/GenomeBuildParameterModel"}, {"$ref": "#/$defs/ColorParameterModel"}, {"$ref": "#/$defs/ConditionalParameterModel"}, {"$ref": "#/$defs/RepeatParameterModel"}, {"$ref": "#/$defs/SectionParameterModel"}]}, "title": "parameters", "type": "array"}, "min": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "title": "min"}, "max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "title": "max"}}, "required": ["name", "type", "parameters"], "title": "RepeatParameterModel", "type": "object"}, "ResourceRequirement": {"properties": {"type": {"const": "resource", "title": "type", "type": "string"}, "cores_min": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "null"}], "default": 1, "description": "Minimum reserved number of CPU cores.\nMay be a fractional value to indicate to a scheduling algorithm that one core can be allocated to multiple jobs. For example, a value of 0.25 indicates that up to 4 jobs may run in parallel on 1 core. A value of 1.25 means that up to 3 jobs can run on a 4 core system (4/1.25 \u2248 3).\nThe reported number of CPU cores reserved for the process is a non-zero integer calculated by rounding up the cores request to the next whole number.\n", "title": "cores_min"}, "cores_max": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "null"}], "default": null, "description": "Maximum reserved number of CPU cores.\nMay be a fractional value to indicate to a scheduling algorithm that one core can be allocated to multiple jobs. For example, a value of 0.25 indicates that up to 4 jobs may run in parallel on 1 core. A value of 1.25 means that up to 3 jobs can run on a 4 core system (4/1.25 \u2248 3).\nThe reported number of CPU cores reserved for the process is a non-zero integer calculated by rounding up the cores request to the next whole number.\n", "title": "cores_max"}, "ram_min": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "null"}], "default": 256, "description": "Minimum reserved RAM in mebibytes (2**20).\nMay be a fractional value. If so, the actual RAM request is rounded up to the next whole number. The reported amount of RAM reserved for the process is a non-zero integer.", "title": "ram_min"}, "ram_max": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "null"}], "default": null, "description": "Maximum reserved RAM in mebibytes (2**20).\nMay be a fractional value. If so, the actual RAM request is rounded up to the next whole number. The reported amount of RAM reserved for the process is a non-zero integer.", "title": "ram_max"}, "tmpdir_min": {"anyOf": [{"type": "number"}, {"type": "integer"}, {"type": "null"}], "default": null, "title": "tmpdir_min"}, "tmpdir_max": {"anyOf": [{"type": "number"}, {"type": "integer"}, {"type": "null"}], "default": null, "title": "tmpdir_max"}, "cuda_version_min": {"anyOf": [{"type": "number"}, {"type": "integer"}, {"type": "null"}], "default": null, "title": "cuda_version_min"}, "cuda_compute_capability": {"anyOf": [{"type": "number"}, {"type": "integer"}, {"type": "null"}], "default": null, "title": "cuda_compute_capability"}, "gpu_memory_min": {"anyOf": [{"type": "number"}, {"type": "integer"}, {"type": "null"}], "default": null, "title": "gpu_memory_min"}, "cuda_device_count_min": {"anyOf": [{"type": "number"}, {"type": "integer"}, {"type": "null"}], "default": null, "title": "cuda_device_count_min"}, "cuda_device_count_max": {"anyOf": [{"type": "number"}, {"type": "integer"}, {"type": "null"}], "default": null, "title": "cuda_device_count_max"}, "shm_size": {"anyOf": [{"type": "number"}, {"type": "integer"}, {"type": "null"}], "default": null, "title": "shm_size"}}, "required": ["type"], "title": "ResourceRequirement", "type": "object"}, "RulesParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_rules", "default": "gx_rules", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "rules", "title": "type", "type": "string"}}, "required": ["name", "type"], "title": "RulesParameterModel", "type": "object"}, "SectionParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_section", "default": "gx_section", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "section", "title": "type", "type": "string"}, "parameters": {"items": {"anyOf": [{"$ref": "#/$defs/CwlIntegerParameterModel"}, {"$ref": "#/$defs/CwlFloatParameterModel"}, {"$ref": "#/$defs/CwlStringParameterModel"}, {"$ref": "#/$defs/CwlBooleanParameterModel"}, {"$ref": "#/$defs/CwlNullParameterModel"}, {"$ref": "#/$defs/CwlFileParameterModel"}, {"$ref": "#/$defs/CwlDirectoryParameterModel"}, {"$ref": "#/$defs/CwlUnionParameterModel"}, {"$ref": "#/$defs/TextParameterModel"}, {"$ref": "#/$defs/IntegerParameterModel"}, {"$ref": "#/$defs/FloatParameterModel"}, {"$ref": "#/$defs/BooleanParameterModel"}, {"$ref": "#/$defs/HiddenParameterModel"}, {"$ref": "#/$defs/SelectParameterModel"}, {"$ref": "#/$defs/DataParameterModel"}, {"$ref": "#/$defs/DataCollectionParameterModel"}, {"$ref": "#/$defs/DataColumnParameterModel"}, {"$ref": "#/$defs/DirectoryUriParameterModel"}, {"$ref": "#/$defs/RulesParameterModel"}, {"$ref": "#/$defs/DrillDownParameterModel"}, {"$ref": "#/$defs/GroupTagParameterModel"}, {"$ref": "#/$defs/BaseUrlParameterModel"}, {"$ref": "#/$defs/GenomeBuildParameterModel"}, {"$ref": "#/$defs/ColorParameterModel"}, {"$ref": "#/$defs/ConditionalParameterModel"}, {"$ref": "#/$defs/RepeatParameterModel"}, {"$ref": "#/$defs/SectionParameterModel"}]}, "title": "parameters", "type": "array"}}, "required": ["name", "type", "parameters"], "title": "SectionParameterModel", "type": "object"}, "SelectParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_select", "default": "gx_select", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "select", "title": "type", "type": "string"}, "options": {"anyOf": [{"items": {"$ref": "#/$defs/LabelValue"}, "type": "array"}, {"type": "null"}], "default": null, "title": "options"}, "multiple": {"default": false, "title": "multiple", "type": "boolean"}, "validators": {"default": [], "items": {"$ref": "#/$defs/NoOptionsParameterValidatorModel"}, "title": "validators", "type": "array"}}, "required": ["name", "type"], "title": "SelectParameterModel", "type": "object"}, "TextParameterModel": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows or inside command templating.", "title": "name", "type": "string"}, "parameter_type": {"const": "gx_text", "default": "gx_text", "title": "parameter_type", "type": "string"}, "hidden": {"default": false, "title": "hidden", "type": "boolean"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Will be displayed on the tool page as the label of the parameter.", "title": "label"}, "help": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short bit of text, rendered on the tool form just below the associated field to provide information about the field.", "title": "help"}, "argument": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "If the parameter reflects just one command line argument of a certain tool, this tag should be set to that particular argument. It is rendered in parenthesis after the help section, and it will create the name attribute (if not given explicitly) from the argument attribute by stripping leading dashes and replacing all remaining dashes by underscores (e.g. if argument=\"--long-parameter\" then name=\"long_parameter\" is implicit).", "title": "argument"}, "is_dynamic": {"default": false, "title": "is_dynamic", "type": "boolean"}, "optional": {"default": false, "description": "If `false`, parameter must have a value.", "title": "optional", "type": "boolean"}, "type": {"const": "text", "title": "type", "type": "string"}, "area": {"default": false, "title": "area", "type": "boolean"}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "default_value"}, "default_options": {"default": [], "items": {"$ref": "#/$defs/LabelValue"}, "title": "default_options", "type": "array"}, "validators": {"default": [], "items": {"anyOf": [{"$ref": "#/$defs/LengthParameterValidatorModel"}, {"$ref": "#/$defs/RegexParameterValidatorModel"}, {"$ref": "#/$defs/ExpressionParameterValidatorModel"}, {"$ref": "#/$defs/EmptyFieldParameterValidatorModel"}]}, "title": "validators", "type": "array"}}, "required": ["name", "type"], "title": "TextParameterModel", "type": "object"}, "ToolOutputBoolean": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows.", "title": "name"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Output label. Will be used as dataset name in history.", "title": "label"}, "hidden": {"description": "If true, the output will not be shown in the history.", "title": "hidden"}, "type": {"const": "boolean", "title": "type", "type": "string"}}, "required": ["name", "hidden", "type"], "title": "ToolOutputBoolean", "type": "object"}, "ToolOutputCollectionStructure": {"properties": {"collection_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "collection_type"}, "collection_type_source": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "collection_type_source"}, "collection_type_from_rules": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "collection_type_from_rules"}, "structured_like": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "structured_like"}, "discover_datasets": {"anyOf": [{"items": {"anyOf": [{"$ref": "#/$defs/FilePatternDatasetCollectionDescription"}, {"$ref": "#/$defs/ToolProvidedMetadataDatasetCollection"}]}, "type": "array"}, {"type": "null"}], "default": null, "title": "discover_datasets"}}, "title": "ToolOutputCollectionStructure", "type": "object"}, "ToolOutputFloat": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows.", "title": "name"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Output label. Will be used as dataset name in history.", "title": "label"}, "hidden": {"description": "If true, the output will not be shown in the history.", "title": "hidden"}, "type": {"const": "float", "title": "type", "type": "string"}}, "required": ["name", "hidden", "type"], "title": "ToolOutputFloat", "type": "object"}, "ToolOutputInteger": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows.", "title": "name"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Output label. Will be used as dataset name in history.", "title": "label"}, "hidden": {"description": "If true, the output will not be shown in the history.", "title": "hidden"}, "type": {"const": "integer", "title": "type", "type": "string"}}, "required": ["name", "hidden", "type"], "title": "ToolOutputInteger", "type": "object"}, "ToolOutputText": {"properties": {"name": {"description": "Parameter name. Used when referencing parameter in workflows.", "title": "name"}, "label": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Output label. Will be used as dataset name in history.", "title": "label"}, "hidden": {"description": "If true, the output will not be shown in the history.", "title": "hidden"}, "type": {"const": "text", "title": "type", "type": "string"}}, "required": ["name", "hidden", "type"], "title": "ToolOutputText", "type": "object"}, "ToolProvidedMetadataDatasetCollection": {"properties": {"discover_via": {"const": "tool_provided_metadata", "title": "discover_via", "type": "string"}, "format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "format"}, "visible": {"title": "visible", "type": "boolean"}, "assign_primary_output": {"title": "assign_primary_output", "type": "boolean"}, "directory": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "directory"}, "recurse": {"title": "recurse", "type": "boolean"}, "match_relative_path": {"title": "match_relative_path", "type": "boolean"}}, "required": ["discover_via", "format", "visible", "assign_primary_output", "directory", "recurse", "match_relative_path"], "title": "ToolProvidedMetadataDatasetCollection", "type": "object"}, "XrefDict": {"properties": {"value": {"title": "value", "type": "string"}, "type": {"title": "type", "type": "string"}}, "required": ["value", "type"], "title": "XrefDict", "type": "object"}, "YamlTemplateConfigFile": {"properties": {"content": {"title": "content", "type": "string"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "name"}, "filename": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "title": "filename"}, "eval_engine": {"const": "ecmascript", "default": "ecmascript", "title": "eval_engine", "type": "string"}}, "required": ["content"], "title": "YamlTemplateConfigFile", "type": "object"}}, "properties": {"class": {"const": "GalaxyUserTool", "title": "class_", "type": "string"}, "id": {"description": "Unique identifier for the tool. Should be all lower-case and should not include whitespace.", "examples": ["my-cool-tool"], "maxLength": 255, "minLength": 3, "title": "id", "type": "string"}, "version": {"description": "Version for the tool.", "examples": ["0.1.0"], "title": "version", "type": "string"}, "name": {"description": "The name of the tool, displayed in the tool menu. This is not the same as the tool id, which is a unique identifier for the tool.", "title": "name", "type": "string"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The description is displayed in the tool menu immediately following the hyperlink for the tool.", "title": "description"}, "configfiles": {"anyOf": [{"items": {"$ref": "#/$defs/YamlTemplateConfigFile"}, "type": "array"}, {"type": "null"}], "default": null, "description": "A list of config files for this tool.", "title": "configfiles"}, "container": {"description": "Container image to use for this tool.", "examples": ["quay.io/biocontainers/python:3.13"], "title": "container", "type": "string"}, "requirements": {"anyOf": [{"items": {"anyOf": [{"$ref": "#/$defs/JavascriptRequirement"}, {"$ref": "#/$defs/ResourceRequirement"}, {"$ref": "#/$defs/ContainerRequirement"}]}, "type": "array"}, {"type": "null"}], "default": [], "description": "A list of requirements needed to execute this tool. These can be javascript expressions, resource requirements or container images.", "title": "requirements"}, "shell_command": {"description": "A string that contains the command to be executed. Parameters can be referenced inside $().", "examples": ["head -n '$(inputs.n_lines)' '$(inputs.data_input.path)'"], "title": "shell_command", "type": "string"}, "inputs": {"default": [], "items": {"$ref": "#/$defs/GalaxyToolParameterModel"}, "title": "inputs", "type": "array"}, "outputs": {"default": [], "items": {"discriminator": {"mapping": {"boolean": "#/$defs/ToolOutputBoolean", "collection": "#/$defs/IncomingToolOutputCollection", "data": "#/$defs/IncomingToolOutputDataset", "float": "#/$defs/ToolOutputFloat", "integer": "#/$defs/ToolOutputInteger", "text": "#/$defs/ToolOutputText"}, "propertyName": "type"}, "oneOf": [{"$ref": "#/$defs/IncomingToolOutputDataset"}, {"$ref": "#/$defs/IncomingToolOutputCollection"}, {"$ref": "#/$defs/ToolOutputText"}, {"$ref": "#/$defs/ToolOutputInteger"}, {"$ref": "#/$defs/ToolOutputFloat"}, {"$ref": "#/$defs/ToolOutputBoolean"}]}, "title": "outputs", "type": "array"}, "citations": {"anyOf": [{"items": {"$ref": "#/$defs/Citation"}, "type": "array"}, {"type": "null"}], "default": null, "title": "citations"}, "license": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "A full URI or a a short [SPDX](https://spdx.org/licenses/) identifier for a license for this tool wrapper. The tool wrapper license can be independent of the underlying tool license. This license covers the tool yaml and associated scripts shipped with the tool.", "examples": ["MIT"], "title": "license"}, "edam_operations": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "default": null, "title": "edam_operations"}, "edam_topics": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "default": null, "title": "edam_topics"}, "xrefs": {"anyOf": [{"items": {"$ref": "#/$defs/XrefDict"}, "type": "array"}, {"type": "null"}], "default": null, "title": "xrefs"}, "help": {"anyOf": [{"$ref": "#/$defs/HelpContent"}, {"type": "null"}], "default": null, "description": "Help text shown below the tool interface.", "title": "help"}}, "required": ["class", "id", "version", "name", "container", "shell_command"], "title": "UserToolSource", "type": "object"} \ No newline at end of file diff --git a/lib/galaxy/tool_util/deps/requirements.py b/lib/galaxy/tool_util/deps/requirements.py index 6977610d2a78..4fffe1d7dec9 100644 --- a/lib/galaxy/tool_util/deps/requirements.py +++ b/lib/galaxy/tool_util/deps/requirements.py @@ -302,7 +302,9 @@ def resource_requirements_from_list(requirements: Iterable[Dict[str, Any]]) -> L for key in valid_key_set.intersection(set(r.keys())): value = r[key] key = cast(ResourceType, cwl_to_galaxy.get(key, key)) - rr.append(ResourceRequirement(value_or_expression=value, resource_type=key)) + if value is not None: + # all resoure requirement fields are optional + rr.append(ResourceRequirement(value_or_expression=value, resource_type=key)) return rr From 2f969b1212eae2530d265329ca5fa555a2ad2319 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Mon, 22 Sep 2025 09:11:08 +0200 Subject: [PATCH 2/7] Wire up and test resource requirement via tpv This will require https://github.com/galaxyproject/total-perspective-vortex/pull/166 and https://github.com/galaxyproject/total-perspective-vortex/pull/167 --- .../embedded_pulsar_tpv_job_conf.yml | 43 +++++++++++++ .../test_user_defined_tool_job_conf.py | 61 ++++++++++++++++++- 2 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 test/integration/embedded_pulsar_tpv_job_conf.yml diff --git a/test/integration/embedded_pulsar_tpv_job_conf.yml b/test/integration/embedded_pulsar_tpv_job_conf.yml new file mode 100644 index 000000000000..a7c6e1bf3b9d --- /dev/null +++ b/test/integration/embedded_pulsar_tpv_job_conf.yml @@ -0,0 +1,43 @@ +runners: + local: + load: galaxy.jobs.runners.local:LocalJobRunner + pulsar_embed: + load: galaxy.jobs.runners.pulsar:PulsarEmbeddedJobRunner + pulsar_app_config: # this doesn't start without disabling - filelock problem + tool_dependency_dir: none + conda_auto_init: false + conda_auto_install: false + +execution: + default: tpv + environments: + tpv: + runner: dynamic_tpv + tpv_configs: + - destinations: + local: + runner: local + rejected_tool_types: [user_defined] + env: + MEM: '{mem}' + CORES: '{cores}' + user_defined: + runner: pulsar_embed + accepted_tool_types: [user_defined] + remote_metadata: true + docker_enabled: true + require_container: true + docker_net: "none" + max_accepted_cores: 2 + max_accepted_mem: 8 + env: + MEM: '{mem}' + CORES: '{cores}' + global: + default_inherits: default + + tools: + default: + abstract: true + cores: 1 + mem: cores * 4 diff --git a/test/integration/test_user_defined_tool_job_conf.py b/test/integration/test_user_defined_tool_job_conf.py index 6ff37614a333..21e9e854ed32 100644 --- a/test/integration/test_user_defined_tool_job_conf.py +++ b/test/integration/test_user_defined_tool_job_conf.py @@ -2,6 +2,8 @@ import os +import yaml + from galaxy.tool_util_models import UserToolSource from galaxy_test.api.test_tools import TestsTools from galaxy_test.base.populators import ( @@ -12,18 +14,45 @@ SCRIPT_DIRECTORY = os.path.abspath(os.path.dirname(__file__)) EMBEDDED_PULSAR_JOB_CONFIG_FILE = os.path.join(SCRIPT_DIRECTORY, "embedded_pulsar_job_conf.yml") +EMBEDDED_PULSAR_TPV_JOB_CONFIG_FILE = os.path.join(SCRIPT_DIRECTORY, "embedded_pulsar_tpv_job_conf.yml") +TOOL_WITH_RESOURCE_SPECIFICATION = yaml.safe_load( + """class: GalaxyUserTool +id: resource_requirement +version: "0.1" +name: resource_requirement +description: test resource requirement +container: busybox +requirements: + - type: resource + ram_min: 2 + - type: resource + cores_min: 2 +shell_command: | + echo $MEM > galaxy_memory_mb.txt && echo $CORES > galaxy_cores.txt +outputs: + - name: output1 + type: data + format: txt + from_work_dir: galaxy_memory_mb.txt + - name: output2 + type: data + format: txt + from_work_dir: galaxy_cores.txt +""" +) class TestUserDefinedToolRecommendedJobSetup(integration_util.IntegrationTestCase, TestsTools): """Exercies how user defined tools could be run in production.""" framework_tool_and_types = True + job_config_file = EMBEDDED_PULSAR_JOB_CONFIG_FILE dataset_populator: DatasetPopulator @classmethod def handle_galaxy_config_kwds(cls, config): super().handle_galaxy_config_kwds(config) - config["job_config_file"] = EMBEDDED_PULSAR_JOB_CONFIG_FILE + config["job_config_file"] = cls.job_config_file config["enable_celery_tasks"] = False config["metadata_strategy"] = "directory" config["admin_users"] = "udt@galaxy.org" @@ -56,4 +85,32 @@ def test_user_defined_runs_in_correct_destination(self): destination_params = self._get(f"/api/jobs/{response['jobs'][0]['id']}/destination_params").json() assert destination_params["Runner"] == "pulsar_embed" - assert destination_params["require_container"] + + +class TestUserDefinedToolRecommendedJobSetupTPV(TestUserDefinedToolRecommendedJobSetup): + + job_config_file = EMBEDDED_PULSAR_TPV_JOB_CONFIG_FILE + + def test_user_defined_applies_resource_requirements(self): + with ( + self.dataset_populator.test_history() as history_id, + self.dataset_populator.user_tool_execute_permissions(), + ): + # Create a new dynamic tool. + # This is a shell command tool that will echo the input dataset. + dynamic_tool = self.dataset_populator.create_unprivileged_tool( + UserToolSource(**TOOL_WITH_RESOURCE_SPECIFICATION) + ) + # Run tool. + response = self._run( + history_id=history_id, + tool_uuid=dynamic_tool["uuid"], + inputs={}, + wait_for_job=True, + assert_ok=True, + ) + memory, cores = response["outputs"] + memory_content = self.dataset_populator.get_history_dataset_content(history_id, content_id=memory["id"]) + assert memory_content == "2.0\n" + cores_content = self.dataset_populator.get_history_dataset_content(history_id, content_id=cores["id"]) + assert cores_content == "2.0\n" From a3b14b7f5bd41a343c47ed3eec35eaa7d9d8de94 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Mon, 22 Sep 2025 19:53:56 +0200 Subject: [PATCH 3/7] Track https://github.com/galaxyproject/total-perspective-vortex/pull/167/commits/07860d310cf2f043053c196d06897e5f3e856fcc --- test/integration/embedded_pulsar_tpv_job_conf.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/integration/embedded_pulsar_tpv_job_conf.yml b/test/integration/embedded_pulsar_tpv_job_conf.yml index a7c6e1bf3b9d..6049945f3f82 100644 --- a/test/integration/embedded_pulsar_tpv_job_conf.yml +++ b/test/integration/embedded_pulsar_tpv_job_conf.yml @@ -17,13 +17,14 @@ execution: - destinations: local: runner: local - rejected_tool_types: [user_defined] env: MEM: '{mem}' CORES: '{cores}' user_defined: runner: pulsar_embed - accepted_tool_types: [user_defined] + scheduling: + accept: + - tool_type_user_defined remote_metadata: true docker_enabled: true require_container: true From 937478e559d1fc4b8298ae1ec84d9442235ab554 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Wed, 24 Sep 2025 20:39:09 +0200 Subject: [PATCH 4/7] Match last version of https://github.com/galaxyproject/total-perspective-vortex/pull/166 --- .../embedded_pulsar_tpv_job_conf.yml | 26 +++++++++---------- .../test_user_defined_tool_job_conf.py | 17 ++++-------- 2 files changed, 18 insertions(+), 25 deletions(-) diff --git a/test/integration/embedded_pulsar_tpv_job_conf.yml b/test/integration/embedded_pulsar_tpv_job_conf.yml index 6049945f3f82..2e65c0ee6663 100644 --- a/test/integration/embedded_pulsar_tpv_job_conf.yml +++ b/test/integration/embedded_pulsar_tpv_job_conf.yml @@ -18,22 +18,19 @@ execution: local: runner: local env: - MEM: '{mem}' - CORES: '{cores}' + GALAXY_SLOTS: '{cores}' user_defined: runner: pulsar_embed + env: + GALAXY_SLOTS: '{cores}' scheduling: accept: - - tool_type_user_defined - remote_metadata: true - docker_enabled: true - require_container: true - docker_net: "none" - max_accepted_cores: 2 - max_accepted_mem: 8 - env: - MEM: '{mem}' - CORES: '{cores}' + - support_user_defined + params: + remote_metadata: true + docker_enabled: true + require_container: true + docker_net: "none" global: default_inherits: default @@ -41,4 +38,7 @@ execution: default: abstract: true cores: 1 - mem: cores * 4 + user_defined-*: + scheduling: + require: + - support_user_defined diff --git a/test/integration/test_user_defined_tool_job_conf.py b/test/integration/test_user_defined_tool_job_conf.py index 21e9e854ed32..cafcb80864ab 100644 --- a/test/integration/test_user_defined_tool_job_conf.py +++ b/test/integration/test_user_defined_tool_job_conf.py @@ -23,17 +23,11 @@ description: test resource requirement container: busybox requirements: - - type: resource - ram_min: 2 - type: resource cores_min: 2 shell_command: | - echo $MEM > galaxy_memory_mb.txt && echo $CORES > galaxy_cores.txt + echo $GALAXY_SLOTS > galaxy_cores.txt outputs: - - name: output1 - type: data - format: txt - from_work_dir: galaxy_memory_mb.txt - name: output2 type: data format: txt @@ -79,12 +73,13 @@ def test_user_defined_runs_in_correct_destination(self): assert_ok=True, ) - output_content = self.dataset_populator.get_history_dataset_content(history_id) - assert output_content == "abc\n" + # output_content = self.dataset_populator.get_history_dataset_content(history_id) + # assert output_content == "abc\n" with self._different_user(email="udt@galaxy.org"): destination_params = self._get(f"/api/jobs/{response['jobs'][0]['id']}/destination_params").json() assert destination_params["Runner"] == "pulsar_embed" + assert destination_params["require_container"] class TestUserDefinedToolRecommendedJobSetupTPV(TestUserDefinedToolRecommendedJobSetup): @@ -109,8 +104,6 @@ def test_user_defined_applies_resource_requirements(self): wait_for_job=True, assert_ok=True, ) - memory, cores = response["outputs"] - memory_content = self.dataset_populator.get_history_dataset_content(history_id, content_id=memory["id"]) - assert memory_content == "2.0\n" + cores = response["outputs"][0] cores_content = self.dataset_populator.get_history_dataset_content(history_id, content_id=cores["id"]) assert cores_content == "2.0\n" From 6b9497a99316bf9e1a69b1dd3df31b63bef437a3 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Tue, 30 Sep 2025 17:27:11 +0200 Subject: [PATCH 5/7] Bump up total-perspective-vortex conditional dependency --- lib/galaxy/dependencies/conditional-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/dependencies/conditional-requirements.txt b/lib/galaxy/dependencies/conditional-requirements.txt index bbdbfcf1a567..9397f8dcf2a6 100644 --- a/lib/galaxy/dependencies/conditional-requirements.txt +++ b/lib/galaxy/dependencies/conditional-requirements.txt @@ -13,7 +13,7 @@ ldap3==2.9.1 python-pam galaxycloudrunner pkce -total-perspective-vortex>=2.3.2,<3 +total-perspective-vortex>=3,<4 openai # upper version constraint because of https://github.com/galaxyproject/galaxy/issues/20600 redis>=5.3.0,<6 From 3d99c8649d5fc80396a86e5561e4acc754d34e4b Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Tue, 30 Sep 2025 18:39:37 +0200 Subject: [PATCH 6/7] Uncomment basic test assrtions --- test/integration/test_user_defined_tool_job_conf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/integration/test_user_defined_tool_job_conf.py b/test/integration/test_user_defined_tool_job_conf.py index cafcb80864ab..3794eeb0aab7 100644 --- a/test/integration/test_user_defined_tool_job_conf.py +++ b/test/integration/test_user_defined_tool_job_conf.py @@ -73,8 +73,8 @@ def test_user_defined_runs_in_correct_destination(self): assert_ok=True, ) - # output_content = self.dataset_populator.get_history_dataset_content(history_id) - # assert output_content == "abc\n" + output_content = self.dataset_populator.get_history_dataset_content(history_id) + assert output_content == "abc\n" with self._different_user(email="udt@galaxy.org"): destination_params = self._get(f"/api/jobs/{response['jobs'][0]['id']}/destination_params").json() From 992d46f7a17c3c85bebaeb2ec2b3ba4230d362d5 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Tue, 30 Sep 2025 20:27:52 +0200 Subject: [PATCH 7/7] Add total-perspective-vortex to test dependencies Also: - Fix nodejs-wheel dependency in pyproject.toml --- lib/galaxy/dependencies/conditional-requirements.txt | 2 +- lib/galaxy/dependencies/dev-requirements.txt | 7 +++++++ lib/galaxy/dependencies/pinned-requirements.txt | 3 ++- lib/galaxy/dependencies/pinned-test-requirements.txt | 8 ++++++++ pyproject.toml | 3 ++- 5 files changed, 20 insertions(+), 3 deletions(-) diff --git a/lib/galaxy/dependencies/conditional-requirements.txt b/lib/galaxy/dependencies/conditional-requirements.txt index 9397f8dcf2a6..a05061a129f8 100644 --- a/lib/galaxy/dependencies/conditional-requirements.txt +++ b/lib/galaxy/dependencies/conditional-requirements.txt @@ -13,7 +13,7 @@ ldap3==2.9.1 python-pam galaxycloudrunner pkce -total-perspective-vortex>=3,<4 +total-perspective-vortex>=3.1.0,<4 openai # upper version constraint because of https://github.com/galaxyproject/galaxy/issues/20600 redis>=5.3.0,<6 diff --git a/lib/galaxy/dependencies/dev-requirements.txt b/lib/galaxy/dependencies/dev-requirements.txt index df5bc3e0ed11..10c8fef3703a 100644 --- a/lib/galaxy/dependencies/dev-requirements.txt +++ b/lib/galaxy/dependencies/dev-requirements.txt @@ -18,6 +18,7 @@ boto3==1.40.18 botocore==1.40.18 build==1.3.0 cachecontrol==0.14.3 +cachetools==5.5.2 cattrs==25.2.0 certifi==2025.8.3 cffi==2.0.0 ; (implementation_name != 'pypy' and os_name == 'nt') or platform_python_implementation != 'PyPy' @@ -90,6 +91,7 @@ mistune==3.0.2 more-itertools==10.8.0 ; platform_machine != 'ppc64le' and platform_machine != 's390x' msgpack==1.1.1 multidict==6.6.4 +mypy==1.18.2 mypy-extensions==1.1.0 myst-parser==3.0.1 ; python_full_version < '3.10' myst-parser==4.0.1 ; python_full_version >= '3.10' @@ -197,11 +199,16 @@ text-unidecode==1.3 tinydb==4.8.2 toml==0.10.2 tomli==2.2.1 ; python_full_version <= '3.11' +total-perspective-vortex==3.1.0 trio==0.30.0 trio-websocket==0.12.2 tuspy==1.1.0 twill==3.3.1 twine==6.2.0 +types-cachetools==6.2.0.20250827 +types-requests==2.31.0.6 ; python_full_version < '3.10' +types-requests==2.32.4.20250913 ; python_full_version >= '3.10' +types-urllib3==1.26.25.14 ; python_full_version < '3.10' typing-extensions==4.14.1 tzdata==2025.2 ; sys_platform == 'win32' url-normalize==2.2.1 diff --git a/lib/galaxy/dependencies/pinned-requirements.txt b/lib/galaxy/dependencies/pinned-requirements.txt index 12af010bd4d6..bd4d0a47323c 100644 --- a/lib/galaxy/dependencies/pinned-requirements.txt +++ b/lib/galaxy/dependencies/pinned-requirements.txt @@ -124,7 +124,8 @@ mypy-extensions==1.1.0 networkx==3.2.1 ; python_full_version < '3.10' networkx==3.4.2 ; python_full_version == '3.10.*' networkx==3.5 ; python_full_version >= '3.11' -nodejs-wheel==22.13.0 +nodejs-wheel==22.20.0 +nodejs-wheel-binaries==22.20.0 numpy==2.0.2 ; python_full_version < '3.10' numpy==2.2.6 ; python_full_version == '3.10.*' numpy==2.3.3 ; python_full_version >= '3.11' diff --git a/lib/galaxy/dependencies/pinned-test-requirements.txt b/lib/galaxy/dependencies/pinned-test-requirements.txt index da2e14cc45e6..6c924436bedd 100644 --- a/lib/galaxy/dependencies/pinned-test-requirements.txt +++ b/lib/galaxy/dependencies/pinned-test-requirements.txt @@ -12,6 +12,7 @@ backports-asyncio-runner==1.2.0 ; python_full_version < '3.11' boto3==1.40.18 botocore==1.40.18 cachecontrol==0.14.3 +cachetools==5.5.2 cattrs==25.2.0 certifi==2025.8.3 cffi==2.0.0 ; implementation_name != 'pypy' and os_name == 'nt' @@ -66,6 +67,7 @@ mirakuru==2.6.1 mistune==3.0.2 msgpack==1.1.1 multidict==6.6.4 +mypy==1.18.2 mypy-extensions==1.1.0 numpy==2.0.2 ; python_full_version < '3.10' numpy==2.2.6 ; python_full_version == '3.10.*' @@ -76,6 +78,7 @@ owlrl==6.0.2 ; python_full_version < '3.10' owlrl==7.1.4 ; python_full_version >= '3.10' packaging==24.2 ; python_full_version < '3.10' packaging==25.0 ; python_full_version >= '3.10' +pathspec==0.12.1 pfzy==0.3.4 pillow==11.3.0 pkce==1.0.3 @@ -145,10 +148,15 @@ text-unidecode==1.3 tinydb==4.8.2 toml==0.10.2 tomli==2.2.1 ; python_full_version <= '3.11' +total-perspective-vortex==3.1.0 trio==0.30.0 trio-websocket==0.12.2 tuspy==1.1.0 twill==3.3.1 +types-cachetools==6.2.0.20250827 +types-requests==2.31.0.6 ; python_full_version < '3.10' +types-requests==2.32.4.20250913 ; python_full_version >= '3.10' +types-urllib3==1.26.25.14 ; python_full_version < '3.10' typing-extensions==4.14.1 tzdata==2025.2 ; sys_platform == 'win32' url-normalize==2.2.1 diff --git a/pyproject.toml b/pyproject.toml index 44929dbbefe0..4bdfb9a1b562 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -60,7 +60,7 @@ dependencies = [ "mercurial>=6.8.2", # Python 3.13 support "mrcfile", "msal", - "nodejs-wheel==22", + "nodejs-wheel>=22,<23", "numpy>=1.26.0", # Python 3.12 support "numpy>=2.1.0 ; python_version>='3.10'", # Python 3.13 support "openpyxl>=3.1.5", # Minimum version ever tested with @@ -146,6 +146,7 @@ test = [ "seletools", "statsd", "testfixtures", + "total-perspective-vortex>=3.1.0,<4", # https://github.com/galaxyproject/total-perspective-vortex/pull/166 "tuspy", "twill>=3.2.5", # Python 3.13 support "watchdog",