Inclusive and Exclusive Inputs¶
Inclusive and Exclusive Inputs refers to the 2.4.3. Inclusive and Exclusive Inputs paragraph of the 2.4. Inputs chapter of the Common Workflow Language User Guide.
It shows also how the library is able to handle and convert record
types.
1. Parsing¶
In this sample we'll show the access from a remote public URL.
In [1]:
Copied!
from cwl2ogc import load_converter_from_location
cwl_coverter = load_converter_from_location('https://raw.githubusercontent.com/eoap/cwl2ogc/refs/heads/develop/tests/artifacts/cwl-types/record.cwl')
from cwl2ogc import load_converter_from_location
cwl_coverter = load_converter_from_location('https://raw.githubusercontent.com/eoap/cwl2ogc/refs/heads/develop/tests/artifacts/cwl-types/record.cwl')
2. Inputs conversion¶
Once the document is parsed, invoke the cwl2ogc
APIs to convert the CWL inputs to the OGC JSON format:
In [2]:
Copied!
import sys
cwl_coverter.dump_inputs(stream=sys.stdout, pretty_print=True)
import sys
cwl_coverter.dump_inputs(stream=sys.stdout, pretty_print=True)
{ "dependent_parameters": { "schema": { "type": "object", "properties": { "itemA": { "type": "string" }, "itemB": { "type": "string" } }, "required": [ "itemA", "itemB" ] }, "metadata": [ { "title": "cwl:type", "value": "record" } ], "minOccurs": 1, "maxOccurs": 1, "valuePassing": "byValue", "title": "dependent_parameters label", "description": "dependent_parameters doc" }, "exclusive_parameters": { "schema": { "nullable": false, "anyOf": [ { "type": "object", "properties": { "itemC": { "type": "string" } }, "required": [ "itemC" ] }, { "type": "object", "properties": { "itemD": { "type": "string" } }, "required": [ "itemD" ] } ] }, "metadata": [ { "title": "cwl:type", "value": "[ record, record ]" } ], "minOccurs": 1, "maxOccurs": 1, "valuePassing": "byValue", "title": "dependent_parameters label", "description": "dependent_parameters doc" } }
3. Outputs conversion¶
Users can reuse the BaseCWLtypes2OGCConverter
instance to convert the CWL outputs to the OGC JSON format:
In [3]:
Copied!
cwl_coverter.dump_outputs(stream=sys.stdout, pretty_print=True)
cwl_coverter.dump_outputs(stream=sys.stdout, pretty_print=True)
{ "example_out": { "schema": { "type": "string" }, "metadata": [ { "title": "cwl:type", "value": "stdout" } ] } }