Skip to content

Commit caf9bdb

Browse files
authored
Merge pull request #9 from effigies/fix/process_isolation
FIX: Isolate Nipype1Tasks by running interfaces in Node
2 parents 70c332a + 5c46a2d commit caf9bdb

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

pydra/tasks/nipype1/tests/__init__.py

Whitespace-only changes.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import pytest
2+
import shutil
3+
from pkg_resources import resource_filename
4+
5+
from nipype.interfaces import fsl
6+
from pydra.tasks.nipype1.utils import Nipype1Task
7+
8+
9+
@pytest.mark.skipif(fsl.Info.version() is None, reason="Test requires FSL")
10+
def test_isolation(tmp_path):
11+
in_file = tmp_path / "orig/tpms_msk.nii.gz"
12+
in_file.parent.mkdir()
13+
shutil.copyfile(resource_filename("nipype", "testing/data/tpms_msk.nii.gz"), in_file)
14+
15+
out_dir = tmp_path / "output"
16+
out_dir.mkdir()
17+
18+
slicer = Nipype1Task(fsl.Slice(), cache_dir=str(out_dir))
19+
slicer.inputs.in_file = in_file
20+
21+
res = slicer()
22+
assert res.output.out_files
23+
assert all(fname.startswith(str(out_dir)) for fname in res.output.out_files)

pydra/tasks/nipype1/utils.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,5 +68,7 @@ def __init__(
6868

6969
def _run_task(self):
7070
inputs = attr.asdict(self.inputs, filter=lambda a, v: v is not attr.NOTHING)
71-
res = self._interface.run(**inputs)
71+
node = nipype.Node(self._interface, base_dir=self.output_dir, name=self.name)
72+
node.inputs.trait_set(**inputs)
73+
res = node.run()
7274
self.output_ = res.outputs.get()

0 commit comments

Comments
 (0)