@@ -132,6 +132,7 @@ def __init__(self): # type: () -> None
132
132
self .name = None # type: Text
133
133
self .command_line = None # type: List[Text]
134
134
self .pathmapper = None # type: PathMapper
135
+ self .make_pathmapper = None # type: (List[Any], Text, **Any) -> PathMapper
135
136
self .generatemapper = None # type: PathMapper
136
137
self .collect_outputs = None # type: Union[Callable[[Any], Any], functools.partial[Any]]
137
138
self .output_callback = None # type: Callable[[Any, Any], Any]
@@ -142,7 +143,7 @@ def __init__(self): # type: () -> None
142
143
self .stagedir = None # type: Text
143
144
self .inplace_update = None # type: bool
144
145
145
- def _setup (self ): # type: () -> None
146
+ def _setup (self , kwargs ): # type: () -> None
146
147
if not os .path .exists (self .outdir ):
147
148
os .makedirs (self .outdir )
148
149
@@ -154,8 +155,12 @@ def _setup(self): # type: () -> None
154
155
"file." % (knownfile , self .pathmapper .mapper (knownfile )[0 ]))
155
156
156
157
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 )
159
164
_logger .debug (u"[job %s] initial work dir %s" , self .name ,
160
165
json .dumps ({p : self .generatemapper .mapper (p ) for p in self .generatemapper .files ()}, indent = 4 ))
161
166
@@ -275,7 +280,7 @@ def run(self, pull_image=True, rm_container=True,
275
280
rm_tmpdir = True , move_outputs = "move" , ** kwargs ):
276
281
# type: (bool, bool, bool, Text, **Any) -> None
277
282
278
- self ._setup ()
283
+ self ._setup (kwargs )
279
284
280
285
env = self .environment
281
286
if not os .path .exists (self .tmpdir ):
@@ -369,7 +374,7 @@ def run(self, pull_image=True, rm_container=True,
369
374
"Docker is not available for this tool, try --no-container"
370
375
" to disable Docker: %s" % e )
371
376
372
- self ._setup ()
377
+ self ._setup (kwargs )
373
378
374
379
runtime = [u"docker" , u"run" , u"-i" ]
375
380
0 commit comments