@@ -189,37 +189,33 @@ def _gen_fname(self, basename, cwd=None, suffix='_afni', change_ext=True, prefix
189
189
return fname
190
190
191
191
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' )
196
196
197
197
class AFNIPrefixCommand (AFNICommand ):
198
198
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 )
211
199
212
200
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 ))
223
219
224
220
class AFNIPrefixOutputSpec (TraitedSpec ):
225
221
out_file = File (desc = 'output file' ,
0 commit comments