Skip to content

Commit 16315da

Browse files
committed
Refactored AFNI. Added new autogenerating input type.
1 parent d8097b9 commit 16315da

File tree

5 files changed

+182
-160
lines changed

5 files changed

+182
-160
lines changed

nipype/interfaces/afni/base.py

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -189,37 +189,33 @@ def _gen_fname(self, basename, cwd=None, suffix='_afni', change_ext=True, prefix
189189
return fname
190190

191191
class AFNIPrefixInputSpec(AFNITraitedSpec):
192-
out_file = File(desc='output image file name',
193-
argstr='-prefix %s', xor=['out_file', 'prefix', 'suffix'], genfile=True, hash_files=True)
194-
prefix = traits.Str(desc='output image prefix', xor=['out_file', 'prefix'])
195-
suffix = traits.Str(desc='output image suffix', xor=['out_file', 'suffix'])
192+
out_file = File("%s_afni", desc='output image file name',
193+
argstr='-prefix %s', xor=['out_file', 'prefix', 'suffix'], name_source="in_file", usedefault=True)
194+
prefix = traits.Str(desc='output image prefix')
195+
suffix = traits.Str(desc='output image suffix')
196196

197197
class AFNIPrefixCommand(AFNICommand):
198198
input_spec = AFNIPrefixInputSpec
199-
_suffix = '_afni'
200-
201-
def _gen_out_file(self, source_filename):
202-
suffix = self._suffix
203-
prefix = ''
204-
if isdefined(self.inputs.prefix):
205-
prefix = self.inputs.prefix
206-
if isdefined(self.inputs.suffix):
207-
suffix = self.inputs.suffix
208-
209-
_, base, _ = split_filename(source_filename)
210-
return self._gen_fname(basename=base, prefix=prefix, suffix=suffix)
211199

212200
def _gen_filename(self, name):
213-
if name == 'out_file':
214-
return self._gen_out_file(self.inputs.in_file)
215-
return None
216-
217-
def _list_outputs(self):
218-
outputs = self.output_spec().get()
219-
outputs['out_file'] = self.inputs.out_file
220-
if not isdefined(outputs['out_file']):
221-
outputs['out_file'] = self._gen_filename('out_file')
222-
return outputs
201+
trait_spec = self.inputs.trait(name)
202+
value = getattr(self.inputs, name)
203+
if name == "out_file" and (isdefined(self.inputs.prefix) or isdefined(self.inputs.suffix)):
204+
suffix = ''
205+
prefix = ''
206+
if isdefined(self.inputs.prefix):
207+
prefix = self.inputs.prefix
208+
if isdefined(self.inputs.suffix):
209+
suffix = self.inputs.suffix
210+
211+
_, base, _ = split_filename(getattr(self.inputs,trait_spec.name_source))
212+
return self._gen_fname(basename=base, prefix=prefix, suffix=suffix, cwd='')
213+
else:
214+
return super(AFNIPrefixCommand, self)._gen_filename(name)
215+
216+
def _overload_extension(self, value):
217+
path, base, _ = split_filename(value)
218+
return os.path.join(path, base + Info.outputtype_to_ext(self.inputs.outputtype))
223219

224220
class AFNIPrefixOutputSpec(TraitedSpec):
225221
out_file = File(desc='output file',

0 commit comments

Comments
 (0)