Skip to content

Commit 90a8cf5

Browse files
committed
MYPYC!
1 parent 22588db commit 90a8cf5

28 files changed

+663
-538
lines changed

cwltool/builder.py

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,19 @@
2121
from ruamel.yaml.comments import CommentedMap
2222
from typing_extensions import TYPE_CHECKING, Type # pylint: disable=unused-import
2323

24-
from schema_salad import validate
25-
from schema_salad.avro.schema import Schema, make_avsc_object
26-
from schema_salad.schema import Names, convert_to_dict
24+
from schema_salad.avro.schema import Names, Schema, make_avsc_object
25+
from schema_salad.exceptions import ValidationException
2726
from schema_salad.sourceline import SourceLine
28-
from schema_salad.utils import json_dumps
27+
from schema_salad.utils import convert_to_dict, json_dumps
28+
from schema_salad.validate import validate
2929

3030
from . import expression
3131
from .errors import WorkflowException
3232
from .loghandler import _logger
3333
from .mutation import MutationManager
34-
from .pathmapper import CONTENT_LIMIT, get_listing, normalizeFilesDirs, visit_class
34+
from .pathmapper import CONTENT_LIMIT, get_listing, normalizeFilesDirs
3535
from .stdfsaccess import StdFsAccess
36-
from .utils import aslist, docker_windows_path_adjust, onWindows
36+
from .utils import aslist, docker_windows_path_adjust, onWindows, visit_class
3737

3838
# move to a regular typing import when Python 3.3-3.6 is no longer supported
3939

@@ -112,15 +112,15 @@ def check_format(
112112
if not afile:
113113
continue
114114
if "format" not in afile:
115-
raise validate.ValidationException(
115+
raise ValidationException(
116116
"File has no 'format' defined: {}".format(json_dumps(afile, indent=4))
117117
)
118118
for inpf in aslist(input_formats):
119119
if afile["format"] == inpf or formatSubclassOf(
120120
afile["format"], inpf, ontology, set()
121121
):
122122
return
123-
raise validate.ValidationException(
123+
raise ValidationException(
124124
"File has an incompatible format: {}".format(json_dumps(afile, indent=4))
125125
)
126126

@@ -202,10 +202,10 @@ def __init__(
202202
self.prov_obj = None # type: Optional[ProvenanceProfile]
203203
self.find_default_container = None # type: Optional[Callable[[], str]]
204204

205-
def build_job_script(self, commands: List[str]) -> str:
205+
def build_job_script(self, commands: List[str]) -> Optional[str]:
206206
build_job_script_method = getattr(
207207
self.job_script_provider, "build_job_script", None
208-
) # type: Callable[[Builder, Union[List[str],List[str]]], str]
208+
) # type: Optional[Callable[[Builder, Union[List[str],List[str]]], str]]
209209
if build_job_script_method is not None:
210210
return build_job_script_method(self, commands)
211211
return None
@@ -216,7 +216,7 @@ def bind_input(
216216
datum: Any,
217217
discover_secondaryFiles: bool,
218218
lead_pos: Optional[Union[int, List[int]]] = None,
219-
tail_pos: Optional[List[int]] = None,
219+
tail_pos: Optional[Union[str, List[int]]] = None,
220220
) -> List[MutableMapping[str, Any]]:
221221

222222
if tail_pos is None:
@@ -265,7 +265,7 @@ def bind_input(
265265
avsc = self.names.get_name(t["name"], None)
266266
if not avsc:
267267
avsc = make_avsc_object(convert_to_dict(t), self.names)
268-
if validate.validate(avsc, datum):
268+
if validate(avsc, datum):
269269
schema = copy.deepcopy(schema)
270270
schema["type"] = t
271271
if not value_from_expression:
@@ -286,7 +286,7 @@ def bind_input(
286286
)
287287
bound_input = True
288288
if not bound_input:
289-
raise validate.ValidationException(
289+
raise ValidationException(
290290
"'%s' is not a valid union %s" % (datum, schema["type"])
291291
)
292292
elif isinstance(schema["type"], MutableMapping):
@@ -454,7 +454,7 @@ def addsf(
454454
check_format(
455455
datum, self.do_eval(schema["format"]), self.formatgraph
456456
)
457-
except validate.ValidationException as ve:
457+
except ValidationException as ve:
458458
raise WorkflowException(
459459
"Expected value of '%s' to have format %s but\n "
460460
" %s" % (schema["name"], schema["format"], ve)
@@ -562,8 +562,13 @@ def generate_arg(self, binding): # type: (Dict[str, Any]) -> List[str]
562562

563563
return [a for a in args if a is not None]
564564

565-
def do_eval(self, ex, context=None, recursive=False, strip_whitespace=True):
566-
# type: (Union[Dict[str, str], str], Any, bool, bool) -> Any
565+
def do_eval(
566+
self,
567+
ex: Union[MutableMapping[str, Any], MutableSequence[str], str],
568+
context: Optional[Any] = None,
569+
recursive: bool = False,
570+
strip_whitespace: bool = True,
571+
) -> Any:
567572
if recursive:
568573
if isinstance(ex, MutableMapping):
569574
return {k: self.do_eval(v, context, recursive) for k, v in ex.items()}

cwltool/checker.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from collections import namedtuple
33
from typing import Any, Dict, List, MutableMapping, MutableSequence, Optional
44

5-
from schema_salad import validate
5+
from schema_salad.exceptions import ValidationException
66
from schema_salad.sourceline import SourceLine, bullets, strip_dup_lineno
77
from schema_salad.utils import json_dumps
88

@@ -297,7 +297,7 @@ def static_checker(
297297
if all_warning_msg:
298298
_logger.warning("Workflow checker warning:\n%s", all_warning_msg)
299299
if exceptions:
300-
raise validate.ValidationException(all_exception_msg)
300+
raise ValidationException(all_exception_msg)
301301

302302

303303
SrcSink = namedtuple("SrcSink", ["src", "sink", "linkMerge", "message"])

0 commit comments

Comments
 (0)