99import hashlib
1010import json
1111import copy
12- from typing import Any , Callable , Dict , List , Text , Tuple , Union , cast , Iterable
12+ from typing import (Any , Callable , Dict , Iterable , List , Mapping , Optional ,
13+ Text , Tuple , Union , cast )
1314
1415import requests .sessions
1516from six import itervalues , string_types
1819import schema_salad .schema as schema
1920from avro .schema import Names
2021from ruamel .yaml .comments import CommentedMap , CommentedSeq
21- from schema_salad .ref_resolver import Fetcher , Loader , file_uri
22+ from schema_salad .ref_resolver import ContextType , Fetcher , Loader , file_uri
2223from schema_salad .sourceline import cmap
2324from schema_salad .validate import ValidationException
2425
2829from .update import ALLUPDATES
2930
3031_logger = logging .getLogger ("cwltool" )
31-
3232jobloaderctx = {
3333 u"cwl" : "https://w3id.org/cwl/cwl#" ,
3434 u"cwltool" : "http://commonwl.org/cwltool#" ,
3535 u"path" : {u"@type" : u"@id" },
3636 u"location" : {u"@type" : u"@id" },
3737 u"format" : {u"@type" : u"@id" },
3838 u"id" : u"@id"
39- }
39+ } # type: ContextType
4040
4141
4242overrides_ctx = {
5151 "@id" : "cwltool:override" ,
5252 "mapSubject" : "class"
5353 }
54- } # type: Dict[Text, Union[Dict[Any, Any], Text, Iterable[Text]]]
54+ } # type: ContextType
55+
5556
57+ FetcherConstructorType = Callable [[Dict [Text , Union [Text , bool ]],
58+ requests .sessions .Session ], Fetcher ]
5659
57- loaders = {}
60+ loaders = {} # type: Dict[FetcherConstructorType, Loader]
5861
5962def default_loader (fetcher_constructor ):
63+ # type: (Optional[FetcherConstructorType]) -> Loader
6064 if fetcher_constructor in loaders :
6165 return loaders [fetcher_constructor ]
6266 else :
@@ -66,7 +70,7 @@ def default_loader(fetcher_constructor):
6670
6771def resolve_tool_uri (argsworkflow , # type: Text
6872 resolver = None , # type: Callable[[Loader, Union[Text, Dict[Text, Any]]], Text]
69- fetcher_constructor = None , # type: Callable[[Dict[Text, Text], requests.sessions.Session], Fetcher]
73+ fetcher_constructor = None , # type: FetcherConstructorType
7074 document_loader = None # type: Loader
7175 ): # type: (...) -> Tuple[Text, Text]
7276
@@ -94,7 +98,7 @@ def resolve_tool_uri(argsworkflow, # type: Text
9498
9599def fetch_document (argsworkflow , # type: Union[Text, Dict[Text, Any]]
96100 resolver = None , # type: Callable[[Loader, Union[Text, Dict[Text, Any]]], Text]
97- fetcher_constructor = None # type: Callable[[Dict[Text, Text], requests.sessions.Session], Fetcher]
101+ fetcher_constructor = None # type: FetcherConstructorType
98102 ): # type: (...) -> Tuple[Loader, CommentedMap, Text]
99103 """Retrieve a CWL document."""
100104
@@ -178,7 +182,7 @@ def validate_document(document_loader, # type: Loader
178182 enable_dev = False , # type: bool
179183 strict = True , # type: bool
180184 preprocess_only = False , # type: bool
181- fetcher_constructor = None , # type: Callable[[Dict[Text, Text], requests.sessions.Session], Fetcher]
185+ fetcher_constructor = None , # type: FetcherConstructorType
182186 skip_schemas = None , # type: bool
183187 overrides = None , # type: List[Dict]
184188 metadata = None , # type: Optional[Dict]
@@ -333,7 +337,7 @@ def load_tool(argsworkflow, # type: Union[Text, Dict[Text, Any]]
333337 enable_dev = False , # type: bool
334338 strict = True , # type: bool
335339 resolver = None , # type: Callable[[Loader, Union[Text, Dict[Text, Any]]], Text]
336- fetcher_constructor = None , # type: Callable[[Dict[Text, Text], requests.sessions.Session], Fetcher]
340+ fetcher_constructor = None , # type: FetcherConstructorType
337341 overrides = None
338342 ):
339343 # type: (...) -> Process
0 commit comments