Skip to content

Commit 2a7452e

Browse files
committed
RF: Unset default traits for out-of-version inputs at init
1 parent e897768 commit 2a7452e

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

nipype/interfaces/base/core.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,14 @@ def __init__(
180180
if not self.input_spec:
181181
raise Exception("No input_spec in class: %s" % self.__class__.__name__)
182182

183-
self.inputs = self.input_spec(**inputs)
183+
# Create input spec, disable any defaults that are unavailable due to
184+
# version, and then apply the inputs that were passed.
185+
self.inputs = self.input_spec()
186+
unavailable_traits = self._check_version_requirements(self.inputs)
187+
if unavailable_traits:
188+
self.inputs.traitset(**{k: Undefined for k in unavailable_traits})
189+
self.inputs.traitset(**inputs)
190+
184191
self.ignore_exception = ignore_exception
185192

186193
if resource_monitor is not None:
@@ -371,10 +378,8 @@ def run(self, cwd=None, ignore_exception=None, **inputs):
371378

372379
enable_rm = config.resource_monitor and self.resource_monitor
373380
self.inputs.trait_set(**inputs)
374-
unavailable_traits = self._check_version_requirements(self.inputs)
375-
if unavailable_traits:
376-
self.inputs.traitset(**{k: Undefined for k in unavailable_traits})
377381
self._check_mandatory_inputs()
382+
self._check_version_requirements(self.inputs)
378383
interface = self.__class__
379384
self._duecredit_cite()
380385

0 commit comments

Comments
 (0)