From 9e3ae7e9963619bc2f1fb2feb4f4ce03519d492a Mon Sep 17 00:00:00 2001 From: bpinsard Date: Thu, 16 May 2024 16:26:15 -0400 Subject: [PATCH] fix interface --- niworkflows/interfaces/gradunwarp.py | 26 ++++++++++---------------- niworkflows/testing.py | 2 +- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/niworkflows/interfaces/gradunwarp.py b/niworkflows/interfaces/gradunwarp.py index 553c8d5e6eb..6bb3fd263c3 100644 --- a/niworkflows/interfaces/gradunwarp.py +++ b/niworkflows/interfaces/gradunwarp.py @@ -29,24 +29,11 @@ SimpleInterface ) -has_gradunwarp = False -try: - from gradunwarp.core.gradient_unwarp import GradientUnwarpRunner - has_gradunwarp = True -except ImportError: - pass - - class _GradUnwarpInputSpec(TraitedSpec): infile = File(exists=True, mandatory=True, desc="input image to be corrected") gradfile = File(exists=True, default=None, desc="gradient file") coeffile = File(exists=True, default=None, desc="coefficients file") - outfile = File( - name_source=['in_file'], - name_template=['%s_gradunwarped'], - keep_extension=True, - desc="output corrected image" - ) + outfile = File("gradunwarped.nii.gz", mandatory=True, usedefault=True, desc="output corrected image") vendor = traits.Enum("siemens", "ge", usedefault=True, desc="scanner vendor") warp = traits.Bool(desc="warp a volume (as opposed to unwarping)") nojac = traits.Bool(desc="Do not perform Jacobian intensity correction") @@ -68,11 +55,18 @@ class GradUnwarp(SimpleInterface): input_spec = _GradUnwarpInputSpec output_spec = _GradUnwarpOutputSpec + def version(): + try: + import gradunwarp + except ImportError: + return + return gradunwarp.__version__ + def _run_interface(self, runtime): - if not has_gradunwarp: + if not GradUnwarp.version(): raise RuntimeError('missing gradunwarp dependency') - + from gradunwarp.core.gradient_unwarp import GradientUnwarpRunner gur = GradientUnwarpRunner(self.inputs) gur.run() gur.write() diff --git a/niworkflows/testing.py b/niworkflows/testing.py index 37ee9b09fed..78340b442dc 100644 --- a/niworkflows/testing.py +++ b/niworkflows/testing.py @@ -42,4 +42,4 @@ def wrapper(*args, **kwargs): has_fsl = fsl.Info.version() is not None has_freesurfer = fs.Info.version() is not None has_afni = afni.Info.version() is not None -has_gradunwarp = gradunwarp.has_gradunwarp +has_gradunwarp = gradunwarp.GradUnwarp.version()