diff --git a/cwltool/load_tool.py b/cwltool/load_tool.py index 2524362fd..b284d32a8 100644 --- a/cwltool/load_tool.py +++ b/cwltool/load_tool.py @@ -133,7 +133,8 @@ def validate_document(document_loader, # type: Loader enable_dev=False, # type: bool strict=True, # type: bool preprocess_only=False, # type: bool - fetcher_constructor=None + fetcher_constructor=None, + skip_schemas=None # type: Callable[[Dict[unicode, unicode], requests.sessions.Session], Fetcher] ): # type: (...) -> Tuple[Loader, Names, Union[Dict[Text, Any], List[Dict[Text, Any]]], Dict[Text, Any], Text] @@ -180,9 +181,10 @@ def validate_document(document_loader, # type: Loader raise avsc_names processobj = None # type: Union[CommentedMap, CommentedSeq, unicode] + document_loader = Loader(sch_document_loader.ctx, schemagraph=sch_document_loader.graph, idx=document_loader.idx, cache=sch_document_loader.cache, - fetcher_constructor=fetcher_constructor) + fetcher_constructor=fetcher_constructor, skip_schemas=skip_schemas) _add_blank_ids(workflowobj) diff --git a/cwltool/main.py b/cwltool/main.py index ca67f8c5d..e342864d6 100755 --- a/cwltool/main.py +++ b/cwltool/main.py @@ -141,6 +141,9 @@ def arg_parser(): # type: () -> argparse.ArgumentParser exgroup.add_argument("--non-strict", action="store_false", help="Lenient validation (ignore unrecognized fields)", default=True, dest="strict") + parser.add_argument("--skip-schemas", action="store_true", + help="Skip loading of schemas", default=True, dest="skip_schemas") + exgroup = parser.add_mutually_exclusive_group() exgroup.add_argument("--verbose", action="store_true", help="Default logging") exgroup.add_argument("--quiet", action="store_true", help="Only print warnings and errors.") @@ -634,6 +637,7 @@ def main(argsl=None, # type: List[str] 'enable_dev': False, 'enable_ext': False, 'strict': True, + 'skip_schemas': False, 'rdf_serializer': None, 'basedir': None, 'tool_help': False, @@ -701,7 +705,8 @@ def main(argsl=None, # type: List[str] = validate_document(document_loader, workflowobj, uri, enable_dev=args.enable_dev, strict=args.strict, preprocess_only=args.print_pre or args.pack, - fetcher_constructor=fetcher_constructor) + fetcher_constructor=fetcher_constructor, + skip_schemas=args.skip_schemas) if args.pack: stdout.write(print_pack(document_loader, processobj, uri, metadata)) diff --git a/requirements.txt b/requirements.txt index d9e1bceea..060033210 100755 --- a/requirements.txt +++ b/requirements.txt @@ -3,5 +3,5 @@ ruamel.yaml==0.13.7 rdflib==4.2.2 rdflib-jsonld==0.4.0 shellescape==3.4.1 -schema-salad>=2.4.20170308171942,<3 +schema-salad>=2.5.20170623152720,<3 typing==3.5.2.2 ; python_version>="2.7" diff --git a/setup.py b/setup.py index 531a393d1..f68c1b707 100755 --- a/setup.py +++ b/setup.py @@ -57,7 +57,7 @@ 'ruamel.yaml >= 0.12.4', 'rdflib >= 4.2.2, < 4.3.0', 'shellescape >= 3.4.1, < 3.5', - 'schema-salad >= 2.4.20170308171942, < 3', + 'schema-salad >= 2.5.20170623152720, < 3', 'typing >= 3.5.2, < 3.6', 'six >= 1.8.0', ],