Closed
Description
As discussed in #2450, the name_source
logic is not working as expected.
Consider the following input spec:
class NwarpAdjustInputSpec(AFNICommandInputSpec):
warps = InputMultiPath(
File(exists=True),
minlen=5,
mandatory=True,
argstr='-nwarp %s',
desc='List of input 3D warp datasets')
in_files = InputMultiPath(
File(exists=True),
minlen=5,
argstr='-source %s',
desc='List of input 3D datasets to be warped by the adjusted warp '
'datasets. There must be exactly as many of these datasets as '
'there are input warps.')
out_file = File(
desc='Output mean dataset, only needed if in_files are also given. '
'The output dataset will be on the common grid shared by the '
'source datasets.',
argstr='-prefix %s',
name_source='in_files',
name_template='%s_NwarpAdjust',
keep_extension=True,
requires=['in_files'])
The goal is to automatically derive an out_file
value iff in_files
is set. There was some discussion over whether the traits are correct as is (e.g. @oesteban suggested that requires
is not needed for out_file
), but it did seem to be agreed that the goal should be achievable purely using traits without overriding interface methods.