Mercurial > repos > shellac > guppy_basecaller
diff env/lib/python3.7/site-packages/cwltool/schemas/v1.1.0-dev1/Process.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.1.0-dev1/Process.yml Thu May 14 16:47:39 2020 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,957 +0,0 @@ -saladVersion: v1.1 -$base: "https://w3id.org/cwl/cwl#" - -$namespaces: - cwl: "https://w3id.org/cwl/cwl#" - sld: "https://w3id.org/cwl/salad#" - rdfs: "http://www.w3.org/2000/01/rdf-schema#" - -$graph: - -- name: "Common Workflow Language, v1.1.0-dev1" - type: documentation - doc: {$include: concepts.md} - -- $import: "salad/schema_salad/metaschema/metaschema_base.yml" - -- name: BaseTypesDoc - type: documentation - doc: | - ## Base types - docChild: - - "#CWLType" - - "#Process" - -- type: enum - name: CWLVersion - doc: "Version symbols for published CWL document versions." - symbols: - - cwl:draft-2 - - cwl:draft-3.dev1 - - cwl:draft-3.dev2 - - cwl:draft-3.dev3 - - cwl:draft-3.dev4 - - cwl:draft-3.dev5 - - cwl:draft-3 - - cwl:draft-4.dev1 - - cwl:draft-4.dev2 - - cwl:draft-4.dev3 - - cwl:v1.0.dev4 - - cwl:v1.0 - - cwl:v1.1.0-dev1 # a dash is required by the semver 2.0 rules - -- name: CWLType - type: enum - extends: "sld:PrimitiveType" - symbols: - - cwl:File - - cwl:Directory - doc: - - "Extends primitive types with the concept of a file and directory as a builtin type." - - "File: A File object" - - "Directory: A Directory object" - -- name: File - type: record - docParent: "#CWLType" - doc: | - Represents a file (or group of files when `secondaryFiles` is provided) that - will be accessible by tools using standard POSIX file system call API such as - open(2) and read(2). - - Files are represented as objects with `class` of `File`. File objects have - a number of properties that provide metadata about the file. - - The `location` property of a File is a URI that uniquely identifies the - file. Implementations must support the file:// URI scheme and may support - other schemes such as http://. The value of `location` may also be a - relative reference, in which case it must be resolved relative to the URI - of the document it appears in. Alternately to `location`, implementations - must also accept the `path` property on File, which must be a filesystem - path available on the same host as the CWL runner (for inputs) or the - runtime environment of a command line tool execution (for command line tool - outputs). - - If no `location` or `path` is specified, a file object must specify - `contents` with the UTF-8 text content of the file. This is a "file - literal". File literals do not correspond to external resources, but are - created on disk with `contents` with when needed for a executing a tool. - Where appropriate, expressions can return file literals to define new files - on a runtime. The maximum size of `contents` is 64 kilobytes. - - The `basename` property defines the filename on disk where the file is - staged. This may differ from the resource name. If not provided, - `basename` must be computed from the last path part of `location` and made - available to expressions. - - The `secondaryFiles` property is a list of File or Directory objects that - must be staged in the same directory as the primary file. It is an error - for file names to be duplicated in `secondaryFiles`. - - The `size` property is the size in bytes of the File. It must be computed - from the resource and made available to expressions. The `checksum` field - contains a cryptographic hash of the file content for use it verifying file - contents. Implementations may, at user option, enable or disable - computation of the `checksum` field for performance or other reasons. - However, the ability to compute output checksums is required to pass the - CWL conformance test suite. - - When executing a CommandLineTool, the files and secondary files may be - staged to an arbitrary directory, but must use the value of `basename` for - the filename. The `path` property must be file path in the context of the - tool execution runtime (local to the compute node, or within the executing - container). All computed properties should be available to expressions. - File literals also must be staged and `path` must be set. - - When collecting CommandLineTool outputs, `glob` matching returns file paths - (with the `path` property) and the derived properties. This can all be - modified by `outputEval`. Alternately, if the file `cwl.output.json` is - present in the output, `outputBinding` is ignored. - - File objects in the output must provide either a `location` URI or a `path` - property in the context of the tool execution runtime (local to the compute - node, or within the executing container). - - When evaluating an ExpressionTool, file objects must be referenced via - `location` (the expression tool does not have access to files on disk so - `path` is meaningless) or as file literals. It is legal to return a file - object with an existing `location` but a different `basename`. The - `loadContents` field of ExpressionTool inputs behaves the same as on - CommandLineTool inputs, however it is not meaningful on the outputs. - - An ExpressionTool may forward file references from input to output by using - the same value for `location`. - - fields: - - name: class - type: - type: enum - name: File_class - symbols: - - cwl:File - jsonldPredicate: - _id: "@type" - _type: "@vocab" - doc: Must be `File` to indicate this object describes a file. - - name: location - type: string? - doc: | - An IRI that identifies the file resource. This may be a relative - reference, in which case it must be resolved using the base IRI of the - document. The location may refer to a local or remote resource; the - implementation must use the IRI to retrieve file content. If an - implementation is unable to retrieve the file content stored at a - remote resource (due to unsupported protocol, access denied, or other - issue) it must signal an error. - - If the `location` field is not provided, the `contents` field must be - provided. The implementation must assign a unique identifier for - the `location` field. - - If the `path` field is provided but the `location` field is not, an - implementation may assign the value of the `path` field to `location`, - then follow the rules above. - jsonldPredicate: - _id: "@id" - _type: "@id" - - name: path - type: string? - doc: | - The local host path where the File is available when a CommandLineTool is - executed. This field must be set by the implementation. The final - path component must match the value of `basename`. This field - must not be used in any other context. The command line tool being - executed must be able to to access the file at `path` using the POSIX - `open(2)` syscall. - - As a special case, if the `path` field is provided but the `location` - field is not, an implementation may assign the value of the `path` - field to `location`, and remove the `path` field. - - If the `path` contains [POSIX shell metacharacters](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_02) - (`|`,`&`, `;`, `<`, `>`, `(`,`)`, `$`,`` ` ``, `\`, `"`, `'`, - `<space>`, `<tab>`, and `<newline>`) or characters - [not allowed](http://www.iana.org/assignments/idna-tables-6.3.0/idna-tables-6.3.0.xhtml) - for [Internationalized Domain Names for Applications](https://tools.ietf.org/html/rfc6452) - then implementations may terminate the process with a - `permanentFailure`. - jsonldPredicate: - "_id": "cwl:path" - "_type": "@id" - - name: basename - type: string? - doc: | - The base name of the file, that is, the name of the file without any - leading directory path. The base name must not contain a slash `/`. - - If not provided, the implementation must set this field based on the - `location` field by taking the final path component after parsing - `location` as an IRI. If `basename` is provided, it is not required to - match the value from `location`. - - When this file is made available to a CommandLineTool, it must be named - with `basename`, i.e. the final component of the `path` field must match - `basename`. - jsonldPredicate: "cwl:basename" - - name: dirname - type: string? - doc: | - The name of the directory containing file, that is, the path leading up - to the final slash in the path such that `dirname + '/' + basename == - path`. - - The implementation must set this field based on the value of `path` - prior to evaluating parameter references or expressions in a - CommandLineTool document. This field must not be used in any other - context. - - name: nameroot - type: string? - doc: | - The basename root such that `nameroot + nameext == basename`, and - `nameext` is empty or begins with a period and contains at most one - period. For the purposess of path splitting leading periods on the - basename are ignored; a basename of `.cshrc` will have a nameroot of - `.cshrc`. - - The implementation must set this field automatically based on the value - of `basename` prior to evaluating parameter references or expressions. - - name: nameext - type: string? - doc: | - The basename extension such that `nameroot + nameext == basename`, and - `nameext` is empty or begins with a period and contains at most one - period. Leading periods on the basename are ignored; a basename of - `.cshrc` will have an empty `nameext`. - - The implementation must set this field automatically based on the value - of `basename` prior to evaluating parameter references or expressions. - - name: checksum - type: string? - doc: | - Optional hash code for validating file integrity. Currently must be in the form - "sha1$ + hexadecimal string" using the SHA-1 algorithm. - - name: size - type: long? - doc: Optional file size - - name: "secondaryFiles" - type: - - "null" - - type: array - items: [File, Directory] - jsonldPredicate: - _id: "cwl:secondaryFiles" - secondaryFilesDSL: true - doc: | - A list of additional files or directories that are associated with the - primary file and must be transferred alongside the primary file. - Examples include indexes of the primary file, or external references - which must be included when loading primary document. A file object - listed in `secondaryFiles` may itself include `secondaryFiles` for - which the same rules apply. - - name: format - type: string? - jsonldPredicate: - _id: cwl:format - _type: "@id" - identity: true - doc: | - The format of the file: this must be an IRI of a concept node that - represents the file format, preferrably defined within an ontology. - If no ontology is available, file formats may be tested by exact match. - - Reasoning about format compatability must be done by checking that an - input file format is the same, `owl:equivalentClass` or - `rdfs:subClassOf` the format required by the input parameter. - `owl:equivalentClass` is transitive with `rdfs:subClassOf`, e.g. if - `<B> owl:equivalentClass <C>` and `<B> owl:subclassOf <A>` then infer - `<C> owl:subclassOf <A>`. - - File format ontologies may be provided in the "$schema" metadata at the - root of the document. If no ontologies are specified in `$schema`, the - runtime may perform exact file format matches. - - name: contents - type: string? - doc: | - File contents literal. Maximum of 64 KiB. - - If neither `location` nor `path` is provided, `contents` must be - non-null. The implementation must assign a unique identifier for the - `location` field. When the file is staged as input to CommandLineTool, - the value of `contents` must be written to a file. - - If `loadContents` of `inputBinding` or `outputBinding` is true and - `location` is valid, the implementation must read up to the first 64 - KiB of text from the file and place it in the "contents" field. - - -- name: Directory - type: record - docAfter: "#File" - doc: | - Represents a directory to present to a command line tool. - - Directories are represented as objects with `class` of `Directory`. Directory objects have - a number of properties that provide metadata about the directory. - - The `location` property of a Directory is a URI that uniquely identifies - the directory. Implementations must support the file:// URI scheme and may - support other schemes such as http://. Alternately to `location`, - implementations must also accept the `path` property on Directory, which - must be a filesystem path available on the same host as the CWL runner (for - inputs) or the runtime environment of a command line tool execution (for - command line tool outputs). - - A Directory object may have a `listing` field. This is a list of File and - Directory objects that are contained in the Directory. For each entry in - `listing`, the `basename` property defines the name of the File or - Subdirectory when staged to disk. If `listing` is not provided, the - implementation must have some way of fetching the Directory listing at - runtime based on the `location` field. - - If a Directory does not have `location`, it is a Directory literal. A - Directory literal must provide `listing`. Directory literals must be - created on disk at runtime as needed. - - The resources in a Directory literal do not need to have any implied - relationship in their `location`. For example, a Directory listing may - contain two files located on different hosts. It is the responsibility of - the runtime to ensure that those files are staged to disk appropriately. - Secondary files associated with files in `listing` must also be staged to - the same Directory. - - When executing a CommandLineTool, Directories must be recursively staged - first and have local values of `path` assigend. - - Directory objects in CommandLineTool output must provide either a - `location` URI or a `path` property in the context of the tool execution - runtime (local to the compute node, or within the executing container). - - An ExpressionTool may forward file references from input to output by using - the same value for `location`. - - Name conflicts (the same `basename` appearing multiple times in `listing` - or in any entry in `secondaryFiles` in the listing) is a fatal error. - - fields: - - name: class - type: - type: enum - name: Directory_class - symbols: - - cwl:Directory - jsonldPredicate: - _id: "@type" - _type: "@vocab" - doc: Must be `Directory` to indicate this object describes a Directory. - - name: location - type: string? - doc: | - An IRI that identifies the directory resource. This may be a relative - reference, in which case it must be resolved using the base IRI of the - document. The location may refer to a local or remote resource. If - the `listing` field is not set, the implementation must use the - location IRI to retrieve directory listing. If an implementation is - unable to retrieve the directory listing stored at a remote resource (due to - unsupported protocol, access denied, or other issue) it must signal an - error. - - If the `location` field is not provided, the `listing` field must be - provided. The implementation must assign a unique identifier for - the `location` field. - - If the `path` field is provided but the `location` field is not, an - implementation may assign the value of the `path` field to `location`, - then follow the rules above. - jsonldPredicate: - _id: "@id" - _type: "@id" - - name: path - type: string? - doc: | - The local path where the Directory is made available prior to executing a - CommandLineTool. This must be set by the implementation. This field - must not be used in any other context. The command line tool being - executed must be able to to access the directory at `path` using the POSIX - `opendir(2)` syscall. - - If the `path` contains [POSIX shell metacharacters](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_02) - (`|`,`&`, `;`, `<`, `>`, `(`,`)`, `$`,`` ` ``, `\`, `"`, `'`, - `<space>`, `<tab>`, and `<newline>`) or characters - [not allowed](http://www.iana.org/assignments/idna-tables-6.3.0/idna-tables-6.3.0.xhtml) - for [Internationalized Domain Names for Applications](https://tools.ietf.org/html/rfc6452) - then implementations may terminate the process with a - `permanentFailure`. - jsonldPredicate: - _id: "cwl:path" - _type: "@id" - - name: basename - type: string? - doc: | - The base name of the directory, that is, the name of the file without any - leading directory path. The base name must not contain a slash `/`. - - If not provided, the implementation must set this field based on the - `location` field by taking the final path component after parsing - `location` as an IRI. If `basename` is provided, it is not required to - match the value from `location`. - - When this file is made available to a CommandLineTool, it must be named - with `basename`, i.e. the final component of the `path` field must match - `basename`. - jsonldPredicate: "cwl:basename" - - name: listing - type: - - "null" - - type: array - items: [File, Directory] - doc: | - List of files or subdirectories contained in this directory. The name - of each file or subdirectory is determined by the `basename` field of - each `File` or `Directory` object. It is an error if a `File` shares a - `basename` with any other entry in `listing`. If two or more - `Directory` object share the same `basename`, this must be treated as - equivalent to a single subdirectory with the listings recursively - merged. - jsonldPredicate: - _id: "cwl:listing" - -- name: Labeled - type: record - abstract: true - fields: - - name: label - type: - - "null" - - string - jsonldPredicate: "rdfs:label" - doc: "A short, human-readable label of this object." - - -- name: Identified - type: record - abstract: true - fields: - - name: id - type: string? - jsonldPredicate: "@id" - doc: "The unique identifier for this object." - - -- name: LoadListingEnum - type: enum - symbols: [no_listing, shallow_listing, deep_listing] - doc: - - | - Specify the desired behavior for loading the `listing` field of - a Directory object for use by expressions. - - "no_listing: Do not load the directory listing." - - "shallow_listing: Only load the top level listing, do not recurse into subdirectories." - - "deep_listing: Load the directory listing and recursively load all subdirectories as well." - - -- name: LoadContents - type: record - abstract: true - fields: - - name: loadContents - type: boolean? - jsonldPredicate: "cwl:loadContents" - doc: | - Only valid when `type: File` or is an array of `items: File`. - - Read up to the first 64 KiB of text from the file and place it in the - "contents" field of the file object for use by expressions. - - name: loadListing - type: LoadListingEnum? - jsonldPredicate: "cwl:loadListing" - doc: | - Only valid when `type: Directory` or is an array of `items: Directory`. - - Specify the desired behavior for loading the `listing` field of - a Directory object for use by expressions. - - The order of precedence for loadListing is: - - 1. `loadListing` on an individual parameter - 2. Inherited from `LoadListingRequirement` - 3. By default: `no_listing` - -- name: FieldBase - type: record - extends: Labeled - abstract: true - fields: - secondaryFiles: - type: - - "null" - - SecondaryFileSchema - - type: array - items: SecondaryFileSchema - jsonldPredicate: - _id: "cwl:secondaryFiles" - secondaryFilesDSL: true - doc: | - Only valid when `type: File` or is an array of `items: File`. - - Provides a pattern or expression specifying files or - directories that should be included alongside the primary - file. Secondary files may be required or optional. When not - explicitly specified, secondary files specified for `inputs` - are required and `outputs` are optional. An implementation - must include matching Files and Directories in the - `secondaryFiles` property of the primary file. These Files - and Directories must be transferred and staged alongside the - primary file. An implementation may fail workflow execution - if a required secondary file does not exist. - - If the value is an expression, the value of `self` in the expression - must be the primary input or output File object to which this binding - applies. The `basename`, `nameroot` and `nameext` fields must be - present in `self`. For `CommandLineTool` outputs the `path` field must - also be present. The expression must return a filename string relative - to the path to the primary File, a File or Directory object with either - `path` or `location` and `basename` fields set, or an array consisting - of strings or File or Directory objects. It is legal to reference an - unchanged File or Directory object taken from input as a secondaryFile. - The expression may return "null" in which case there is no secondaryFile - from that expression. - - To work on non-filename-preserving storage systems, portable tool - descriptions should avoid constructing new values from `location`, but - should construct relative references using `basename` or `nameroot` - instead. - - If a value in `secondaryFiles` is a string that is not an expression, - it specifies that the following pattern should be applied to the path - of the primary file to yield a filename relative to the primary File: - - 1. If string ends with `?` character, remove the last `?` and mark - the resulting secondary file as optional. - 2. If string begins with one or more caret `^` characters, for each - caret, remove the last file extension from the path (the last - period `.` and all following characters). If there are no file - extensions, the path is unchanged. - 3. Append the remainder of the string to the end of the file path. - - streamable: - type: boolean? - doc: | - Only valid when `type: File` or is an array of `items: File`. - - A value of `true` indicates that the file is read or written - sequentially without seeking. An implementation may use this flag to - indicate whether it is valid to stream file contents using a named - pipe. Default: `false`. - - -- name: InputFormat - type: record - abstract: true - fields: - format: - type: - - "null" - - string - - type: array - items: string - - Expression - jsonldPredicate: - _id: cwl:format - _type: "@id" - identity: true - doc: | - Only valid when `type: File` or is an array of `items: File`. - - This must be one or more IRIs of concept nodes - that represents file formats which are allowed as input to this - parameter, preferrably defined within an ontology. If no ontology is - available, file formats may be tested by exact match. - - -- name: OutputFormat - type: record - abstract: true - fields: - format: - type: - - "null" - - string - - Expression - jsonldPredicate: - _id: cwl:format - _type: "@id" - identity: true - doc: | - Only valid when `type: File` or is an array of `items: File`. - - This is the file format that will be assigned to the output - File object. - - -- name: Parameter - type: record - extends: [FieldBase, sld:Documented, Identified] - abstract: true - doc: | - Define an input or output parameter to a process. - - -- type: enum - name: Expression - doc: | - 'Expression' is not a real type. It indicates that a field must allow - runtime parameter references. If [InlineJavascriptRequirement](#InlineJavascriptRequirement) - is declared and supported by the platform, the field must also allow - Javascript expressions. - symbols: - - cwl:ExpressionPlaceholder - - -- name: InputBinding - type: record - fields: - - name: loadContents - type: - - "null" - - boolean - jsonldPredicate: "cwl:loadContents" - doc: | - Use of `loadContents` in `InputBinding` is deprecated. - Preserved for v1.0 backwards compatability. Will be removed in - CWL v2.0. Use `InputParameter.loadContents` instead. - - Only valid when `type: File` or is an array of `items: File`. - - Read up to the first 64 KiB of text from the file and place it in the - "contents" field of the file object for use by expressions. - - -- name: IOSchema - extends: [Labeled, sld:Documented] - type: record - abstract: true - fields: - - name: name - type: string? - jsonldPredicate: "@id" - doc: "The identifier for this type" - -- name: InputSchema - extends: [IOSchema] - type: record - abstract: true - -- name: OutputSchema - extends: [IOSchema] - type: record - abstract: true - - -- name: InputRecordField - type: record - extends: [sld:RecordField, FieldBase, InputFormat, LoadContents] - specialize: - - specializeFrom: "sld:RecordSchema" - specializeTo: InputRecordSchema - - specializeFrom: "sld:EnumSchema" - specializeTo: InputEnumSchema - - specializeFrom: "sld:ArraySchema" - specializeTo: InputArraySchema - - specializeFrom: "sld:PrimitiveType" - specializeTo: CWLType - - -- name: InputRecordSchema - type: record - extends: ["sld:RecordSchema", InputSchema] - specialize: - - specializeFrom: "sld:RecordField" - specializeTo: InputRecordField - - -- name: InputEnumSchema - type: record - extends: ["sld:EnumSchema", InputSchema] - - -- name: InputArraySchema - type: record - extends: ["sld:ArraySchema", InputSchema] - specialize: - - specializeFrom: "sld:RecordSchema" - specializeTo: InputRecordSchema - - specializeFrom: "sld:EnumSchema" - specializeTo: InputEnumSchema - - specializeFrom: "sld:ArraySchema" - specializeTo: InputArraySchema - - specializeFrom: "sld:PrimitiveType" - specializeTo: CWLType - - -- name: OutputRecordField - type: record - extends: [sld:RecordField, FieldBase, OutputFormat] - specialize: - - specializeFrom: "sld:RecordSchema" - specializeTo: OutputRecordSchema - - specializeFrom: "sld:EnumSchema" - specializeTo: OutputEnumSchema - - specializeFrom: "sld:ArraySchema" - specializeTo: OutputArraySchema - - specializeFrom: "sld:PrimitiveType" - specializeTo: CWLType - - -- name: OutputRecordSchema - type: record - extends: ["sld:RecordSchema", "#OutputSchema"] - docParent: "#OutputParameter" - specialize: - - specializeFrom: "sld:RecordField" - specializeTo: OutputRecordField - - -- name: OutputEnumSchema - type: record - extends: ["sld:EnumSchema", OutputSchema] - docParent: "#OutputParameter" - - -- name: OutputArraySchema - type: record - extends: ["sld:ArraySchema", OutputSchema] - docParent: "#OutputParameter" - specialize: - - specializeFrom: "sld:RecordSchema" - specializeTo: OutputRecordSchema - - specializeFrom: "sld:EnumSchema" - specializeTo: OutputEnumSchema - - specializeFrom: "sld:ArraySchema" - specializeTo: OutputArraySchema - - specializeFrom: "sld:PrimitiveType" - specializeTo: CWLType - - -- name: InputParameter - type: record - abstract: true - extends: [Parameter, InputFormat, LoadContents] - fields: - - name: default - type: Any? - jsonldPredicate: - _id: sld:default - noLinkCheck: true - doc: | - The default value to use for this parameter if the parameter is missing - from the input object, or if the value of the parameter in the input - object is `null`. Default values are applied before evaluating expressions - (e.g. dependent `valueFrom` fields). - - -- name: OutputParameter - type: record - extends: [Parameter, OutputFormat] - abstract: true - - -- type: record - name: ProcessRequirement - abstract: true - doc: | - A process requirement declares a prerequisite that may or must be fulfilled - before executing a process. See [`Process.hints`](#process) and - [`Process.requirements`](#process). - - Process requirements are the primary mechanism for specifying extensions to - the CWL core specification. - - -- type: record - name: Process - extends: [Identified, Labeled, sld:Documented] - abstract: true - doc: | - - The base executable type in CWL is the `Process` object defined by the - document. Note that the `Process` object is abstract and cannot be - directly executed. - - fields: - - name: inputs - type: - type: array - items: InputParameter - jsonldPredicate: - _id: "cwl:inputs" - mapSubject: id - mapPredicate: type - doc: | - Defines the input parameters of the process. The process is ready to - run when all required input parameters are associated with concrete - values. Input parameters include a schema for each parameter which is - used to validate the input object. It may also be used to build a user - interface for constructing the input object. - - When accepting an input object, all input parameters must have a value. - If an input parameter is missing from the input object, it must be - assigned a value of `null` (or the value of `default` for that - parameter, if provided) for the purposes of validation and evaluation - of expressions. - - - name: outputs - type: - type: array - items: OutputParameter - jsonldPredicate: - _id: "cwl:outputs" - mapSubject: id - mapPredicate: type - doc: | - Defines the parameters representing the output of the process. May be - used to generate and/or validate the output object. - - name: requirements - type: ProcessRequirement[]? - jsonldPredicate: - _id: "cwl:requirements" - mapSubject: class - doc: | - Declares requirements that apply to either the runtime environment or the - workflow engine that must be met in order to execute this process. If - an implementation cannot satisfy all requirements, or a requirement is - listed which is not recognized by the implementation, it is a fatal - error and the implementation must not attempt to run the process, - unless overridden at user option. - - name: hints - type: Any[]? - doc: | - Declares hints applying to either the runtime environment or the - workflow engine that may be helpful in executing this process. It is - not an error if an implementation cannot satisfy all hints, however - the implementation may report a warning. - jsonldPredicate: - _id: cwl:hints - noLinkCheck: true - mapSubject: class - - name: cwlVersion - type: CWLVersion? - doc: | - CWL document version. Always required at the document root. Not - required for a Process embedded inside another Process. - jsonldPredicate: - "_id": "cwl:cwlVersion" - "_type": "@vocab" - -- name: InlineJavascriptRequirement - type: record - extends: ProcessRequirement - doc: | - Indicates that the workflow platform must support inline Javascript expressions. - If this requirement is not present, the workflow platform must not perform expression - interpolatation. - fields: - - name: class - type: string - doc: "Always 'InlineJavascriptRequirement'" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - - name: expressionLib - type: string[]? - doc: | - Additional code fragments that will also be inserted - before executing the expression code. Allows for function definitions that may - be called from CWL expressions. - - -- name: CommandInputSchema - type: record - abstract: true - -- name: SchemaDefRequirement - type: record - extends: ProcessRequirement - doc: | - This field consists of an array of type definitions which must be used when - interpreting the `inputs` and `outputs` fields. When a `type` field - contain a IRI, the implementation must check if the type is defined in - `schemaDefs` and use that definition. If the type is not found in - `schemaDefs`, it is an error. The entries in `schemaDefs` must be - processed in the order listed such that later schema definitions may refer - to earlier schema definitions. - fields: - - name: class - type: string - doc: "Always 'SchemaDefRequirement'" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - - name: types - type: - type: array - items: CommandInputSchema - doc: The list of type definitions. - -- name: SecondaryFileSchema - type: record - fields: - - name: pattern - type: - - string - - Expression - doc: | - Provides a pattern or expression specifying files or directories that - should be included alongside the primary file. - - If the value is an expression, the value of `self` in the expression - must be the primary input or output File object to which this binding - applies. The `basename`, `nameroot` and `nameext` fields must be - present in `self`. For `CommandLineTool` outputs the `path` field must - also be present. The expression must return a filename string relative - to the path to the primary File, a File or Directory object with either - `path` or `location` and `basename` fields set, or an array consisting - of strings or File or Directory objects. It is legal to reference an - unchanged File or Directory object taken from input as a secondaryFile. - The expression may return "null" in which case there is no secondaryFile - from that expression. - - To work on non-filename-preserving storage systems, portable tool - descriptions should avoid constructing new values from `location`, but - should construct relative references using `basename` or `nameroot` - instead. - - If a value in `secondaryFiles` is a string that is not an expression, - it specifies that the following pattern should be applied to the path - of the primary file to yield a filename relative to the primary File: - - 1. If string ends with `?` character, remove the last `?` and mark - the resulting secondary file as optional. - 2. If string begins with one or more caret `^` characters, for each - caret, remove the last file extension from the path (the last - period `.` and all following characters). If there are no file - extensions, the path is unchanged. - 3. Append the remainder of the string to the end of the file path. - - name: required - type: ["null", boolean, string, Expression] - doc: | - An implementation must not fail workflow execution if `required` is - set to `false` and the expected secondary file does not exist. - Default value for `required` field is `true` for secondary files on - input and `false` for secondary files on output. - -- name: LoadListingRequirement - type: record - extends: ProcessRequirement - doc: | - Specify the desired behavior for loading the `listing` field of - a Directory object for use by expressions. - fields: - class: - type: string - doc: "Always 'LoadListingRequirement'" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - loadListing: - type: LoadListingEnum? - jsonldPredicate: "cwl:loadListing"
