X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/22773dcba5c8f59a01a08c1734dd5249517808c9..defaa234ca09f1c0a202a77d7660b75d3c12de02:/sdk/cwl/arvados_cwl/__init__.py diff --git a/sdk/cwl/arvados_cwl/__init__.py b/sdk/cwl/arvados_cwl/__init__.py index 1256260598..20bbc41bd3 100644 --- a/sdk/cwl/arvados_cwl/__init__.py +++ b/sdk/cwl/arvados_cwl/__init__.py @@ -15,6 +15,7 @@ import pkg_resources # part of setuptools from cwltool.errors import WorkflowException import cwltool.main import cwltool.workflow +import schema_salad import arvados import arvados.config @@ -364,6 +365,15 @@ def arg_parser(): # type: () -> argparse.ArgumentParser return parser +def add_arv_hints(): + cache = {} + res = pkg_resources.resource_stream(__name__, 'arv-cwl-schema.yml') + cache["https://w3id.org/cwl/arv-cwl-schema.yml"] = res.read() + res.close() + _, cwlnames, _, _ = cwltool.process.get_schema("v1.0") + _, extnames, _, _ = schema_salad.schema.load_schema("https://w3id.org/cwl/arv-cwl-schema.yml", cache=cache) + for n in extnames.names: + cwlnames.add_name("http://arvados.org/cwl#"+n, "", extnames.get_name(n, "")) def main(args, stdout, stderr, api_client=None): parser = arg_parser() @@ -373,6 +383,8 @@ def main(args, stdout, stderr, api_client=None): if (arvargs.create_template or arvargs.create_workflow or arvargs.update_workflow) and not arvargs.job_order: job_order_object = ({}, "") + add_arv_hints() + try: if api_client is None: api_client=arvados.api('v1', model=OrderedJsonModel())