9
9
import hashlib
10
10
import json
11
11
import 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 )
13
14
14
15
import requests .sessions
15
16
from six import itervalues , string_types
18
19
import schema_salad .schema as schema
19
20
from avro .schema import Names
20
21
from 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
22
23
from schema_salad .sourceline import cmap
23
24
from schema_salad .validate import ValidationException
24
25
28
29
from .update import ALLUPDATES
29
30
30
31
_logger = logging .getLogger ("cwltool" )
31
-
32
32
jobloaderctx = {
33
33
u"cwl" : "https://w3id.org/cwl/cwl#" ,
34
34
u"cwltool" : "http://commonwl.org/cwltool#" ,
35
35
u"path" : {u"@type" : u"@id" },
36
36
u"location" : {u"@type" : u"@id" },
37
37
u"format" : {u"@type" : u"@id" },
38
38
u"id" : u"@id"
39
- }
39
+ } # type: ContextType
40
40
41
41
42
42
overrides_ctx = {
51
51
"@id" : "cwltool:override" ,
52
52
"mapSubject" : "class"
53
53
}
54
- } # type: Dict[Text, Union[Dict[Any, Any], Text, Iterable[Text]]]
54
+ } # type: ContextType
55
+
55
56
57
+ FetcherConstructorType = Callable [[Dict [Text , Union [Text , bool ]],
58
+ requests .sessions .Session ], Fetcher ]
56
59
57
- loaders = {}
60
+ loaders = {} # type: Dict[FetcherConstructorType, Loader]
58
61
59
62
def default_loader (fetcher_constructor ):
63
+ # type: (Optional[FetcherConstructorType]) -> Loader
60
64
if fetcher_constructor in loaders :
61
65
return loaders [fetcher_constructor ]
62
66
else :
@@ -66,7 +70,7 @@ def default_loader(fetcher_constructor):
66
70
67
71
def resolve_tool_uri (argsworkflow , # type: Text
68
72
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
70
74
document_loader = None # type: Loader
71
75
): # type: (...) -> Tuple[Text, Text]
72
76
@@ -94,7 +98,7 @@ def resolve_tool_uri(argsworkflow, # type: Text
94
98
95
99
def fetch_document (argsworkflow , # type: Union[Text, Dict[Text, Any]]
96
100
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
98
102
): # type: (...) -> Tuple[Loader, CommentedMap, Text]
99
103
"""Retrieve a CWL document."""
100
104
@@ -178,7 +182,7 @@ def validate_document(document_loader, # type: Loader
178
182
enable_dev = False , # type: bool
179
183
strict = True , # type: bool
180
184
preprocess_only = False , # type: bool
181
- fetcher_constructor = None , # type: Callable[[Dict[Text, Text], requests.sessions.Session], Fetcher]
185
+ fetcher_constructor = None , # type: FetcherConstructorType
182
186
skip_schemas = None , # type: bool
183
187
overrides = None , # type: List[Dict]
184
188
metadata = None , # type: Optional[Dict]
@@ -333,7 +337,7 @@ def load_tool(argsworkflow, # type: Union[Text, Dict[Text, Any]]
333
337
enable_dev = False , # type: bool
334
338
strict = True , # type: bool
335
339
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
337
341
overrides = None
338
342
):
339
343
# type: (...) -> Process
0 commit comments