Skip to content

Commit ec5ab00

Browse files
author
Peter Amstutz
committed
Propagate kwargs to make_pathmapper.
1 parent 7acd95b commit ec5ab00

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

cwltool/draft2tool.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ def __init__(self, toolpath_object, **kwargs):
199199
super(CommandLineTool, self).__init__(toolpath_object, **kwargs)
200200
self.find_default_container = kwargs.get("find_default_container", None)
201201

202-
def makeJobRunner(self, use_container=True): # type: (Optional[bool]) -> JobBase
202+
def makeJobRunner(self, use_container=True, **kwargs): # type: (Optional[bool], **Any) -> JobBase
203203
dockerReq, _ = self.get_requirement("DockerRequirement")
204204
if not dockerReq and use_container:
205205
if self.find_default_container:
@@ -225,7 +225,8 @@ def makeJobRunner(self, use_container=True): # type: (Optional[bool]) -> JobBas
225225

226226
def makePathMapper(self, reffiles, stagedir, **kwargs):
227227
# type: (List[Any], Text, **Any) -> PathMapper
228-
return PathMapper(reffiles, kwargs["basedir"], stagedir)
228+
return PathMapper(reffiles, kwargs["basedir"], stagedir,
229+
separateDirs=kwargs.get("separateDirs", True))
229230

230231
def updatePathmap(self, outdir, pathmap, fn):
231232
# type: (Text, PathMapper, Dict) -> None
@@ -334,9 +335,10 @@ def rm_pending_output_callback(output_callbacks, jobcachepending,
334335

335336
reffiles = copy.deepcopy(builder.files)
336337

337-
j = self.makeJobRunner(kwargs.get("use_container"))
338+
j = self.makeJobRunner(**kwargs)
338339
j.builder = builder
339340
j.joborder = builder.job
341+
j.make_pathmapper = self.makePathMapper
340342
j.stdin = None
341343
j.stderr = None
342344
j.stdout = None

cwltool/job.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ def __init__(self): # type: () -> None
132132
self.name = None # type: Text
133133
self.command_line = None # type: List[Text]
134134
self.pathmapper = None # type: PathMapper
135+
self.make_pathmapper = None # type: (List[Any], Text, **Any) -> PathMapper
135136
self.generatemapper = None # type: PathMapper
136137
self.collect_outputs = None # type: Union[Callable[[Any], Any], functools.partial[Any]]
137138
self.output_callback = None # type: Callable[[Any, Any], Any]
@@ -142,7 +143,7 @@ def __init__(self): # type: () -> None
142143
self.stagedir = None # type: Text
143144
self.inplace_update = None # type: bool
144145

145-
def _setup(self): # type: () -> None
146+
def _setup(self, kwargs): # type: () -> None
146147
if not os.path.exists(self.outdir):
147148
os.makedirs(self.outdir)
148149

@@ -154,8 +155,12 @@ def _setup(self): # type: () -> None
154155
"file." % (knownfile, self.pathmapper.mapper(knownfile)[0]))
155156

156157
if self.generatefiles["listing"]:
157-
self.generatemapper = PathMapper(cast(List[Any], self.generatefiles["listing"]),
158-
self.outdir, self.outdir, separateDirs=False)
158+
make_path_mapper_kwargs = kwargs
159+
if "basedir" in make_path_mapper_kwargs:
160+
make_path_mapper_kwargs = make_path_mapper_kwargs.copy()
161+
del make_path_mapper_kwargs["basedir"]
162+
self.generatemapper = self.make_pathmapper(cast(List[Any], self.generatefiles["listing"]),
163+
self.outdir, basedir=self.outdir, separateDirs=False, **make_path_mapper_kwargs)
159164
_logger.debug(u"[job %s] initial work dir %s", self.name,
160165
json.dumps({p: self.generatemapper.mapper(p) for p in self.generatemapper.files()}, indent=4))
161166

@@ -275,7 +280,7 @@ def run(self, pull_image=True, rm_container=True,
275280
rm_tmpdir=True, move_outputs="move", **kwargs):
276281
# type: (bool, bool, bool, Text, **Any) -> None
277282

278-
self._setup()
283+
self._setup(kwargs)
279284

280285
env = self.environment
281286
if not os.path.exists(self.tmpdir):
@@ -369,7 +374,7 @@ def run(self, pull_image=True, rm_container=True,
369374
"Docker is not available for this tool, try --no-container"
370375
" to disable Docker: %s" % e)
371376

372-
self._setup()
377+
self._setup(kwargs)
373378

374379
runtime = [u"docker", u"run", u"-i"]
375380

0 commit comments

Comments
 (0)