Mercurial > repos > shellac > guppy_basecaller
diff env/lib/python3.7/site-packages/cwltool/schemas/v1.0/CommandLineTool.yml @ 5:9b1c78e6ba9c draft default tip
"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author | shellac |
---|---|
date | Mon, 01 Jun 2020 08:59:25 -0400 |
parents | 79f47841a781 |
children |
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/cwltool/schemas/v1.0/CommandLineTool.yml Thu May 14 16:47:39 2020 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,966 +0,0 @@ -$base: "https://w3id.org/cwl/cwl#" - -$namespaces: - cwl: "https://w3id.org/cwl/cwl#" - -$graph: - -- name: CommandLineToolDoc - type: documentation - doc: - - | - # Common Workflow Language (CWL) Command Line Tool Description, v1.0.2 - - This version: - * https://w3id.org/cwl/v1.0/ - - Current version: - * https://w3id.org/cwl/ - - "\n\n" - - {$include: contrib.md} - - "\n\n" - - | - # Abstract - - A Command Line Tool is a non-interactive executable program that reads - some input, performs a computation, and terminates after producing some - output. Command line programs are a flexible unit of code sharing and - reuse, unfortunately the syntax and input/output semantics among command - line programs is extremely heterogeneous. A common layer for describing - the syntax and semantics of programs can reduce this incidental - complexity by providing a consistent way to connect programs together. - This specification defines the Common Workflow Language (CWL) Command - Line Tool Description, a vendor-neutral standard for describing the - syntax and input/output semantics of command line programs. - - - {$include: intro.md} - - - | - ## Introduction to CWL Command Line Tool standard v1.0.2 - - This specification represents the third stable release from the CWL - group. Since the initial v1.0 release, v1.0.2 introduces the following - updates to the CWL Command Line Tool standard. Documents should continue - to use `cwlVersion: v1.0` and existing v1.0 documents remain valid, - however CWL documents that relied on previously undefined or - underspecified behavior may have slightly different behavior in v1.0.2. - - * 13 July 2016: Mark `baseCommand` as optional and update descriptive text. - * 14 November 2016: Clarify [SoftwareRequirement](#SoftwareRequirement) - `spec` fields. - * 12 March 2017: - * Mark `default` as not required for link checking. - * Add note that files in InitialWorkDir must have path in output directory. - * Add note that writable: true applies recursively. - * 23 July 2017: (v1.0.1) - * Add clarification about scattering over empty arrays. - * Clarify interpretation of `secondaryFiles` on inputs. - * Expanded discussion of semantics of `File` and `Directory` types - * Fixed typo "EMACScript" to "ECMAScript" - * Clarified application of input parameter default values when the input is `null` or undefined. - * Clarified valid types and meaning of the format field on inputs versus outputs - * Clarify that command line arguments must not interpreted as shell except when shellQuote: false - * Clarify behavior of `entryname` - * 10 August 2017: (v1.0.2) - * Clarify behavior resolving expressions in `secondaryFile` - - Since draft-3, v1.0 introduces the following changes and additions - to the CWL Command Line Tool standard: - - * The [Directory](#Directory) type. - * Syntax simplifcations: denoted by the `map<>` syntax. Example: inputs - contains a list of items, each with an id. Now one can specify - a mapping of that identifier to the corresponding - `CommandInputParamater`. - ``` - inputs: - - id: one - type: string - doc: First input parameter - - id: two - type: int - doc: Second input parameter - ``` - can be - ``` - inputs: - one: - type: string - doc: First input parameter - two: - type: int - doc: Second input parameter - ``` - * [InitialWorkDirRequirement](#InitialWorkDirRequirement): list of - files and subdirectories to be present in the output directory prior - to execution. - * Shortcuts for specifying the standard [output](#stdout) and/or - [error](#stderr) streams as a (streamable) File output. - * [SoftwareRequirement](#SoftwareRequirement) for describing software - dependencies of a tool. - * The common `description` field has been renamed to `doc`. - - - ## Purpose - - Standalone programs are a flexible and interoperable form of code reuse. - Unlike monolithic applications, applications and analysis workflows which - are composed of multiple separate programs can be written in multiple - languages and execute concurrently on multiple hosts. However, POSIX - does not dictate computer-readable grammar or semantics for program input - and output, resulting in extremely heterogeneous command line grammar and - input/output semantics among program. This is a particular problem in - distributed computing (multi-node compute clusters) and virtualized - environments (such as Docker containers) where it is often necessary to - provision resources such as input files before executing the program. - - Often this gap is filled by hard coding program invocation and - implicitly assuming requirements will be met, or abstracting program - invocation with wrapper scripts or descriptor documents. Unfortunately, - where these approaches are application or platform specific it creates a - significant barrier to reproducibility and portability, as methods - developed for one platform must be manually ported to be used on new - platforms. Similarly it creates redundant work, as wrappers for popular - tools must be rewritten for each application or platform in use. - - The Common Workflow Language Command Line Tool Description is designed to - provide a common standard description of grammar and semantics for - invoking programs used in data-intensive fields such as Bioinformatics, - Chemistry, Physics, Astronomy, and Statistics. This specification - defines a precise data and execution model for Command Line Tools that - can be implemented on a variety of computing platforms, ranging from a - single workstation to cluster, grid, cloud, and high performance - computing platforms. - - - {$include: concepts.md} - - {$include: invocation.md} - - -- type: record - name: EnvironmentDef - doc: | - Define an environment variable that will be set in the runtime environment - by the workflow platform when executing the command line tool. May be the - result of executing an expression, such as getting a parameter from input. - fields: - - name: envName - type: string - doc: The environment variable name - - name: envValue - type: [string, Expression] - doc: The environment variable value - -- type: record - name: CommandLineBinding - extends: InputBinding - doc: | - - When listed under `inputBinding` in the input schema, the term - "value" refers to the the corresponding value in the input object. For - binding objects listed in `CommandLineTool.arguments`, the term "value" - refers to the effective value after evaluating `valueFrom`. - - The binding behavior when building the command line depends on the data - type of the value. If there is a mismatch between the type described by - the input schema and the effective value, such as resulting from an - expression evaluation, an implementation must use the data type of the - effective value. - - - **string**: Add `prefix` and the string to the command line. - - - **number**: Add `prefix` and decimal representation to command line. - - - **boolean**: If true, add `prefix` to the command line. If false, add - nothing. - - - **File**: Add `prefix` and the value of - [`File.path`](#File) to the command line. - - - **array**: If `itemSeparator` is specified, add `prefix` and the join - the array into a single string with `itemSeparator` separating the - items. Otherwise first add `prefix`, then recursively process - individual elements. - - - **object**: Add `prefix` only, and recursively add object fields for - which `inputBinding` is specified. - - - **null**: Add nothing. - - fields: - - name: position - type: int? - doc: "The sorting key. Default position is 0." - - name: prefix - type: string? - doc: "Command line prefix to add before the value." - - name: separate - type: boolean? - doc: | - If true (default), then the prefix and value must be added as separate - command line arguments; if false, prefix and value must be concatenated - into a single command line argument. - - name: itemSeparator - type: string? - doc: | - Join the array elements into a single string with the elements - separated by by `itemSeparator`. - - name: valueFrom - type: - - "null" - - string - - Expression - jsonldPredicate: "cwl:valueFrom" - doc: | - If `valueFrom` is a constant string value, use this as the value and - apply the binding rules above. - - If `valueFrom` is an expression, evaluate the expression to yield the - actual value to use to build the command line and apply the binding - rules above. If the inputBinding is associated with an input - parameter, the value of `self` in the expression will be the value of - the input parameter. Input parameter defaults (as specified by the - `InputParameter.default` field) must be applied before evaluating the - expression. - - When a binding is part of the `CommandLineTool.arguments` field, - the `valueFrom` field is required. - - - name: shellQuote - type: boolean? - doc: | - If `ShellCommandRequirement` is in the requirements for the current command, - this controls whether the value is quoted on the command line (default is true). - Use `shellQuote: false` to inject metacharacters for operations such as pipes. - - If `shellQuote` is true or not provided, the implementation must not - permit interpretation of any shell metacharacters or directives. - -- type: record - name: CommandOutputBinding - extends: OutputBinding - doc: | - Describes how to generate an output parameter based on the files produced - by a CommandLineTool. - - The output parameter value is generated by applying these operations in the - following order: - - - glob - - loadContents - - outputEval - - secondaryFiles - fields: - - name: glob - type: - - "null" - - string - - Expression - - type: array - items: string - doc: | - Find files relative to the output directory, using POSIX glob(3) - pathname matching. If an array is provided, find files that match any - pattern in the array. If an expression is provided, the expression must - return a string or an array of strings, which will then be evaluated as - one or more glob patterns. Must only match and return files which - actually exist. - - name: loadContents - type: - - "null" - - boolean - jsonldPredicate: "cwl:loadContents" - doc: | - For each file matched in `glob`, read up to - the first 64 KiB of text from the file and place it in the `contents` - field of the file object for manipulation by `outputEval`. - - name: outputEval - type: - - "null" - - string - - Expression - doc: | - Evaluate an expression to generate the output value. If `glob` was - specified, the value of `self` must be an array containing file objects - that were matched. If no files were matched, `self` must be a zero - length array; if a single file was matched, the value of `self` is an - array of a single element. Additionally, if `loadContents` is `true`, - the File objects must include up to the first 64 KiB of file contents - in the `contents` field. - - -- name: CommandInputRecordField - type: record - extends: InputRecordField - specialize: - - specializeFrom: InputRecordSchema - specializeTo: CommandInputRecordSchema - - specializeFrom: InputEnumSchema - specializeTo: CommandInputEnumSchema - - specializeFrom: InputArraySchema - specializeTo: CommandInputArraySchema - - specializeFrom: InputBinding - specializeTo: CommandLineBinding - - -- name: CommandInputRecordSchema - type: record - extends: InputRecordSchema - specialize: - - specializeFrom: InputRecordField - specializeTo: CommandInputRecordField - - -- name: CommandInputEnumSchema - type: record - extends: InputEnumSchema - specialize: - - specializeFrom: InputBinding - specializeTo: CommandLineBinding - - -- name: CommandInputArraySchema - type: record - extends: InputArraySchema - specialize: - - specializeFrom: InputRecordSchema - specializeTo: CommandInputRecordSchema - - specializeFrom: InputEnumSchema - specializeTo: CommandInputEnumSchema - - specializeFrom: InputArraySchema - specializeTo: CommandInputArraySchema - - specializeFrom: InputBinding - specializeTo: CommandLineBinding - - -- name: CommandOutputRecordField - type: record - extends: OutputRecordField - specialize: - - specializeFrom: OutputRecordSchema - specializeTo: CommandOutputRecordSchema - - specializeFrom: OutputEnumSchema - specializeTo: CommandOutputEnumSchema - - specializeFrom: OutputArraySchema - specializeTo: CommandOutputArraySchema - - specializeFrom: OutputBinding - specializeTo: CommandOutputBinding - - -- name: CommandOutputRecordSchema - type: record - extends: OutputRecordSchema - specialize: - - specializeFrom: OutputRecordField - specializeTo: CommandOutputRecordField - - -- name: CommandOutputEnumSchema - type: record - extends: OutputEnumSchema - specialize: - - specializeFrom: OutputRecordSchema - specializeTo: CommandOutputRecordSchema - - specializeFrom: OutputEnumSchema - specializeTo: CommandOutputEnumSchema - - specializeFrom: OutputArraySchema - specializeTo: CommandOutputArraySchema - - specializeFrom: OutputBinding - specializeTo: CommandOutputBinding - - -- name: CommandOutputArraySchema - type: record - extends: OutputArraySchema - specialize: - - specializeFrom: OutputRecordSchema - specializeTo: CommandOutputRecordSchema - - specializeFrom: OutputEnumSchema - specializeTo: CommandOutputEnumSchema - - specializeFrom: OutputArraySchema - specializeTo: CommandOutputArraySchema - - specializeFrom: OutputBinding - specializeTo: CommandOutputBinding - - -- type: record - name: CommandInputParameter - extends: InputParameter - doc: An input parameter for a CommandLineTool. - specialize: - - specializeFrom: InputRecordSchema - specializeTo: CommandInputRecordSchema - - specializeFrom: InputEnumSchema - specializeTo: CommandInputEnumSchema - - specializeFrom: InputArraySchema - specializeTo: CommandInputArraySchema - - specializeFrom: InputBinding - specializeTo: CommandLineBinding - -- type: record - name: CommandOutputParameter - extends: OutputParameter - doc: An output parameter for a CommandLineTool. - specialize: - - specializeFrom: OutputBinding - specializeTo: CommandOutputBinding - fields: - - name: type - type: - - "null" - - CWLType - - stdout - - stderr - - CommandOutputRecordSchema - - CommandOutputEnumSchema - - CommandOutputArraySchema - - string - - type: array - items: - - CWLType - - CommandOutputRecordSchema - - CommandOutputEnumSchema - - CommandOutputArraySchema - - string - jsonldPredicate: - "_id": "sld:type" - "_type": "@vocab" - refScope: 2 - typeDSL: True - doc: | - Specify valid types of data that may be assigned to this parameter. - -- name: stdout - type: enum - symbols: [ "cwl:stdout" ] - docParent: "#CommandOutputParameter" - doc: | - Only valid as a `type` for a `CommandLineTool` output with no - `outputBinding` set. - - The following - ``` - outputs: - an_output_name: - type: stdout - - stdout: a_stdout_file - ``` - is equivalent to - ``` - outputs: - an_output_name: - type: File - streamable: true - outputBinding: - glob: a_stdout_file - - stdout: a_stdout_file - ``` - - If there is no `stdout` name provided, a random filename will be created. - For example, the following - ``` - outputs: - an_output_name: - type: stdout - ``` - is equivalent to - ``` - outputs: - an_output_name: - type: File - streamable: true - outputBinding: - glob: random_stdout_filenameABCDEFG - - stdout: random_stdout_filenameABCDEFG - ``` - - -- name: stderr - type: enum - symbols: [ "cwl:stderr" ] - docParent: "#CommandOutputParameter" - doc: | - Only valid as a `type` for a `CommandLineTool` output with no - `outputBinding` set. - - The following - ``` - outputs: - an_output_name: - type: stderr - - stderr: a_stderr_file - ``` - is equivalent to - ``` - outputs: - an_output_name: - type: File - streamable: true - outputBinding: - glob: a_stderr_file - - stderr: a_stderr_file - ``` - - If there is no `stderr` name provided, a random filename will be created. - For example, the following - ``` - outputs: - an_output_name: - type: stderr - ``` - is equivalent to - ``` - outputs: - an_output_name: - type: File - streamable: true - outputBinding: - glob: random_stderr_filenameABCDEFG - - stderr: random_stderr_filenameABCDEFG - ``` - - -- type: record - name: CommandLineTool - extends: Process - documentRoot: true - specialize: - - specializeFrom: InputParameter - specializeTo: CommandInputParameter - - specializeFrom: OutputParameter - specializeTo: CommandOutputParameter - doc: | - This defines the schema of the CWL Command Line Tool Description document. - - fields: - - name: class - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - type: string - - name: baseCommand - doc: | - Specifies the program to execute. If an array, the first element of - the array is the command to execute, and subsequent elements are - mandatory command line arguments. The elements in `baseCommand` must - appear before any command line bindings from `inputBinding` or - `arguments`. - - If `baseCommand` is not provided or is an empty array, the first - element of the command line produced after processing `inputBinding` or - `arguments` must be used as the program to execute. - - If the program includes a path separator character it must - be an absolute path, otherwise it is an error. If the program does not - include a path separator, search the `$PATH` variable in the runtime - environment of the workflow runner find the absolute path of the - executable. - type: - - string? - - string[]? - jsonldPredicate: - "_id": "cwl:baseCommand" - "_container": "@list" - - name: arguments - doc: | - Command line bindings which are not directly associated with input parameters. - type: - - "null" - - type: array - items: [string, Expression, CommandLineBinding] - jsonldPredicate: - "_id": "cwl:arguments" - "_container": "@list" - - name: stdin - type: ["null", string, Expression] - doc: | - A path to a file whose contents must be piped into the command's - standard input stream. - - name: stderr - type: ["null", string, Expression] - jsonldPredicate: "https://w3id.org/cwl/cwl#stderr" - doc: | - Capture the command's standard error stream to a file written to - the designated output directory. - - If `stderr` is a string, it specifies the file name to use. - - If `stderr` is an expression, the expression is evaluated and must - return a string with the file name to use to capture stderr. If the - return value is not a string, or the resulting path contains illegal - characters (such as the path separator `/`) it is an error. - - name: stdout - type: ["null", string, Expression] - jsonldPredicate: "https://w3id.org/cwl/cwl#stdout" - doc: | - Capture the command's standard output stream to a file written to - the designated output directory. - - If `stdout` is a string, it specifies the file name to use. - - If `stdout` is an expression, the expression is evaluated and must - return a string with the file name to use to capture stdout. If the - return value is not a string, or the resulting path contains illegal - characters (such as the path separator `/`) it is an error. - - name: successCodes - type: int[]? - doc: | - Exit codes that indicate the process completed successfully. - - - name: temporaryFailCodes - type: int[]? - doc: | - Exit codes that indicate the process failed due to a possibly - temporary condition, where executing the process with the same - runtime environment and inputs may produce different results. - - - name: permanentFailCodes - type: int[]? - doc: - Exit codes that indicate the process failed due to a permanent logic - error, where executing the process with the same runtime environment and - same inputs is expected to always fail. - - -- type: record - name: DockerRequirement - extends: ProcessRequirement - doc: | - Indicates that a workflow component should be run in a - [Docker](http://docker.com) container, and specifies how to fetch or build - the image. - - If a CommandLineTool lists `DockerRequirement` under - `hints` (or `requirements`), it may (or must) be run in the specified Docker - container. - - The platform must first acquire or install the correct Docker image as - specified by `dockerPull`, `dockerImport`, `dockerLoad` or `dockerFile`. - - The platform must execute the tool in the container using `docker run` with - the appropriate Docker image and tool command line. - - The workflow platform may provide input files and the designated output - directory through the use of volume bind mounts. The platform may rewrite - file paths in the input object to correspond to the Docker bind mounted - locations. - - When running a tool contained in Docker, the workflow platform must not - assume anything about the contents of the Docker container, such as the - presence or absence of specific software, except to assume that the - generated command line represents a valid command within the runtime - environment of the container. - - ## Interaction with other requirements - - If [EnvVarRequirement](#EnvVarRequirement) is specified alongside a - DockerRequirement, the environment variables must be provided to Docker - using `--env` or `--env-file` and interact with the container's preexisting - environment as defined by Docker. - - fields: - - name: class - type: string - doc: "Always 'DockerRequirement'" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - - name: dockerPull - type: string? - doc: "Specify a Docker image to retrieve using `docker pull`." - - name: dockerLoad - type: string? - doc: "Specify a HTTP URL from which to download a Docker image using `docker load`." - - name: dockerFile - type: string? - doc: "Supply the contents of a Dockerfile which will be built using `docker build`." - - name: dockerImport - type: string? - doc: "Provide HTTP URL to download and gunzip a Docker images using `docker import." - - name: dockerImageId - type: string? - doc: | - The image id that will be used for `docker run`. May be a - human-readable image name or the image identifier hash. May be skipped - if `dockerPull` is specified, in which case the `dockerPull` image id - must be used. - - name: dockerOutputDirectory - type: string? - doc: | - Set the designated output directory to a specific location inside the - Docker container. - - -- type: record - name: SoftwareRequirement - extends: ProcessRequirement - doc: | - A list of software packages that should be configured in the environment of - the defined process. - fields: - - name: class - type: string - doc: "Always 'SoftwareRequirement'" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - - name: packages - type: SoftwarePackage[] - doc: "The list of software to be configured." - jsonldPredicate: - mapSubject: package - mapPredicate: specs - -- name: SoftwarePackage - type: record - fields: - - name: package - type: string - doc: | - The name of the software to be made available. If the name is - common, inconsistent, or otherwise ambiguous it should be combined with - one or more identifiers in the `specs` field. - - name: version - type: string[]? - doc: | - The (optional) versions of the software that are known to be - compatible. - - name: specs - type: string[]? - doc: | - One or more [IRI](https://en.wikipedia.org/wiki/Internationalized_Resource_Identifier)s - identifying resources for installing or enabling the software named in - the `package` field. Implementations may provide resolvers which map - these software identifer IRIs to some configuration action; or they can - use only the name from the `package` field on a best effort basis. - - For example, the IRI https://packages.debian.org/bowtie could - be resolved with `apt-get install bowtie`. The IRI - https://anaconda.org/bioconda/bowtie could be resolved with `conda - install -c bioconda bowtie`. - - IRIs can also be system independent and used to map to a specific - software installation or selection mechanism. - Using [RRID](https://www.identifiers.org/rrid/) as an example: - https://identifiers.org/rrid/RRID:SCR_005476 - could be fulfilled using the above mentioned Debian or bioconda - package, a local installation managed by [Environement Modules](http://modules.sourceforge.net/), - or any other mechanism the platform chooses. IRIs can also be from - identifer sources that are discipline specific yet still system - independent. As an example, the equivalent [ELIXIR Tools and Data - Service Registry](https://bio.tools) IRI to the previous RRID example is - https://bio.tools/tool/bowtie2/version/2.2.8. - If supported by a given registry, implementations are encouraged to - query these system independent sofware identifier IRIs directly for - links to packaging systems. - - A site specific IRI can be listed as well. For example, an academic - computing cluster using Environement Modules could list the IRI - `https://hpc.example.edu/modules/bowtie-tbb/1.22` to indicate that - `module load bowtie-tbb/1.1.2` should be executed to make available - `bowtie` version 1.1.2 compiled with the TBB library prior to running - the accompanying Workflow or CommandLineTool. Note that the example IRI - is specific to a particular institution and computing environment as - the Environment Modules system does not have a common namespace or - standardized naming convention. - - This last example is the least portable and should only be used if - mechanisms based off of the `package` field or more generic IRIs are - unavailable or unsuitable. While harmless to other sites, site specific - software IRIs should be left out of shared CWL descriptions to avoid - clutter. - -- name: Dirent - type: record - doc: | - Define a file or subdirectory that must be placed in the designated output - directory prior to executing the command line tool. May be the result of - executing an expression, such as building a configuration file from a - template. - fields: - - name: entryname - type: ["null", string, Expression] - jsonldPredicate: - _id: cwl:entryname - doc: | - The name of the file or subdirectory to create in the output directory. - If `entry` is a File or Directory, the `entryname` field overrides the value - of `basename` of the File or Directory object. Optional. - - name: entry - type: [string, Expression] - jsonldPredicate: - _id: cwl:entry - doc: | - If the value is a string literal or an expression which evaluates to a - string, a new file must be created with the string as the file contents. - - If the value is an expression that evaluates to a `File` object, this - indicates the referenced file should be added to the designated output - directory prior to executing the tool. - - If the value is an expression that evaluates to a `Dirent` object, this - indicates that the File or Directory in `entry` should be added to the - designated output directory with the name in `entryname`. - - If `writable` is false, the file may be made available using a bind - mount or file system link to avoid unnecessary copying of the input - file. - - name: writable - type: boolean? - doc: | - If true, the file or directory must be writable by the tool. Changes - to the file or directory must be isolated and not visible by any other - CommandLineTool process. This may be implemented by making a copy of - the original file or directory. Default false (files and directories - read-only by default). - - A directory marked as `writable: true` implies that all files and - subdirectories are recursively writable as well. - - -- name: InitialWorkDirRequirement - type: record - extends: ProcessRequirement - doc: - Define a list of files and subdirectories that must be created by the - workflow platform in the designated output directory prior to executing the - command line tool. - fields: - - name: class - type: string - doc: InitialWorkDirRequirement - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - - name: listing - type: - - type: array - items: [File, Directory, Dirent, string, Expression] - - string - - Expression - jsonldPredicate: - _id: "cwl:listing" - doc: | - The list of files or subdirectories that must be placed in the - designated output directory prior to executing the command line tool. - - May be an expression. If so, the expression return value must validate - as `{type: array, items: [File, Directory]}`. - - Files or Directories which are listed in the input parameters and - appear in the `InitialWorkDirRequirement` listing must have their - `path` set to their staged location in the designated output directory. - If the same File or Directory appears more than once in the - `InitialWorkDirRequirement` listing, the implementation must choose - exactly one value for `path`; how this value is chosen is undefined. - - -- name: EnvVarRequirement - type: record - extends: ProcessRequirement - doc: | - Define a list of environment variables which will be set in the - execution environment of the tool. See `EnvironmentDef` for details. - fields: - - name: class - type: string - doc: "Always 'EnvVarRequirement'" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - - name: envDef - type: EnvironmentDef[] - doc: The list of environment variables. - jsonldPredicate: - mapSubject: envName - mapPredicate: envValue - - -- type: record - name: ShellCommandRequirement - extends: ProcessRequirement - doc: | - Modify the behavior of CommandLineTool to generate a single string - containing a shell command line. Each item in the argument list must be - joined into a string separated by single spaces and quoted to prevent - intepretation by the shell, unless `CommandLineBinding` for that argument - contains `shellQuote: false`. If `shellQuote: false` is specified, the - argument is joined into the command string without quoting, which allows - the use of shell metacharacters such as `|` for pipes. - fields: - - name: class - type: string - doc: "Always 'ShellCommandRequirement'" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - - -- type: record - name: ResourceRequirement - extends: ProcessRequirement - doc: | - Specify basic hardware resource requirements. - - "min" is the minimum amount of a resource that must be reserved to schedule - a job. If "min" cannot be satisfied, the job should not be run. - - "max" is the maximum amount of a resource that the job shall be permitted - to use. If a node has sufficient resources, multiple jobs may be scheduled - on a single node provided each job's "max" resource requirements are - met. If a job attempts to exceed its "max" resource allocation, an - implementation may deny additional resources, which may result in job - failure. - - If "min" is specified but "max" is not, then "max" == "min" - If "max" is specified by "min" is not, then "min" == "max". - - It is an error if max < min. - - It is an error if the value of any of these fields is negative. - - If neither "min" nor "max" is specified for a resource, an implementation may provide a default. - - fields: - - name: class - type: string - doc: "Always 'ResourceRequirement'" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - - name: coresMin - type: ["null", long, string, Expression] - doc: Minimum reserved number of CPU cores - - - name: coresMax - type: ["null", int, string, Expression] - doc: Maximum reserved number of CPU cores - - - name: ramMin - type: ["null", long, string, Expression] - doc: Minimum reserved RAM in mebibytes (2**20) - - - name: ramMax - type: ["null", long, string, Expression] - doc: Maximum reserved RAM in mebibytes (2**20) - - - name: tmpdirMin - type: ["null", long, string, Expression] - doc: Minimum reserved filesystem based storage for the designated temporary directory, in mebibytes (2**20) - - - name: tmpdirMax - type: ["null", long, string, Expression] - doc: Maximum reserved filesystem based storage for the designated temporary directory, in mebibytes (2**20) - - - name: outdirMin - type: ["null", long, string, Expression] - doc: Minimum reserved filesystem based storage for the designated output directory, in mebibytes (2**20) - - - name: outdirMax - type: ["null", long, string, Expression] - doc: Maximum reserved filesystem based storage for the designated output directory, in mebibytes (2**20)