Skip to content

Commit c28dbd4

Browse files
authored
Merge pull request #2414 from oesteban/fix/master
[FIX] Make ignore_exception a class attribute
2 parents 039b556 + 5cc98f5 commit c28dbd4

File tree

4 files changed

+11
-10
lines changed

4 files changed

+11
-10
lines changed

doc/users/saving_workflows.rst

+4-4
Original file line numberDiff line numberDiff line change
@@ -66,34 +66,34 @@ This will create a file "outputtestsave.py" with the following content:
6666
inode = Node(IdentityInterface(fields=['a'], mandatory_inputs=True), name="inode")
6767
# Node: testsave.testfunc
6868
testfunc = Node(Function(input_names=['a'], output_names=['output']), name="testfunc")
69+
testfunc.interface.ignore_exception = False
6970
def testfunc_1(in1):
7071
"""dummy func
7172
"""
7273
out = in1 + 'foo' + "out1"
7374
return out
7475

7576
testfunc.inputs.function_str = getsource(testfunc_1)
76-
testfunc.inputs.ignore_exception = False
7777
testfunc.inputs.in1 = '-sub'
7878
testsave.connect(inode, "a", testfunc, "in1")
7979
# Node: testsave.bet2
8080
bet2 = MapNode(BET(), iterfield=['infile'], name="bet2")
81+
bet2.interface.ignore_exception = False
8182
bet2.iterables = ('frac', [0.4, 0.5])
8283
bet2.inputs.environ = {'FSLOUTPUTTYPE': 'NIFTI_GZ'}
83-
bet2.inputs.ignore_exception = False
8484
bet2.inputs.output_type = 'NIFTI_GZ'
8585
bet2.terminal_output = 'stream'
8686
# Node: testsave.bet
8787
bet = Node(BET(), name="bet")
88+
bet.interface.ignore_exception = False
8889
bet.iterables = ('frac', [0.3, 0.4])
8990
bet.inputs.environ = {'FSLOUTPUTTYPE': 'NIFTI_GZ'}
90-
bet.inputs.ignore_exception = False
9191
bet.inputs.output_type = 'NIFTI_GZ'
9292
bet.terminal_output = 'stream'
9393
# Node: testsave.maths
9494
maths = Node(ImageMaths(), name="maths")
95+
maths.interface.ignore_exception = False
9596
maths.inputs.environ = {'FSLOUTPUTTYPE': 'NIFTI_GZ'}
96-
maths.inputs.ignore_exception = False
9797
maths.inputs.output_type = 'NIFTI_GZ'
9898
maths.terminal_output = 'stream'
9999
testsave.connect(bet2, ('mask_file', func), maths, "in_file2")

nipype/interfaces/base/core.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -170,12 +170,14 @@ class BaseInterface(Interface):
170170
references_ = []
171171
resource_monitor = True # Enabled for this interface IFF enabled in the config
172172

173-
def __init__(self, from_file=None, resource_monitor=None, **inputs):
173+
def __init__(self, from_file=None, resource_monitor=None,
174+
ignore_exception=False, **inputs):
174175
if not self.input_spec:
175176
raise Exception(
176177
'No input_spec in class: %s' % self.__class__.__name__)
177178

178179
self.inputs = self.input_spec(**inputs)
180+
self.ignore_exception = ignore_exception
179181

180182
if resource_monitor is not None:
181183
self.resource_monitor = resource_monitor
@@ -470,7 +472,6 @@ def run(self, cwd=None, **inputs):
470472
os.chdir(cwd) # Change to the interface wd
471473

472474
enable_rm = config.resource_monitor and self.resource_monitor
473-
force_raise = not getattr(self.inputs, 'ignore_exception', False)
474475
self.inputs.trait_set(**inputs)
475476
self._check_mandatory_inputs()
476477
self._check_version_requirements(self.inputs)
@@ -530,7 +531,7 @@ def run(self, cwd=None, **inputs):
530531
runtime.traceback_args = ('\n'.join(
531532
['%s' % arg for arg in exc_args]), )
532533

533-
if force_raise:
534+
if not self.ignore_exception:
534535
raise
535536
finally:
536537
# This needs to be done always

nipype/workflows/smri/ants/ANTSBuildTemplate.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ def ANTSTemplateBuildSingleIterationWF(iterationPhasePrefix=''):
183183
output_names=['out']),
184184
run_without_submitting=True,
185185
name='MakeTransformsLists')
186-
MakeTransformsLists.inputs.ignore_exception = True
186+
MakeTransformsLists.interface.ignore_exception = True
187187
TemplateBuildSingleIterationWF.connect(
188188
BeginANTS, 'warp_transform', MakeTransformsLists, 'warpTransformList')
189189
TemplateBuildSingleIterationWF.connect(BeginANTS, 'affine_transform',
@@ -263,7 +263,7 @@ def ANTSTemplateBuildSingleIterationWF(iterationPhasePrefix=''):
263263
output_names=['TransformListWithGradientWarps']),
264264
run_without_submitting=True,
265265
name='MakeTransformListWithGradientWarps')
266-
ApplyInvAverageAndFourTimesGradientStepWarpImage.inputs.ignore_exception = True
266+
ApplyInvAverageAndFourTimesGradientStepWarpImage.interface.ignore_exception = True
267267

268268
TemplateBuildSingleIterationWF.connect(
269269
AvgAffineTransform, 'affine_transform',

nipype/workflows/smri/ants/antsRegistrationBuildTemplate.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ def antsRegistrationTemplateBuildSingleIterationWF(iterationPhasePrefix=''):
360360
output_names=['TransformListWithGradientWarps']),
361361
run_without_submitting=True,
362362
name='99_MakeTransformListWithGradientWarps')
363-
ApplyInvAverageAndFourTimesGradientStepWarpImage.inputs.ignore_exception = True
363+
ApplyInvAverageAndFourTimesGradientStepWarpImage.interface.ignore_exception = True
364364

365365
TemplateBuildSingleIterationWF.connect(
366366
AvgAffineTransform, 'affine_transform',

0 commit comments

Comments
 (0)