From 040708f33cfc26335f6deba6d14b97c461051175 Mon Sep 17 00:00:00 2001 From: yibeichan Date: Tue, 9 May 2023 11:49:46 -0700 Subject: [PATCH 1/2] rename roi_file with new basename --- pydra/tasks/fsl/utils/extractroi.py | 10 ++++---- .../fsl/utils/tests/test_run_extractroi.py | 24 ++++++++++++++++--- .../fsl/utils/tests/test_spec_extractroi.py | 20 ++++++++++++++-- specs/fsl_utils_param.yml | 14 ++++++++--- 4 files changed, 56 insertions(+), 12 deletions(-) diff --git a/pydra/tasks/fsl/utils/extractroi.py b/pydra/tasks/fsl/utils/extractroi.py index da34f08..45c4c1b 100644 --- a/pydra/tasks/fsl/utils/extractroi.py +++ b/pydra/tasks/fsl/utils/extractroi.py @@ -20,7 +20,7 @@ "help_string": "output file", "argstr": "{roi_file}", "position": 1, - "output_file_template": "{in_file}_trim", + "output_file_template": "{in_file}_roi", }, ), ("x_min", int, {"help_string": "", "argstr": "{x_min}", "position": 2}), @@ -32,7 +32,9 @@ ("t_min", int, {"help_string": "", "argstr": "{t_min}", "position": 8}), ("t_size", int, {"help_string": "", "argstr": "{t_size}", "position": 9}), ] -ExtractROI_input_spec = specs.SpecInfo(name="Input", fields=input_fields, bases=(specs.ShellSpec,)) +ExtractROI_input_spec = specs.SpecInfo( + name="Input", fields=input_fields, bases=(specs.ShellSpec,) +) output_fields = [] ExtractROI_output_spec = specs.SpecInfo( @@ -48,9 +50,9 @@ class ExtractROI(ShellCommandTask): >>> task.inputs.in_file = "test.nii.gz" >>> task.inputs.t_min = 0 >>> task.inputs.t_size = 3 - >>> task.inputs.roi_file = "test_trim.nii.gz" + >>> task.inputs.roi_file = "test_roi.nii.gz" >>> task.cmdline - 'fslroi test.nii.gz test_trim.nii.gz 0 3' + 'fslroi test.nii.gz test_roi.nii.gz 0 3' """ input_spec = ExtractROI_input_spec diff --git a/pydra/tasks/fsl/utils/tests/test_run_extractroi.py b/pydra/tasks/fsl/utils/tests/test_run_extractroi.py index e3bddd8..7ba7046 100644 --- a/pydra/tasks/fsl/utils/tests/test_run_extractroi.py +++ b/pydra/tasks/fsl/utils/tests/test_run_extractroi.py @@ -3,10 +3,26 @@ from ..extractroi import ExtractROI -@pytest.mark.xfail("FSLDIR" not in os.environ, reason="no FSL found", raises=FileNotFoundError) +@pytest.mark.xfail( + "FSLDIR" not in os.environ, reason="no FSL found", raises=FileNotFoundError +) @pytest.mark.parametrize( "inputs, outputs", - [({"in_file": "test.nii.gz", "t_min": 0, "t_size": 1}, ["roi_file"])], + [ + ({"in_file": "test.nii.gz", "t_min": 0, "t_size": 1}, ["roi_file"]), + ( + { + "in_file": "test.nii.gz", + "x_min": 0, + "x_size": 1, + "y_min": 20, + "y_size": 1, + "z_min": 10, + "z_size": 1, + }, + ["roi_file"], + ), + ], ) def test_ExtractROI(test_data, inputs, outputs): if inputs is None: @@ -34,7 +50,9 @@ def test_ExtractROI(test_data, inputs, outputs): except: pass task = ExtractROI(**inputs) - assert set(task.generated_output_names) == set(["return_code", "stdout", "stderr"] + outputs) + assert set(task.generated_output_names) == set( + ["return_code", "stdout", "stderr"] + outputs + ) res = task() print("RESULT: ", res) for out_nm in outputs: diff --git a/pydra/tasks/fsl/utils/tests/test_spec_extractroi.py b/pydra/tasks/fsl/utils/tests/test_spec_extractroi.py index 3496f3f..785a9e0 100644 --- a/pydra/tasks/fsl/utils/tests/test_spec_extractroi.py +++ b/pydra/tasks/fsl/utils/tests/test_spec_extractroi.py @@ -5,7 +5,21 @@ @pytest.mark.parametrize( "inputs, outputs", - [({"in_file": "test.nii.gz", "t_min": 0, "t_size": 1}, ["roi_file"])], + [ + ({"in_file": "test.nii.gz", "t_min": 0, "t_size": 1}, ["roi_file"]), + ( + { + "in_file": "test.nii.gz", + "x_min": 0, + "x_size": 1, + "y_min": 20, + "y_size": 1, + "z_min": 10, + "z_size": 1, + }, + ["roi_file"], + ), + ], ) def test_ExtractROI(test_data, inputs, outputs): if inputs is None: @@ -33,4 +47,6 @@ def test_ExtractROI(test_data, inputs, outputs): except: pass task = ExtractROI(**inputs) - assert set(task.generated_output_names) == set(["return_code", "stdout", "stderr"] + outputs) + assert set(task.generated_output_names) == set( + ["return_code", "stdout", "stderr"] + outputs + ) diff --git a/specs/fsl_utils_param.yml b/specs/fsl_utils_param.yml index f62cc9f..0ad95de 100644 --- a/specs/fsl_utils_param.yml +++ b/specs/fsl_utils_param.yml @@ -90,21 +90,29 @@ ExtractROI: output_requirements: roi_file: [in_file] output_templates: - roi_file: "{in_file}_trim" + roi_file: "{in_file}_roi" inputs_drop: - crop_list doctest: in_file: test.nii.gz t_min: 0 t_size: 3 - roi_file: test_trim.nii.gz - cmdline: fslroi test.nii.gz test_trim.nii.gz 0 3 + roi_file: test_roi.nii.gz + cmdline: fslroi test.nii.gz test_roi.nii.gz 0 3 tests_inputs: - in_file: test.nii.gz t_min: 0 t_size: 1 + - in_file: test.nii.gz + x_min: 0 + x_size: 1 + y_min: 20 + y_size: 1 + z_min: 10 + z_size: 1 tests_outputs: - roi_file + - roi_file FilterRegressor: output_requirements: From d0df719abcfd17d7852a32207d09feac9b895fa5 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 9 May 2023 18:58:13 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- pydra/tasks/fsl/utils/extractroi.py | 4 +--- pydra/tasks/fsl/utils/tests/test_run_extractroi.py | 8 ++------ pydra/tasks/fsl/utils/tests/test_spec_extractroi.py | 4 +--- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/pydra/tasks/fsl/utils/extractroi.py b/pydra/tasks/fsl/utils/extractroi.py index 45c4c1b..ac37cc4 100644 --- a/pydra/tasks/fsl/utils/extractroi.py +++ b/pydra/tasks/fsl/utils/extractroi.py @@ -32,9 +32,7 @@ ("t_min", int, {"help_string": "", "argstr": "{t_min}", "position": 8}), ("t_size", int, {"help_string": "", "argstr": "{t_size}", "position": 9}), ] -ExtractROI_input_spec = specs.SpecInfo( - name="Input", fields=input_fields, bases=(specs.ShellSpec,) -) +ExtractROI_input_spec = specs.SpecInfo(name="Input", fields=input_fields, bases=(specs.ShellSpec,)) output_fields = [] ExtractROI_output_spec = specs.SpecInfo( diff --git a/pydra/tasks/fsl/utils/tests/test_run_extractroi.py b/pydra/tasks/fsl/utils/tests/test_run_extractroi.py index 7ba7046..d4c0778 100644 --- a/pydra/tasks/fsl/utils/tests/test_run_extractroi.py +++ b/pydra/tasks/fsl/utils/tests/test_run_extractroi.py @@ -3,9 +3,7 @@ from ..extractroi import ExtractROI -@pytest.mark.xfail( - "FSLDIR" not in os.environ, reason="no FSL found", raises=FileNotFoundError -) +@pytest.mark.xfail("FSLDIR" not in os.environ, reason="no FSL found", raises=FileNotFoundError) @pytest.mark.parametrize( "inputs, outputs", [ @@ -50,9 +48,7 @@ def test_ExtractROI(test_data, inputs, outputs): except: pass task = ExtractROI(**inputs) - assert set(task.generated_output_names) == set( - ["return_code", "stdout", "stderr"] + outputs - ) + assert set(task.generated_output_names) == set(["return_code", "stdout", "stderr"] + outputs) res = task() print("RESULT: ", res) for out_nm in outputs: diff --git a/pydra/tasks/fsl/utils/tests/test_spec_extractroi.py b/pydra/tasks/fsl/utils/tests/test_spec_extractroi.py index 785a9e0..6457929 100644 --- a/pydra/tasks/fsl/utils/tests/test_spec_extractroi.py +++ b/pydra/tasks/fsl/utils/tests/test_spec_extractroi.py @@ -47,6 +47,4 @@ def test_ExtractROI(test_data, inputs, outputs): except: pass task = ExtractROI(**inputs) - assert set(task.generated_output_names) == set( - ["return_code", "stdout", "stderr"] + outputs - ) + assert set(task.generated_output_names) == set(["return_code", "stdout", "stderr"] + outputs)