From 9485e2fb5f99749d868ee99a048db2c72e896f40 Mon Sep 17 00:00:00 2001 From: Dorota Jarecka Date: Tue, 24 Oct 2017 17:49:31 -0400 Subject: [PATCH 01/16] changing str(tmpdir) to tmpdir.strpath in tests --- nipype/algorithms/tests/test_compcor.py | 2 +- nipype/algorithms/tests/test_confounds.py | 4 ++-- nipype/algorithms/tests/test_errormap.py | 2 +- nipype/algorithms/tests/test_mesh_ops.py | 8 +++---- nipype/algorithms/tests/test_modelgen.py | 6 ++--- .../algorithms/tests/test_normalize_tpms.py | 2 +- nipype/algorithms/tests/test_overlap.py | 2 +- nipype/algorithms/tests/test_splitmerge.py | 4 ++-- nipype/algorithms/tests/test_tsnr.py | 2 +- nipype/caching/tests/test_memory.py | 2 +- nipype/interfaces/cmtk/tests/test_nbs.py | 2 +- .../interfaces/freesurfer/tests/test_model.py | 2 +- nipype/interfaces/fsl/tests/test_model.py | 2 +- .../interfaces/fsl/tests/test_preprocess.py | 6 ++--- nipype/interfaces/tests/test_base.py | 4 ++-- nipype/interfaces/tests/test_io.py | 14 +++++------ nipype/interfaces/utility/tests/test_base.py | 10 ++++---- nipype/interfaces/utility/tests/test_csv.py | 2 +- .../interfaces/utility/tests/test_wrappers.py | 8 +++---- nipype/pipeline/engine/tests/test_engine.py | 2 +- nipype/pipeline/engine/tests/test_join.py | 24 +++++++++---------- nipype/pipeline/engine/tests/test_utils.py | 18 +++++++------- .../pipeline/plugins/tests/test_callback.py | 6 ++--- nipype/pipeline/plugins/tests/test_debug.py | 2 +- nipype/pipeline/plugins/tests/test_linear.py | 2 +- .../pipeline/plugins/tests/test_somaflow.py | 2 +- nipype/testing/fixtures.py | 10 ++++---- nipype/utils/tests/test_provenance.py | 2 +- .../rsfmri/fsl/tests/test_resting.py | 2 +- 29 files changed, 77 insertions(+), 77 deletions(-) diff --git a/nipype/algorithms/tests/test_compcor.py b/nipype/algorithms/tests/test_compcor.py index a458e8a0a6..494fc43b86 100644 --- a/nipype/algorithms/tests/test_compcor.py +++ b/nipype/algorithms/tests/test_compcor.py @@ -21,7 +21,7 @@ class TestCompCor(): @pytest.fixture(autouse=True) def setup_class(self, tmpdir): # setup - self.temp_dir = str(tmpdir) + self.temp_dir = tmpdir.strpath os.chdir(self.temp_dir) noise = np.fromfunction(self.fake_noise_fun, self.fake_data.shape) self.realigned_file = utils.save_toy_nii(self.fake_data + noise, diff --git a/nipype/algorithms/tests/test_confounds.py b/nipype/algorithms/tests/test_confounds.py index 7d6eff1283..708d1f8fa6 100644 --- a/nipype/algorithms/tests/test_confounds.py +++ b/nipype/algorithms/tests/test_confounds.py @@ -20,7 +20,7 @@ def test_fd(tmpdir): - tempdir = str(tmpdir) + tempdir = tmpdir.strpath ground_truth = np.loadtxt(example_data('fsl_motion_outliers_fd.txt')) fdisplacement = FramewiseDisplacement(in_file=example_data('fsl_mcflirt_movpar.txt'), out_file=tempdir + '/fd.txt', @@ -43,7 +43,7 @@ def test_dvars(tmpdir): in_mask=example_data('ds003_sub-01_mc_brainmask.nii.gz'), save_all=True, intensity_normalization=0) - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) res = dvars.run() dv1 = np.loadtxt(res.outputs.out_all, skiprows=1) diff --git a/nipype/algorithms/tests/test_errormap.py b/nipype/algorithms/tests/test_errormap.py index a700725e41..8b4f80fd97 100644 --- a/nipype/algorithms/tests/test_errormap.py +++ b/nipype/algorithms/tests/test_errormap.py @@ -11,7 +11,7 @@ def test_errormap(tmpdir): - tempdir = str(tmpdir) + tempdir = tmpdir.strpath # Single-Spectual # Make two fake 2*2*2 voxel volumes volume1 = np.array([[[2.0, 8.0], [1.0, 2.0]], [[1.0, 9.0], [0.0, 3.0]]]) # John von Neumann's birthday diff --git a/nipype/algorithms/tests/test_mesh_ops.py b/nipype/algorithms/tests/test_mesh_ops.py index fa7ebebe54..f227003f93 100644 --- a/nipype/algorithms/tests/test_mesh_ops.py +++ b/nipype/algorithms/tests/test_mesh_ops.py @@ -15,7 +15,7 @@ @pytest.mark.skipif(VTKInfo.no_tvtk(), reason="tvtk is not installed") def test_ident_distances(tmpdir): - tempdir = str(tmpdir) + tempdir = tmpdir.strpath os.chdir(tempdir) in_surf = example_data('surf01.vtk') @@ -33,7 +33,7 @@ def test_ident_distances(tmpdir): @pytest.mark.skipif(VTKInfo.no_tvtk(), reason="tvtk is not installed") def test_trans_distances(tmpdir): - tempdir = str(tmpdir) + tempdir = tmpdir.strpath from ...interfaces.vtkbase import tvtk in_surf = example_data('surf01.vtk') @@ -63,14 +63,14 @@ def test_trans_distances(tmpdir): @pytest.mark.skipif(VTKInfo.no_tvtk(), reason="tvtk is not installed") def test_warppoints(tmpdir): - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) # TODO: include regression tests for when tvtk is installed @pytest.mark.skipif(VTKInfo.no_tvtk(), reason="tvtk is not installed") def test_meshwarpmaths(tmpdir): - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) # TODO: include regression tests for when tvtk is installed diff --git a/nipype/algorithms/tests/test_modelgen.py b/nipype/algorithms/tests/test_modelgen.py index cb10304fea..06cb770b6b 100644 --- a/nipype/algorithms/tests/test_modelgen.py +++ b/nipype/algorithms/tests/test_modelgen.py @@ -17,7 +17,7 @@ def test_modelgen1(tmpdir): - tempdir = str(tmpdir) + tempdir = tmpdir.strpath filename1 = os.path.join(tempdir, 'test1.nii') filename2 = os.path.join(tempdir, 'test2.nii') Nifti1Image(np.random.rand(10, 10, 10, 200), np.eye(4)).to_filename(filename1) @@ -56,7 +56,7 @@ def test_modelgen1(tmpdir): def test_modelgen_spm_concat(tmpdir): - tempdir = str(tmpdir) + tempdir = tmpdir.strpath filename1 = os.path.join(tempdir, 'test1.nii') filename2 = os.path.join(tempdir, 'test2.nii') Nifti1Image(np.random.rand(10, 10, 10, 30), np.eye(4)).to_filename(filename1) @@ -122,7 +122,7 @@ def test_modelgen_spm_concat(tmpdir): def test_modelgen_sparse(tmpdir): - tempdir = str(tmpdir) + tempdir = tmpdir.strpath filename1 = os.path.join(tempdir, 'test1.nii') filename2 = os.path.join(tempdir, 'test2.nii') Nifti1Image(np.random.rand(10, 10, 10, 50), np.eye(4)).to_filename(filename1) diff --git a/nipype/algorithms/tests/test_normalize_tpms.py b/nipype/algorithms/tests/test_normalize_tpms.py index 19a183bee0..b0e017ff59 100644 --- a/nipype/algorithms/tests/test_normalize_tpms.py +++ b/nipype/algorithms/tests/test_normalize_tpms.py @@ -18,7 +18,7 @@ def test_normalize_tpms(tmpdir): - tempdir = str(tmpdir) + tempdir = tmpdir.strpath in_mask = example_data('tpms_msk.nii.gz') mskdata = nb.load(in_mask, mmap=NUMPY_MMAP).get_data() diff --git a/nipype/algorithms/tests/test_overlap.py b/nipype/algorithms/tests/test_overlap.py index ab0f564b1a..a04711845c 100644 --- a/nipype/algorithms/tests/test_overlap.py +++ b/nipype/algorithms/tests/test_overlap.py @@ -20,7 +20,7 @@ def check_close(val1, val2): in1 = example_data('segmentation0.nii.gz') in2 = example_data('segmentation1.nii.gz') - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) overlap = Overlap() overlap.inputs.volume1 = in1 overlap.inputs.volume2 = in1 diff --git a/nipype/algorithms/tests/test_splitmerge.py b/nipype/algorithms/tests/test_splitmerge.py index e122fef077..799d199a53 100644 --- a/nipype/algorithms/tests/test_splitmerge.py +++ b/nipype/algorithms/tests/test_splitmerge.py @@ -14,13 +14,13 @@ def test_split_and_merge(tmpdir): from nipype.algorithms.misc import split_rois, merge_rois in_mask = example_data('tpms_msk.nii.gz') - dwfile = op.join(str(tmpdir), 'dwi.nii.gz') + dwfile = op.join(tmpdir.strpath, 'dwi.nii.gz') mskdata = nb.load(in_mask, mmap=NUMPY_MMAP).get_data() aff = nb.load(in_mask, mmap=NUMPY_MMAP).affine dwshape = (mskdata.shape[0], mskdata.shape[1], mskdata.shape[2], 6) dwdata = np.random.normal(size=dwshape) - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) nb.Nifti1Image(dwdata.astype(np.float32), aff, None).to_filename(dwfile) diff --git a/nipype/algorithms/tests/test_tsnr.py b/nipype/algorithms/tests/test_tsnr.py index e53ffd2f34..89aa31879b 100644 --- a/nipype/algorithms/tests/test_tsnr.py +++ b/nipype/algorithms/tests/test_tsnr.py @@ -30,7 +30,7 @@ class TestTSNR(): @pytest.fixture(autouse=True) def setup_class(self, tmpdir): # setup temp folder - self.temp_dir = str(tmpdir) + self.temp_dir = tmpdir.strpath os.chdir(self.temp_dir) utils.save_toy_nii(self.fake_data, self.in_filenames['in_file']) diff --git a/nipype/caching/tests/test_memory.py b/nipype/caching/tests/test_memory.py index d2968ae3f2..50f56d4700 100644 --- a/nipype/caching/tests/test_memory.py +++ b/nipype/caching/tests/test_memory.py @@ -25,7 +25,7 @@ def test_caching(tmpdir): try: # Prevent rerun to check that evaluation is computed only once config.set('execution', 'stop_on_first_rerun', 'true') - mem = Memory(str(tmpdir)) + mem = Memory(tmpdir.strpath) first_nb_run = nb_runs results = mem.cache(SideEffectInterface)(input1=2, input2=1) assert nb_runs == first_nb_run + 1 diff --git a/nipype/interfaces/cmtk/tests/test_nbs.py b/nipype/interfaces/cmtk/tests/test_nbs.py index cc4b064fc1..799441dbbf 100644 --- a/nipype/interfaces/cmtk/tests/test_nbs.py +++ b/nipype/interfaces/cmtk/tests/test_nbs.py @@ -18,7 +18,7 @@ def creating_graphs(tmpdir): for idx, name in enumerate(graphnames): graph = np.random.rand(10,10) G = nx.from_numpy_matrix(graph) - out_file = str(tmpdir) + graphnames[idx] + '.pck' + out_file = tmpdir.strpath + graphnames[idx] + '.pck' # Save as pck file nx.write_gpickle(G, out_file) graphlist.append(out_file) diff --git a/nipype/interfaces/freesurfer/tests/test_model.py b/nipype/interfaces/freesurfer/tests/test_model.py index 28e49401e0..356dcb3aef 100644 --- a/nipype/interfaces/freesurfer/tests/test_model.py +++ b/nipype/interfaces/freesurfer/tests/test_model.py @@ -15,7 +15,7 @@ @pytest.mark.skipif(no_freesurfer(), reason="freesurfer is not installed") def test_concatenate(tmpdir): - tempdir = str(tmpdir) + tempdir = tmpdir.strpath os.chdir(tempdir) in1 = os.path.join(tempdir, 'cont1.nii') in2 = os.path.join(tempdir, 'cont2.nii') diff --git a/nipype/interfaces/fsl/tests/test_model.py b/nipype/interfaces/fsl/tests/test_model.py index 667e9033c9..1ec096ff94 100644 --- a/nipype/interfaces/fsl/tests/test_model.py +++ b/nipype/interfaces/fsl/tests/test_model.py @@ -13,7 +13,7 @@ @pytest.mark.skipif(no_fsl(), reason="fsl is not installed") def test_MultipleRegressDesign(tmpdir): - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) foo = fsl.MultipleRegressDesign() foo.inputs.regressors = dict(voice_stenght=[1, 1, 1], age=[0.2, 0.4, 0.5], BMI=[1, -1, 2]) con1 = ['voice_and_age', 'T', ['age', 'voice_stenght'], [0.5, 0.5]] diff --git a/nipype/interfaces/fsl/tests/test_preprocess.py b/nipype/interfaces/fsl/tests/test_preprocess.py index 32f0266ddb..371f196325 100644 --- a/nipype/interfaces/fsl/tests/test_preprocess.py +++ b/nipype/interfaces/fsl/tests/test_preprocess.py @@ -27,7 +27,7 @@ def fsl_name(obj, fname): @pytest.fixture() def setup_infile(tmpdir): ext = Info.output_type_to_ext(Info.output_type()) - tmp_dir = str(tmpdir) + tmp_dir = tmpdir.strpath tmp_infile = os.path.join(tmp_dir, 'foo' + ext) open(tmp_infile, 'w') @@ -183,7 +183,7 @@ def _run_and_test(opts, output_base): @pytest.fixture() def setup_flirt(tmpdir): ext = Info.output_type_to_ext(Info.output_type()) - tmp_dir = str(tmpdir) + tmp_dir = tmpdir.strpath _, infile = tempfile.mkstemp(suffix=ext, dir=tmp_dir) _, reffile = tempfile.mkstemp(suffix=ext, dir=tmp_dir) @@ -549,7 +549,7 @@ def setup_fugue(tmpdir): import os.path as op d = np.ones((80, 80, 80)) - tmp_dir = str(tmpdir) + tmp_dir = tmpdir.strpath infile = op.join(tmp_dir, 'dumbfile.nii.gz') nb.Nifti1Image(d, None, None).to_filename(infile) diff --git a/nipype/interfaces/tests/test_base.py b/nipype/interfaces/tests/test_base.py index 995ee2e45b..f8610cec97 100644 --- a/nipype/interfaces/tests/test_base.py +++ b/nipype/interfaces/tests/test_base.py @@ -70,7 +70,7 @@ def test_bunch_hash(): @pytest.fixture(scope="module") def setup_file(request, tmpdir_factory): - tmp_dir = str(tmpdir_factory.mktemp('files')) + tmp_dir = tmpdir_factory.mktemp('files').strpath tmp_infile = os.path.join(tmp_dir, 'foo.txt') with open(tmp_infile, 'w') as fp: fp.writelines([u'123456789']) @@ -412,7 +412,7 @@ def _run_interface(self, runtime): def test_BaseInterface_load_save_inputs(tmpdir): - tmp_json = os.path.join(str(tmpdir), 'settings.json') + tmp_json = os.path.join(tmpdir.strpath, 'settings.json') class InputSpec(nib.TraitedSpec): input1 = nib.traits.Int() diff --git a/nipype/interfaces/tests/test_io.py b/nipype/interfaces/tests/test_io.py index 4fade26800..0fc022cab3 100644 --- a/nipype/interfaces/tests/test_io.py +++ b/nipype/interfaces/tests/test_io.py @@ -117,7 +117,7 @@ def test_s3datagrabber_communication(tmpdir): dg.inputs.anon = True dg.inputs.bucket = 'openfmri' dg.inputs.bucket_path = 'ds001/' - dg.inputs.local_directory = str(tmpdir) + dg.inputs.local_directory = tmpdir.strpath dg.inputs.sort_filelist = True dg.inputs.template = '*' dg.inputs.field_template = dict(func='%s/BOLD/task001_%s/bold.nii.gz', @@ -147,7 +147,7 @@ def test_datagrabber_order(tmpdir): tmpdir.join(file_name).open('a').close() dg = nio.DataGrabber(infields=['sid']) - dg.inputs.base_directory = str(tmpdir) + dg.inputs.base_directory = tmpdir.strpath dg.inputs.template = '%s_L%d_R*.q*' dg.inputs.template_args = {'outfiles': [['sid', 1], ['sid', 2], ['sid', 3]]} @@ -208,7 +208,7 @@ def test_datasink_to_s3(dummy_input, tmpdir): attr_folder = 'text_file' output_dir = 's3://' + bucket_name # Local temporary filepaths for testing - fakes3_dir = str(tmpdir) + fakes3_dir = tmpdir.strpath input_path = dummy_input # Start up fake-S3 server @@ -280,7 +280,7 @@ def test_datasink_localcopy(dummy_input, tmpdir): ''' # Init variables - local_dir = str(tmpdir) + local_dir = tmpdir.strpath container = 'outputs' attr_folder = 'text_file' @@ -370,7 +370,7 @@ def test_datasink_copydir(): def test_datafinder_depth(tmpdir): - outdir = str(tmpdir) + outdir = tmpdir.strpath os.makedirs(os.path.join(outdir, '0', '1', '2', '3')) df = nio.DataFinder() @@ -387,7 +387,7 @@ def test_datafinder_depth(tmpdir): def test_datafinder_unpack(tmpdir): - outdir = str(tmpdir) + outdir = tmpdir.strpath single_res = os.path.join(outdir, "findme.txt") open(single_res, 'a').close() open(os.path.join(outdir, "dontfindme"), 'a').close() @@ -425,7 +425,7 @@ def test_jsonsink_input(tmpdir): {'new_entry' : 'someValue', 'test' : 'testInfields'} ]) def test_jsonsink(tmpdir, inputs_attributes): - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) js = nio.JSONFileSink(infields=['test'], in_dict={'foo': 'var'}) setattr(js.inputs, 'contrasts.alt', 'someNestedValue') expected_data = {"contrasts": {"alt": "someNestedValue"}, "foo": "var"} diff --git a/nipype/interfaces/utility/tests/test_base.py b/nipype/interfaces/utility/tests/test_base.py index 3d2fbd2b5f..6f17f4c907 100644 --- a/nipype/interfaces/utility/tests/test_base.py +++ b/nipype/interfaces/utility/tests/test_base.py @@ -11,13 +11,13 @@ def test_rename(tmpdir): - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) # Test very simple rename _ = open("file.txt", "w").close() rn = utility.Rename(in_file="file.txt", format_string="test_file1.txt") res = rn.run() - outfile = str(tmpdir.join("test_file1.txt")) + outfile = tmpdir.join("test_file1.txt").strpath assert res.outputs.out_file == outfile assert os.path.exists(outfile) @@ -31,7 +31,7 @@ def test_rename(tmpdir): rn.inputs.field1 = "test" rn.inputs.field2 = 2 res = rn.run() - outfile = str(tmpdir.join("test_file2.txt")) + outfile = tmpdir.join("test_file2.txt").strpath assert res.outputs.out_file == outfile assert os.path.exists(outfile) @@ -41,7 +41,7 @@ def test_rename(tmpdir): ({"squeeze" : True}, (0 , [1,2,3])) ]) def test_split(tmpdir, args, expected): - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) node = pe.Node(utility.Split(inlist=list(range(4)), splits=[1, 3], @@ -64,7 +64,7 @@ def test_split(tmpdir, args, expected): [[0, 2, 4], [1, 3, 5]]), ]) def test_merge(tmpdir, args, kwargs, in_lists, expected): - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) node = pe.Node(utility.Merge(*args, **kwargs), name='merge') diff --git a/nipype/interfaces/utility/tests/test_csv.py b/nipype/interfaces/utility/tests/test_csv.py index 86ac95a371..f0101b4da7 100644 --- a/nipype/interfaces/utility/tests/test_csv.py +++ b/nipype/interfaces/utility/tests/test_csv.py @@ -12,7 +12,7 @@ def test_csvReader(tmpdir): "bar,world,5\n", "baz,goodbye,0.3\n"] for x in range(2): - name = str(tmpdir.join("testfile.csv")) + name = tmpdir.join("testfile.csv").strpath with open(name, 'w') as fid: reader = utility.CSVReader() if x % 2 == 0: diff --git a/nipype/interfaces/utility/tests/test_wrappers.py b/nipype/interfaces/utility/tests/test_wrappers.py index 3384a5865c..8c05dc8609 100644 --- a/nipype/interfaces/utility/tests/test_wrappers.py +++ b/nipype/interfaces/utility/tests/test_wrappers.py @@ -16,7 +16,7 @@ def concat_sort(in_arrays): """ def test_function(tmpdir): - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) def gen_random_array(size): import numpy as np @@ -59,11 +59,11 @@ def should_fail(tmpdir): def test_should_fail(tmpdir): with pytest.raises(NameError): - should_fail(str(tmpdir)) + should_fail(tmpdir.strpath) def test_function_with_imports(tmpdir): - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) node = pe.Node(utility.Function(input_names=["size"], output_names=["random_array"], @@ -79,7 +79,7 @@ def test_aux_connect_function(tmpdir): """ This tests excution nodes with multiple inputs and auxiliary function inside the Workflow connect function. """ - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) wf = pe.Workflow(name="test_workflow") diff --git a/nipype/pipeline/engine/tests/test_engine.py b/nipype/pipeline/engine/tests/test_engine.py index 6bfffdfbeb..8b4d559ec0 100644 --- a/nipype/pipeline/engine/tests/test_engine.py +++ b/nipype/pipeline/engine/tests/test_engine.py @@ -661,7 +661,7 @@ def test_parameterize_dirs_false(tmpdir): n2 = pe.Node(IdentityInterface(fields='in1'), name='Node2') wf = pe.Workflow(name='Test') - wf.base_dir = str(tmpdir) + wf.base_dir = tmpdir.strpath wf.config['execution']['parameterize_dirs'] = False wf.connect([(n1, n2, [('output1', 'in1')])]) diff --git a/nipype/pipeline/engine/tests/test_join.py b/nipype/pipeline/engine/tests/test_join.py index 87dafeee0f..096d9a9d56 100644 --- a/nipype/pipeline/engine/tests/test_join.py +++ b/nipype/pipeline/engine/tests/test_join.py @@ -149,7 +149,7 @@ def _list_outputs(self): def test_join_expansion(tmpdir): - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) # Make the workflow. wf = pe.Workflow(name='test') @@ -196,7 +196,7 @@ def test_join_expansion(tmpdir): def test_node_joinsource(tmpdir): """Test setting the joinsource to a Node.""" - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) # Make the workflow. wf = pe.Workflow(name='test') @@ -214,7 +214,7 @@ def test_node_joinsource(tmpdir): def test_set_join_node(tmpdir): """Test collecting join inputs to a set.""" - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) # Make the workflow. wf = pe.Workflow(name='test') @@ -240,7 +240,7 @@ def test_unique_join_node(tmpdir): """Test join with the ``unique`` flag set to True.""" global _sum_operands _sum_operands = [] - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) # Make the workflow. wf = pe.Workflow(name='test') @@ -265,7 +265,7 @@ def test_multiple_join_nodes(tmpdir): """Test two join nodes, one downstream of the other.""" global _products _products = [] - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) # Make the workflow. wf = pe.Workflow(name='test') @@ -318,7 +318,7 @@ def test_identity_join_node(tmpdir): """Test an IdentityInterface join.""" global _sum_operands _sum_operands = [] - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) # Make the workflow. wf = pe.Workflow(name='test') @@ -353,7 +353,7 @@ def test_multifield_join_node(tmpdir): """Test join on several fields.""" global _products _products = [] - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) # Make the workflow. wf = pe.Workflow(name='test') @@ -393,7 +393,7 @@ def test_synchronize_join_node(tmpdir): """Test join on an input node which has the ``synchronize`` flag set to True.""" global _products _products = [] - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) # Make the workflow. wf = pe.Workflow(name='test') @@ -430,7 +430,7 @@ def test_synchronize_join_node(tmpdir): def test_itersource_join_source_node(tmpdir): """Test join on an input node which has an ``itersource``.""" - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) # Make the workflow. wf = pe.Workflow(name='test') @@ -484,7 +484,7 @@ def test_itersource_join_source_node(tmpdir): def test_itersource_two_join_nodes(tmpdir): """Test join with a midstream ``itersource`` and an upstream iterable.""" - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) # Make the workflow. wf = pe.Workflow(name='test') @@ -524,7 +524,7 @@ def test_itersource_two_join_nodes(tmpdir): def test_set_join_node_file_input(tmpdir): """Test collecting join inputs to a set.""" - wd = str(tmpdir) + wd = tmpdir.strpath os.chdir(wd) open('test.nii', 'w+').close() open('test2.nii', 'w+').close() @@ -547,7 +547,7 @@ def test_set_join_node_file_input(tmpdir): def test_nested_workflow_join(tmpdir): """Test collecting join inputs within a nested workflow""" - wd = str(tmpdir) + wd = tmpdir.strpath os.chdir(wd) # Make the nested workflow diff --git a/nipype/pipeline/engine/tests/test_utils.py b/nipype/pipeline/engine/tests/test_utils.py index 7aa20b9302..10bf5a7157 100644 --- a/nipype/pipeline/engine/tests/test_utils.py +++ b/nipype/pipeline/engine/tests/test_utils.py @@ -58,7 +58,7 @@ class InputSpec(nib.TraitedSpec): outputs = OutputSpec() inputs = InputSpec() - wd = str(tmpdir) + wd = tmpdir.strpath filenames = ['file.hdr', 'file.img', 'file.BRIK', 'file.HEAD', '_0x1234.json', 'foo.txt'] outfiles = [] @@ -105,7 +105,7 @@ def test_function(arg1): fp.close() return file1, file2 - out_dir = str(tmpdir) + out_dir = tmpdir.strpath n1 = pe.Node(niu.Function(input_names=['arg1'], output_names=['file1', 'file2'], function=test_function), @@ -154,7 +154,7 @@ def _list_outputs(self): def test_inputs_removal(tmpdir): - out_dir = str(tmpdir) + out_dir = tmpdir.strpath file1 = os.path.join(out_dir, 'file1.txt') fp = open(file1, 'wt') fp.write('dummy_file') @@ -210,7 +210,7 @@ def test_function3(arg): import os return arg - out_dir = str(tmpdir) + out_dir = tmpdir.strpath for plugin in ('Linear',): # , 'MultiProc'): n1 = pe.Node(niu.Function(input_names=['arg1'], @@ -320,14 +320,14 @@ def create_wf(name): def test_multi_disconnected_iterable(tmpdir): metawf = pe.Workflow(name='meta') - metawf.base_dir = str(tmpdir) + metawf.base_dir = tmpdir.strpath metawf.add_nodes([create_wf('wf%d' % i) for i in range(30)]) eg = metawf.run(plugin='Linear') assert len(eg.nodes()) == 60 def test_provenance(tmpdir): - out_dir = str(tmpdir) + out_dir = tmpdir.strpath metawf = pe.Workflow(name='meta') metawf.base_dir = out_dir metawf.add_nodes([create_wf('wf%d' % i) for i in range(1)]) @@ -356,7 +356,7 @@ def test_mapnode_crash(tmpdir): node.inputs.WRONG = ['string{}'.format(i) for i in range(3)] node.config = deepcopy(config._sections) node.config['execution']['stop_on_first_crash'] = True - node.base_dir = str(tmpdir) + node.base_dir = tmpdir.strpath with pytest.raises(TypeError): node.run() os.chdir(cwd) @@ -373,7 +373,7 @@ def test_mapnode_crash2(tmpdir): iterfield=['WRONG'], name='myfunc') node.inputs.WRONG = ['string{}'.format(i) for i in range(3)] - node.base_dir = str(tmpdir) + node.base_dir = tmpdir.strpath with pytest.raises(Exception): node.run() @@ -392,6 +392,6 @@ def test_mapnode_crash3(tmpdir): node.inputs.WRONG = ['string{}'.format(i) for i in range(3)] wf = pe.Workflow('testmapnodecrash') wf.add_nodes([node]) - wf.base_dir = str(tmpdir) + wf.base_dir = tmpdir.strpath with pytest.raises(RuntimeError): wf.run(plugin='Linear') diff --git a/nipype/pipeline/plugins/tests/test_callback.py b/nipype/pipeline/plugins/tests/test_callback.py index bfe03463d1..46f3608746 100644 --- a/nipype/pipeline/plugins/tests/test_callback.py +++ b/nipype/pipeline/plugins/tests/test_callback.py @@ -32,7 +32,7 @@ def callback(self, node, status, result=None): def test_callback_normal(tmpdir): so = Status() - wf = pe.Workflow(name='test', base_dir=str(tmpdir)) + wf = pe.Workflow(name='test', base_dir=tmpdir.strpath) f_node = pe.Node(niu.Function(function=func, input_names=[], output_names=[]), name='f_node') @@ -48,7 +48,7 @@ def test_callback_normal(tmpdir): def test_callback_exception(tmpdir): so = Status() - wf = pe.Workflow(name='test', base_dir=str(tmpdir)) + wf = pe.Workflow(name='test', base_dir=tmpdir.strpath) f_node = pe.Node(niu.Function(function=bad_func, input_names=[], output_names=[]), name='f_node') @@ -66,7 +66,7 @@ def test_callback_exception(tmpdir): def test_callback_multiproc_normal(tmpdir): so = Status() - wf = pe.Workflow(name='test', base_dir=str(tmpdir)) + wf = pe.Workflow(name='test', base_dir=tmpdir.strpath) f_node = pe.Node(niu.Function(function=func, input_names=[], output_names=[]), name='f_node') diff --git a/nipype/pipeline/plugins/tests/test_debug.py b/nipype/pipeline/plugins/tests/test_debug.py index 3e03abcf90..273995724c 100644 --- a/nipype/pipeline/plugins/tests/test_debug.py +++ b/nipype/pipeline/plugins/tests/test_debug.py @@ -34,7 +34,7 @@ def callme(node, graph): def test_debug(tmpdir): - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) pipe = pe.Workflow(name='pipe') mod1 = pe.Node(DebugTestInterface(), name='mod1') diff --git a/nipype/pipeline/plugins/tests/test_linear.py b/nipype/pipeline/plugins/tests/test_linear.py index 2e2fead4eb..f021821912 100644 --- a/nipype/pipeline/plugins/tests/test_linear.py +++ b/nipype/pipeline/plugins/tests/test_linear.py @@ -29,7 +29,7 @@ def _list_outputs(self): def test_run_in_series(tmpdir): - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) pipe = pe.Workflow(name='pipe') mod1 = pe.Node(interface=LinearTestInterface(), name='mod1') diff --git a/nipype/pipeline/plugins/tests/test_somaflow.py b/nipype/pipeline/plugins/tests/test_somaflow.py index f2d5c945fb..feedd4ed18 100644 --- a/nipype/pipeline/plugins/tests/test_somaflow.py +++ b/nipype/pipeline/plugins/tests/test_somaflow.py @@ -34,7 +34,7 @@ def _list_outputs(self): @pytest.mark.skipif(soma_not_loaded, reason="soma not loaded") def test_run_somaflow(tmpdir): - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) pipe = pe.Workflow(name='pipe') mod1 = pe.Node(interface=SomaTestInterface(), name='mod1') diff --git a/nipype/testing/fixtures.py b/nipype/testing/fixtures.py index 2a405742f7..12677540d1 100644 --- a/nipype/testing/fixtures.py +++ b/nipype/testing/fixtures.py @@ -39,7 +39,7 @@ def nifti_image_files(outdir, filelist, shape): @pytest.fixture() def create_files_in_directory(request, tmpdir): - outdir = str(tmpdir) + outdir = tmpdir.strpath cwd = os.getcwd() os.chdir(outdir) filelist = ['a.nii', 'b.nii'] @@ -54,7 +54,7 @@ def change_directory(): @pytest.fixture() def create_analyze_pair_file_in_directory(request, tmpdir): - outdir = str(tmpdir) + outdir = tmpdir.strpath cwd = os.getcwd() os.chdir(outdir) filelist = ['a.hdr'] @@ -69,7 +69,7 @@ def change_directory(): @pytest.fixture() def create_files_in_directory_plus_dummy_file(request, tmpdir): - outdir = str(tmpdir) + outdir = tmpdir.strpath cwd = os.getcwd() os.chdir(outdir) filelist = ['a.nii', 'b.nii'] @@ -88,7 +88,7 @@ def change_directory(): @pytest.fixture() def create_surf_file_in_directory(request, tmpdir): - outdir = str(tmpdir) + outdir = tmpdir.strpath cwd = os.getcwd() os.chdir(outdir) surf = 'lh.a.nii' @@ -116,7 +116,7 @@ def set_output_type(fsl_output_type): def create_files_in_directory_plus_output_type(request, tmpdir): func_prev_type = set_output_type(request.param) - testdir = str(tmpdir) + testdir = tmpdir.strpath origdir = os.getcwd() os.chdir(testdir) filelist = ['a.nii', 'b.nii'] diff --git a/nipype/utils/tests/test_provenance.py b/nipype/utils/tests/test_provenance.py index 270774dcf5..82cc982f8f 100644 --- a/nipype/utils/tests/test_provenance.py +++ b/nipype/utils/tests/test_provenance.py @@ -21,7 +21,7 @@ def test_provenance(): assert 'echo hello' in provn def test_provenance_exists(tmpdir): - tempdir = str(tmpdir) + tempdir = tmpdir.strpath os.chdir(tempdir) from nipype import config from nipype.interfaces.base import CommandLine diff --git a/nipype/workflows/rsfmri/fsl/tests/test_resting.py b/nipype/workflows/rsfmri/fsl/tests/test_resting.py index 7ae4483b55..af90c002b2 100644 --- a/nipype/workflows/rsfmri/fsl/tests/test_resting.py +++ b/nipype/workflows/rsfmri/fsl/tests/test_resting.py @@ -51,7 +51,7 @@ class TestResting(): @pytest.fixture(autouse=True) def setup_class(self, tmpdir): # setup temp folder - os.chdir(str(tmpdir)) + os.chdir(tmpdir.strpath) self.in_filenames = {key: os.path.abspath(value) for key, value in self.in_filenames.items()} From b20470d094eb000f7436713f283a9f8c2fdabae0 Mon Sep 17 00:00:00 2001 From: Dorota Jarecka Date: Thu, 26 Oct 2017 11:17:45 -0400 Subject: [PATCH 02/16] using tmpdir.join where its possible (nibabel doesnt like py.path.local) --- nipype/algorithms/tests/test_mesh_ops.py | 9 ++++----- nipype/interfaces/freesurfer/tests/test_model.py | 3 ++- nipype/utils/tests/test_provenance.py | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/nipype/algorithms/tests/test_mesh_ops.py b/nipype/algorithms/tests/test_mesh_ops.py index f227003f93..5e792585b8 100644 --- a/nipype/algorithms/tests/test_mesh_ops.py +++ b/nipype/algorithms/tests/test_mesh_ops.py @@ -15,14 +15,13 @@ @pytest.mark.skipif(VTKInfo.no_tvtk(), reason="tvtk is not installed") def test_ident_distances(tmpdir): - tempdir = tmpdir.strpath - os.chdir(tempdir) + tmpdir.chdir() in_surf = example_data('surf01.vtk') dist_ident = m.ComputeMeshWarp() dist_ident.inputs.surface1 = in_surf dist_ident.inputs.surface2 = in_surf - dist_ident.inputs.out_file = os.path.join(tempdir, 'distance.npy') + dist_ident.inputs.out_file = tmpdir.join('distance.npy') res = dist_ident.run() assert res.outputs.distance == 0.0 @@ -37,7 +36,7 @@ def test_trans_distances(tmpdir): from ...interfaces.vtkbase import tvtk in_surf = example_data('surf01.vtk') - warped_surf = os.path.join(tempdir, 'warped.vtk') + warped_surf = tmpdir.join('warped.vtk') inc = np.array([0.7, 0.3, -0.2]) @@ -53,7 +52,7 @@ def test_trans_distances(tmpdir): dist = m.ComputeMeshWarp() dist.inputs.surface1 = in_surf dist.inputs.surface2 = warped_surf - dist.inputs.out_file = os.path.join(tempdir, 'distance.npy') + dist.inputs.out_file = tmpdir.join('distance.npy') res = dist.run() assert np.allclose(res.outputs.distance, np.linalg.norm(inc), 4) dist.inputs.weighting = 'area' diff --git a/nipype/interfaces/freesurfer/tests/test_model.py b/nipype/interfaces/freesurfer/tests/test_model.py index 356dcb3aef..4773f92f2e 100644 --- a/nipype/interfaces/freesurfer/tests/test_model.py +++ b/nipype/interfaces/freesurfer/tests/test_model.py @@ -15,8 +15,9 @@ @pytest.mark.skipif(no_freesurfer(), reason="freesurfer is not installed") def test_concatenate(tmpdir): + tmpdir.chdir() + tempdir = tmpdir.strpath - os.chdir(tempdir) in1 = os.path.join(tempdir, 'cont1.nii') in2 = os.path.join(tempdir, 'cont2.nii') out = 'bar.nii' diff --git a/nipype/utils/tests/test_provenance.py b/nipype/utils/tests/test_provenance.py index 82cc982f8f..e8b0a7c230 100644 --- a/nipype/utils/tests/test_provenance.py +++ b/nipype/utils/tests/test_provenance.py @@ -22,7 +22,7 @@ def test_provenance(): def test_provenance_exists(tmpdir): tempdir = tmpdir.strpath - os.chdir(tempdir) + tmpdir.chdir() from nipype import config from nipype.interfaces.base import CommandLine provenance_state = config.get('execution', 'write_provenance') From adbd2c5b6c576a8d0c0732d45a6b9aad1af40b46 Mon Sep 17 00:00:00 2001 From: Dorota Jarecka Date: Thu, 26 Oct 2017 12:39:26 -0400 Subject: [PATCH 03/16] using tmpdir.join().strpath in tests with nibabel or other funcions that dont take path.local --- nipype/algorithms/tests/test_errormap.py | 23 +++++++++---------- nipype/algorithms/tests/test_modelgen.py | 17 ++++++-------- .../algorithms/tests/test_normalize_tpms.py | 5 ++-- .../interfaces/freesurfer/tests/test_model.py | 15 ++++++------ nipype/utils/tests/test_provenance.py | 3 +-- 5 files changed, 28 insertions(+), 35 deletions(-) diff --git a/nipype/algorithms/tests/test_errormap.py b/nipype/algorithms/tests/test_errormap.py index 8b4f80fd97..4b40d14907 100644 --- a/nipype/algorithms/tests/test_errormap.py +++ b/nipype/algorithms/tests/test_errormap.py @@ -11,7 +11,6 @@ def test_errormap(tmpdir): - tempdir = tmpdir.strpath # Single-Spectual # Make two fake 2*2*2 voxel volumes volume1 = np.array([[[2.0, 8.0], [1.0, 2.0]], [[1.0, 9.0], [0.0, 3.0]]]) # John von Neumann's birthday @@ -22,15 +21,15 @@ def test_errormap(tmpdir): img2 = nb.Nifti1Image(volume2, np.eye(4)) maskimg = nb.Nifti1Image(mask, np.eye(4)) - nb.save(img1, os.path.join(tempdir, 'von.nii.gz')) - nb.save(img2, os.path.join(tempdir, 'alan.nii.gz')) - nb.save(maskimg, os.path.join(tempdir, 'mask.nii.gz')) + nb.save(img1, tmpdir.join('von.nii.gz').strpath) + nb.save(img2, tmpdir.join('alan.nii.gz').strpath) + nb.save(maskimg, tmpdir.join('mask.nii.gz').strpath) # Default metric errmap = ErrorMap() - errmap.inputs.in_tst = os.path.join(tempdir, 'von.nii.gz') - errmap.inputs.in_ref = os.path.join(tempdir, 'alan.nii.gz') - errmap.out_map = os.path.join(tempdir, 'out_map.nii.gz') + errmap.inputs.in_tst = tmpdir.join('von.nii.gz').strpath + errmap.inputs.in_ref = tmpdir.join('alan.nii.gz').strpath + errmap.out_map = tmpdir.join('out_map.nii.gz').strpath result = errmap.run() assert result.outputs.distance == 1.125 @@ -45,7 +44,7 @@ def test_errormap(tmpdir): assert result.outputs.distance == 0.875 # Masked - errmap.inputs.mask = os.path.join(tempdir, 'mask.nii.gz') + errmap.inputs.mask = tmpdir.join('mask.nii.gz').strpath result = errmap.run() assert result.outputs.distance == 1.0 @@ -62,11 +61,11 @@ def test_errormap(tmpdir): msvolume2[:, :, :, 1] = volume1 msimg2 = nb.Nifti1Image(msvolume2, np.eye(4)) - nb.save(msimg1, os.path.join(tempdir, 'von-ray.nii.gz')) - nb.save(msimg2, os.path.join(tempdir, 'alan-ray.nii.gz')) + nb.save(msimg1, tmpdir.join('von-ray.nii.gz').strpath) + nb.save(msimg2, tmpdir.join('alan-ray.nii.gz').strpath) - errmap.inputs.in_tst = os.path.join(tempdir, 'von-ray.nii.gz') - errmap.inputs.in_ref = os.path.join(tempdir, 'alan-ray.nii.gz') + errmap.inputs.in_tst = tmpdir.join('von-ray.nii.gz').strpath + errmap.inputs.in_ref = tmpdir.join('alan-ray.nii.gz').strpath errmap.inputs.metric = 'sqeuclidean' result = errmap.run() assert result.outputs.distance == 5.5 diff --git a/nipype/algorithms/tests/test_modelgen.py b/nipype/algorithms/tests/test_modelgen.py index 06cb770b6b..3c9ec4096b 100644 --- a/nipype/algorithms/tests/test_modelgen.py +++ b/nipype/algorithms/tests/test_modelgen.py @@ -17,9 +17,8 @@ def test_modelgen1(tmpdir): - tempdir = tmpdir.strpath - filename1 = os.path.join(tempdir, 'test1.nii') - filename2 = os.path.join(tempdir, 'test2.nii') + filename1 = tmpdir.join('test1.nii').strpath + filename2 = tmpdir.join('test2.nii').strpath Nifti1Image(np.random.rand(10, 10, 10, 200), np.eye(4)).to_filename(filename1) Nifti1Image(np.random.rand(10, 10, 10, 200), np.eye(4)).to_filename(filename2) s = SpecifyModel() @@ -56,9 +55,8 @@ def test_modelgen1(tmpdir): def test_modelgen_spm_concat(tmpdir): - tempdir = tmpdir.strpath - filename1 = os.path.join(tempdir, 'test1.nii') - filename2 = os.path.join(tempdir, 'test2.nii') + filename1 = tmpdir.join('test1.nii').strpath + filename2 = tmpdir.join('test2.nii').strpath Nifti1Image(np.random.rand(10, 10, 10, 30), np.eye(4)).to_filename(filename1) Nifti1Image(np.random.rand(10, 10, 10, 30), np.eye(4)).to_filename(filename2) @@ -97,7 +95,7 @@ def test_modelgen_spm_concat(tmpdir): npt.assert_almost_equal(np.array(res.outputs.session_info[0]['cond'][0]['onset']), np.array([2.0, 50.0, 100.0, 170.0])) # Test case for variable number of events in separate runs, sometimes unique. - filename3 = os.path.join(tempdir, 'test3.nii') + filename3 = tmpdir.join('test3.nii').strpath Nifti1Image(np.random.rand(10, 10, 10, 30), np.eye(4)).to_filename(filename3) s.inputs.functional_runs = [filename1, filename2, filename3] info = [Bunch(conditions=['cond1', 'cond2'], onsets=[[2, 3], [2]], durations=[[1, 1], [1]]), @@ -122,9 +120,8 @@ def test_modelgen_spm_concat(tmpdir): def test_modelgen_sparse(tmpdir): - tempdir = tmpdir.strpath - filename1 = os.path.join(tempdir, 'test1.nii') - filename2 = os.path.join(tempdir, 'test2.nii') + filename1 = tmpdir.join('test1.nii').strpath + filename2 = tmpdir.join('test2.nii').strpath Nifti1Image(np.random.rand(10, 10, 10, 50), np.eye(4)).to_filename(filename1) Nifti1Image(np.random.rand(10, 10, 10, 50), np.eye(4)).to_filename(filename2) s = SpecifySparseModel() diff --git a/nipype/algorithms/tests/test_normalize_tpms.py b/nipype/algorithms/tests/test_normalize_tpms.py index b0e017ff59..5d0fc5c47b 100644 --- a/nipype/algorithms/tests/test_normalize_tpms.py +++ b/nipype/algorithms/tests/test_normalize_tpms.py @@ -18,7 +18,6 @@ def test_normalize_tpms(tmpdir): - tempdir = tmpdir.strpath in_mask = example_data('tpms_msk.nii.gz') mskdata = nb.load(in_mask, mmap=NUMPY_MMAP).get_data() @@ -30,8 +29,8 @@ def test_normalize_tpms(tmpdir): for i in range(3): mapname = example_data('tpm_%02d.nii.gz' % i) - filename = os.path.join(tempdir, 'modtpm_%02d.nii.gz' % i) - out_files.append(os.path.join(tempdir, 'normtpm_%02d.nii.gz' % i)) + filename = tmpdir.join('modtpm_%02d.nii.gz' % i).strpath + out_files.append(tmpdir.join('normtpm_%02d.nii.gz' % i).strpath) im = nb.load(mapname, mmap=NUMPY_MMAP) data = im.get_data() diff --git a/nipype/interfaces/freesurfer/tests/test_model.py b/nipype/interfaces/freesurfer/tests/test_model.py index 4773f92f2e..b5221ad4d5 100644 --- a/nipype/interfaces/freesurfer/tests/test_model.py +++ b/nipype/interfaces/freesurfer/tests/test_model.py @@ -17,9 +17,8 @@ def test_concatenate(tmpdir): tmpdir.chdir() - tempdir = tmpdir.strpath - in1 = os.path.join(tempdir, 'cont1.nii') - in2 = os.path.join(tempdir, 'cont2.nii') + in1 = tmpdir.join('cont1.nii').strpath + in2 = tmpdir.join('cont2.nii').strpath out = 'bar.nii' data1 = np.zeros((3, 3, 3, 1), dtype=np.float32) @@ -32,12 +31,12 @@ def test_concatenate(tmpdir): # Test default behavior res = model.Concatenate(in_files=[in1, in2]).run() - assert res.outputs.concatenated_file == os.path.join(tempdir, 'concat_output.nii.gz') + assert res.outputs.concatenated_file == tmpdir.join('concat_output.nii.gz').strpath assert np.allclose(nb.load('concat_output.nii.gz').get_data(), out_data) # Test specified concatenated_file res = model.Concatenate(in_files=[in1, in2], concatenated_file=out).run() - assert res.outputs.concatenated_file == os.path.join(tempdir, out) + assert res.outputs.concatenated_file == tmpdir.join(out).strpath assert np.allclose(nb.load(out, mmap=NUMPY_MMAP).get_data(), out_data) # Test in workflow @@ -47,9 +46,9 @@ def test_concatenate(tmpdir): name='concat') wf.add_nodes([concat]) wf.run() - assert np.allclose(nb.load(os.path.join(tempdir, - 'test_concatenate', - 'concat', out)).get_data(), + assert np.allclose(nb.load(tmpdir.join( + 'test_concatenate', + 'concat', out).strpath).get_data(), out_data) # Test a simple statistic diff --git a/nipype/utils/tests/test_provenance.py b/nipype/utils/tests/test_provenance.py index e8b0a7c230..1cbdaf185a 100644 --- a/nipype/utils/tests/test_provenance.py +++ b/nipype/utils/tests/test_provenance.py @@ -21,7 +21,6 @@ def test_provenance(): assert 'echo hello' in provn def test_provenance_exists(tmpdir): - tempdir = tmpdir.strpath tmpdir.chdir() from nipype import config from nipype.interfaces.base import CommandLine @@ -31,7 +30,7 @@ def test_provenance_exists(tmpdir): CommandLine('echo hello').run() config.set('execution', 'write_provenance', provenance_state) config.set('execution', 'hash_method', hash_state) - provenance_exists = os.path.exists(os.path.join(tempdir, 'provenance.provn')) + provenance_exists = os.path.exists(tmpdir.join('provenance.provn').strpath) assert provenance_exists def test_safe_encode(): From 514dee80c215b3a743d45be1b7bba82a119a3802 Mon Sep 17 00:00:00 2001 From: Dorota Jarecka Date: Thu, 26 Oct 2017 20:59:43 -0400 Subject: [PATCH 04/16] moving doctest ALLOW_UNICODE to pytest.ini, so doesnt have to be included in the docstrings --- nipype/interfaces/afni/model.py | 6 +- nipype/interfaces/afni/preprocess.py | 86 ++++++++++---------- nipype/interfaces/afni/utils.py | 74 ++++++++--------- nipype/interfaces/ants/legacy.py | 4 +- nipype/interfaces/ants/registration.py | 38 ++++----- nipype/interfaces/ants/resampling.py | 14 ++-- nipype/interfaces/ants/segmentation.py | 40 ++++----- nipype/interfaces/ants/utils.py | 12 +-- nipype/interfaces/ants/visualization.py | 4 +- nipype/interfaces/base.py | 28 +++---- nipype/interfaces/bru2nii.py | 2 +- nipype/interfaces/c3.py | 2 +- nipype/interfaces/dcm2nii.py | 4 +- nipype/interfaces/elastix/registration.py | 8 +- nipype/interfaces/freesurfer/longitudinal.py | 10 +-- nipype/interfaces/freesurfer/model.py | 22 ++--- nipype/interfaces/freesurfer/preprocess.py | 62 +++++++------- nipype/interfaces/freesurfer/registration.py | 14 ++-- nipype/interfaces/freesurfer/utils.py | 54 ++++++------ nipype/interfaces/fsl/aroma.py | 2 +- nipype/interfaces/fsl/dti.py | 14 ++-- nipype/interfaces/fsl/epi.py | 18 ++-- nipype/interfaces/fsl/maths.py | 2 +- nipype/interfaces/fsl/model.py | 14 ++-- nipype/interfaces/fsl/possum.py | 2 +- nipype/interfaces/fsl/preprocess.py | 14 ++-- nipype/interfaces/fsl/utils.py | 24 +++--- nipype/interfaces/io.py | 6 +- nipype/interfaces/meshfix.py | 2 +- nipype/interfaces/minc/base.py | 4 +- nipype/interfaces/mne/base.py | 2 +- nipype/interfaces/mrtrix/preprocess.py | 2 +- nipype/interfaces/mrtrix/tracking.py | 2 +- nipype/interfaces/mrtrix3/connectivity.py | 4 +- nipype/interfaces/mrtrix3/preprocess.py | 6 +- nipype/interfaces/mrtrix3/reconst.py | 4 +- nipype/interfaces/mrtrix3/tracking.py | 2 +- nipype/interfaces/mrtrix3/utils.py | 12 +-- nipype/interfaces/niftyfit/asl.py | 2 +- nipype/interfaces/niftyfit/dwi.py | 4 +- nipype/interfaces/niftyfit/qt1.py | 2 +- nipype/interfaces/niftyreg/reg.py | 4 +- nipype/interfaces/niftyreg/regutils.py | 12 +-- nipype/interfaces/niftyseg/em.py | 2 +- nipype/interfaces/niftyseg/label_fusion.py | 4 +- nipype/interfaces/niftyseg/lesions.py | 2 +- nipype/interfaces/niftyseg/maths.py | 32 ++++---- nipype/interfaces/niftyseg/patchmatch.py | 2 +- nipype/interfaces/niftyseg/stats.py | 12 +-- nipype/interfaces/quickshear.py | 2 +- nipype/interfaces/slicer/generate_classes.py | 4 +- nipype/interfaces/utility/base.py | 2 +- nipype/interfaces/vista/vista.py | 4 +- nipype/pipeline/engine/nodes.py | 2 +- nipype/pipeline/plugins/sge.py | 4 +- nipype/utils/filemanip.py | 10 +-- pytest.ini | 3 +- tools/apigen.py | 6 +- tools/interfacedocgen.py | 6 +- 59 files changed, 371 insertions(+), 370 deletions(-) diff --git a/nipype/interfaces/afni/model.py b/nipype/interfaces/afni/model.py index 4fdc533a1b..d5730d15f9 100644 --- a/nipype/interfaces/afni/model.py +++ b/nipype/interfaces/afni/model.py @@ -260,7 +260,7 @@ class Deconvolve(AFNICommand): >>> deconvolve.inputs.stim_label = [(1, 'Houses')] >>> deconvolve.inputs.gltsym = ['SYM: +Houses'] >>> deconvolve.inputs.glt_label = [(1, 'Houses')] - >>> deconvolve.cmdline # doctest: +ALLOW_UNICODE + >>> deconvolve.cmdline "3dDeconvolve -input functional.nii functional2.nii -bucket output.nii -x1D output.1D -num_stimts 1 -stim_times 1 timeseries.txt 'SPMG1(4)' -stim_label 1 Houses -num_glt 1 -gltsym 'SYM: +Houses' -glt_label 1 Houses" >>> res = deconvolve.run() # doctest: +SKIP """ @@ -574,7 +574,7 @@ class Remlfit(AFNICommand): >>> remlfit.inputs.out_file = 'output.nii' >>> remlfit.inputs.matrix = 'output.1D' >>> remlfit.inputs.gltsym = [('SYM: +Lab1 -Lab2', 'TestSYM'), ('timeseries.txt', 'TestFile')] - >>> remlfit.cmdline # doctest: +ALLOW_UNICODE + >>> remlfit.cmdline '3dREMLfit -gltsym "SYM: +Lab1 -Lab2" TestSYM -gltsym "timeseries.txt" TestFile -input "functional.nii functional2.nii" -matrix output.1D -Rbuck output.nii' >>> res = remlfit.run() # doctest: +SKIP """ @@ -660,7 +660,7 @@ class Synthesize(AFNICommand): >>> synthesize.inputs.cbucket = 'functional.nii' >>> synthesize.inputs.matrix = 'output.1D' >>> synthesize.inputs.select = ['baseline'] - >>> synthesize.cmdline # doctest: +ALLOW_UNICODE + >>> synthesize.cmdline '3dSynthesize -cbucket functional.nii -matrix output.1D -select baseline' >>> syn = synthesize.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/afni/preprocess.py b/nipype/interfaces/afni/preprocess.py index a769811df1..606b06f7f6 100644 --- a/nipype/interfaces/afni/preprocess.py +++ b/nipype/interfaces/afni/preprocess.py @@ -169,7 +169,7 @@ class AlignEpiAnatPy(AFNIPythonCommand): >>> al_ea.inputs.volreg = 'off' >>> al_ea.inputs.tshift = 'off' >>> al_ea.inputs.save_skullstrip = True - >>> al_ea.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS + >>> al_ea.cmdline +ELLIPSIS 'python2 ...align_epi_anat.py -anat structural.nii -epi_base 0 -epi_strip 3dAutomask -epi functional.nii -save_skullstrip -suffix _al -tshift off -volreg off' >>> res = allineate.run() # doctest: +SKIP """ @@ -462,7 +462,7 @@ class Allineate(AFNICommand): >>> allineate.inputs.in_file = 'functional.nii' >>> allineate.inputs.out_file = 'functional_allineate.nii' >>> allineate.inputs.in_matrix = 'cmatrix.mat' - >>> allineate.cmdline # doctest: +ALLOW_UNICODE + >>> allineate.cmdline '3dAllineate -source functional.nii -prefix functional_allineate.nii -1Dmatrix_apply cmatrix.mat' >>> res = allineate.run() # doctest: +SKIP @@ -471,7 +471,7 @@ class Allineate(AFNICommand): >>> allineate.inputs.in_file = 'functional.nii' >>> allineate.inputs.reference = 'structural.nii' >>> allineate.inputs.allcostx = 'out.allcostX.txt' - >>> allineate.cmdline # doctest: +ALLOW_UNICODE + >>> allineate.cmdline '3dAllineate -source functional.nii -base structural.nii -allcostx |& tee out.allcostX.txt' >>> res = allineate.run() # doctest: +SKIP """ @@ -574,7 +574,7 @@ class AutoTcorrelate(AFNICommand): >>> corr.inputs.eta2 = True >>> corr.inputs.mask = 'mask.nii' >>> corr.inputs.mask_only_targets = True - >>> corr.cmdline # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE +ALLOW_UNICODE + >>> corr.cmdline # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE '3dAutoTcorrelate -eta2 -mask mask.nii -mask_only_targets -prefix functional_similarity_matrix.1D -polort -1 functional.nii' >>> res = corr.run() # doctest: +SKIP """ @@ -643,7 +643,7 @@ class Automask(AFNICommand): >>> automask.inputs.in_file = 'functional.nii' >>> automask.inputs.dilate = 1 >>> automask.inputs.outputtype = 'NIFTI' - >>> automask.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> automask.cmdline # doctest: +ELLIPSIS '3dAutomask -apply_prefix functional_masked.nii -dilate 1 -prefix functional_mask.nii functional.nii' >>> res = automask.run() # doctest: +SKIP @@ -737,7 +737,7 @@ class AutoTLRC(AFNICommand): >>> autoTLRC.inputs.in_file = 'structural.nii' >>> autoTLRC.inputs.no_ss = True >>> autoTLRC.inputs.base = "TT_N27+tlrc" - >>> autoTLRC.cmdline # doctest: +ALLOW_UNICODE + >>> autoTLRC.cmdline '@auto_tlrc -base TT_N27+tlrc -input structural.nii -no_ss' >>> res = autoTLRC.run() # doctest: +SKIP @@ -849,7 +849,7 @@ class Bandpass(AFNICommand): >>> bandpass.inputs.in_file = 'functional.nii' >>> bandpass.inputs.highpass = 0.005 >>> bandpass.inputs.lowpass = 0.1 - >>> bandpass.cmdline # doctest: +ALLOW_UNICODE + >>> bandpass.cmdline '3dBandpass -prefix functional_bp 0.005000 0.100000 functional.nii' >>> res = bandpass.run() # doctest: +SKIP @@ -917,7 +917,7 @@ class BlurInMask(AFNICommand): >>> bim.inputs.in_file = 'functional.nii' >>> bim.inputs.mask = 'mask.nii' >>> bim.inputs.fwhm = 5.0 - >>> bim.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> bim.cmdline # doctest: +ELLIPSIS '3dBlurInMask -input functional.nii -FWHM 5.000000 -mask mask.nii -prefix functional_blur' >>> res = bim.run() # doctest: +SKIP @@ -968,7 +968,7 @@ class BlurToFWHM(AFNICommand): >>> blur = afni.preprocess.BlurToFWHM() >>> blur.inputs.in_file = 'epi.nii' >>> blur.inputs.fwhm = 2.5 - >>> blur.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> blur.cmdline # doctest: +ELLIPSIS '3dBlurToFWHM -FWHM 2.500000 -input epi.nii -prefix epi_afni' >>> res = blur.run() # doctest: +SKIP @@ -1019,7 +1019,7 @@ class ClipLevel(AFNICommandBase): >>> from nipype.interfaces.afni import preprocess >>> cliplevel = preprocess.ClipLevel() >>> cliplevel.inputs.in_file = 'anatomical.nii' - >>> cliplevel.cmdline # doctest: +ALLOW_UNICODE + >>> cliplevel.cmdline '3dClipLevel anatomical.nii' >>> res = cliplevel.run() # doctest: +SKIP @@ -1102,7 +1102,7 @@ class DegreeCentrality(AFNICommand): >>> degree.inputs.mask = 'mask.nii' >>> degree.inputs.sparsity = 1 # keep the top one percent of connections >>> degree.inputs.out_file = 'out.nii' - >>> degree.cmdline # doctest: +ALLOW_UNICODE + >>> degree.cmdline '3dDegreeCentrality -mask mask.nii -prefix out.nii -sparsity 1.000000 functional.nii' >>> res = degree.run() # doctest: +SKIP @@ -1152,7 +1152,7 @@ class Despike(AFNICommand): >>> from nipype.interfaces import afni >>> despike = afni.Despike() >>> despike.inputs.in_file = 'functional.nii' - >>> despike.cmdline # doctest: +ALLOW_UNICODE + >>> despike.cmdline '3dDespike -prefix functional_despike functional.nii' >>> res = despike.run() # doctest: +SKIP @@ -1193,7 +1193,7 @@ class Detrend(AFNICommand): >>> detrend.inputs.in_file = 'functional.nii' >>> detrend.inputs.args = '-polort 2' >>> detrend.inputs.outputtype = 'AFNI' - >>> detrend.cmdline # doctest: +ALLOW_UNICODE + >>> detrend.cmdline '3dDetrend -polort 2 -prefix functional_detrend functional.nii' >>> res = detrend.run() # doctest: +SKIP @@ -1265,7 +1265,7 @@ class ECM(AFNICommand): >>> ecm.inputs.mask = 'mask.nii' >>> ecm.inputs.sparsity = 0.1 # keep top 0.1% of connections >>> ecm.inputs.out_file = 'out.nii' - >>> ecm.cmdline # doctest: +ALLOW_UNICODE + >>> ecm.cmdline '3dECM -mask mask.nii -prefix out.nii -sparsity 0.100000 functional.nii' >>> res = ecm.run() # doctest: +SKIP @@ -1322,7 +1322,7 @@ class Fim(AFNICommand): >>> fim.inputs.out_file = 'functional_corr.nii' >>> fim.inputs.out = 'Correlation' >>> fim.inputs.fim_thr = 0.0009 - >>> fim.cmdline # doctest: +ALLOW_UNICODE + >>> fim.cmdline '3dfim+ -input functional.nii -ideal_file seed.1D -fim_thr 0.000900 -out Correlation -bucket functional_corr.nii' >>> res = fim.run() # doctest: +SKIP @@ -1376,7 +1376,7 @@ class Fourier(AFNICommand): >>> fourier.inputs.retrend = True >>> fourier.inputs.highpass = 0.005 >>> fourier.inputs.lowpass = 0.1 - >>> fourier.cmdline # doctest: +ALLOW_UNICODE + >>> fourier.cmdline '3dFourier -highpass 0.005000 -lowpass 0.100000 -prefix functional_fourier -retrend functional.nii' >>> res = fourier.run() # doctest: +SKIP @@ -1449,7 +1449,7 @@ class Hist(AFNICommandBase): >>> from nipype.interfaces import afni >>> hist = afni.Hist() >>> hist.inputs.in_file = 'functional.nii' - >>> hist.cmdline # doctest: +ALLOW_UNICODE + >>> hist.cmdline '3dHist -input functional.nii -prefix functional_hist' >>> res = hist.run() # doctest: +SKIP @@ -1513,7 +1513,7 @@ class LFCD(AFNICommand): >>> lfcd.inputs.mask = 'mask.nii' >>> lfcd.inputs.thresh = 0.8 # keep all connections with corr >= 0.8 >>> lfcd.inputs.out_file = 'out.nii' - >>> lfcd.cmdline # doctest: +ALLOW_UNICODE + >>> lfcd.cmdline '3dLFCD -mask mask.nii -prefix out.nii -thresh 0.800000 functional.nii' >>> res = lfcd.run() # doctest: +SKIP """ @@ -1564,7 +1564,7 @@ class Maskave(AFNICommand): >>> maskave.inputs.in_file = 'functional.nii' >>> maskave.inputs.mask= 'seed_mask.nii' >>> maskave.inputs.quiet= True - >>> maskave.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> maskave.cmdline # doctest: +ELLIPSIS '3dmaskave -mask seed_mask.nii -quiet functional.nii > functional_maskave.1D' >>> res = maskave.run() # doctest: +SKIP @@ -1635,7 +1635,7 @@ class Means(AFNICommand): >>> means.inputs.in_file_a = 'im1.nii' >>> means.inputs.in_file_b = 'im2.nii' >>> means.inputs.out_file = 'output.nii' - >>> means.cmdline # doctest: +ALLOW_UNICODE + >>> means.cmdline '3dMean -prefix output.nii im1.nii im2.nii' >>> res = means.run() # doctest: +SKIP @@ -1644,7 +1644,7 @@ class Means(AFNICommand): >>> means.inputs.in_file_a = 'im1.nii' >>> means.inputs.out_file = 'output.nii' >>> means.inputs.datum = 'short' - >>> means.cmdline # doctest: +ALLOW_UNICODE + >>> means.cmdline '3dMean -datum short -prefix output.nii im1.nii' >>> res = means.run() # doctest: +SKIP @@ -1742,7 +1742,7 @@ class OutlierCount(CommandLine): >>> from nipype.interfaces import afni >>> toutcount = afni.OutlierCount() >>> toutcount.inputs.in_file = 'functional.nii' - >>> toutcount.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> toutcount.cmdline # doctest: +ELLIPSIS '3dToutcount functional.nii' >>> res = toutcount.run() # doctest: +SKIP @@ -1855,7 +1855,7 @@ class QualityIndex(CommandLine): >>> from nipype.interfaces import afni >>> tqual = afni.QualityIndex() >>> tqual.inputs.in_file = 'functional.nii' - >>> tqual.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> tqual.cmdline # doctest: +ELLIPSIS '3dTqual functional.nii > functional_tqual' >>> res = tqual.run() # doctest: +SKIP @@ -1912,7 +1912,7 @@ class ROIStats(AFNICommandBase): >>> roistats.inputs.in_file = 'functional.nii' >>> roistats.inputs.mask = 'skeleton_mask.nii.gz' >>> roistats.inputs.quiet = True - >>> roistats.cmdline # doctest: +ALLOW_UNICODE + >>> roistats.cmdline '3dROIstats -quiet -mask skeleton_mask.nii.gz functional.nii' >>> res = roistats.run() # doctest: +SKIP @@ -2007,7 +2007,7 @@ class Retroicor(AFNICommand): >>> ret.inputs.card = 'mask.1D' >>> ret.inputs.resp = 'resp.1D' >>> ret.inputs.outputtype = 'NIFTI' - >>> ret.cmdline # doctest: +ALLOW_UNICODE + >>> ret.cmdline '3dretroicor -prefix functional_retroicor.nii -resp resp.1D -card mask.1D functional.nii' >>> res = ret.run() # doctest: +SKIP @@ -2090,7 +2090,7 @@ class Seg(AFNICommandBase): >>> seg = preprocess.Seg() >>> seg.inputs.in_file = 'structural.nii' >>> seg.inputs.mask = 'AUTO' - >>> seg.cmdline # doctest: +ALLOW_UNICODE + >>> seg.cmdline '3dSeg -mask AUTO -anat structural.nii' >>> res = seg.run() # doctest: +SKIP @@ -2146,7 +2146,7 @@ class SkullStrip(AFNICommand): >>> skullstrip = afni.SkullStrip() >>> skullstrip.inputs.in_file = 'functional.nii' >>> skullstrip.inputs.args = '-o_ply' - >>> skullstrip.cmdline # doctest: +ALLOW_UNICODE + >>> skullstrip.cmdline '3dSkullStrip -input functional.nii -o_ply -prefix functional_skullstrip' >>> res = skullstrip.run() # doctest: +SKIP @@ -2225,7 +2225,7 @@ class TCorr1D(AFNICommand): >>> tcorr1D = afni.TCorr1D() >>> tcorr1D.inputs.xset= 'u_rc1s1_Template.nii' >>> tcorr1D.inputs.y_1d = 'seed.1D' - >>> tcorr1D.cmdline # doctest: +ALLOW_UNICODE + >>> tcorr1D.cmdline '3dTcorr1D -prefix u_rc1s1_Template_correlation.nii.gz u_rc1s1_Template.nii seed.1D' >>> res = tcorr1D.run() # doctest: +SKIP @@ -2367,7 +2367,7 @@ class TCorrMap(AFNICommand): >>> tcm.inputs.in_file = 'functional.nii' >>> tcm.inputs.mask = 'mask.nii' >>> tcm.mean_file = 'functional_meancorr.nii' - >>> tcm.cmdline # doctest: +ALLOW_UNICODE +SKIP + >>> tcm.cmdline +SKIP '3dTcorrMap -input functional.nii -mask mask.nii -Mean functional_meancorr.nii' >>> res = tcm.run() # doctest: +SKIP @@ -2435,7 +2435,7 @@ class TCorrelate(AFNICommand): >>> tcorrelate.inputs.out_file = 'functional_tcorrelate.nii.gz' >>> tcorrelate.inputs.polort = -1 >>> tcorrelate.inputs.pearson = True - >>> tcorrelate.cmdline # doctest: +ALLOW_UNICODE + >>> tcorrelate.cmdline '3dTcorrelate -prefix functional_tcorrelate.nii.gz -pearson -polort -1 u_rc1s1_Template.nii u_rc1s2_Template.nii' >>> res = tcarrelate.run() # doctest: +SKIP @@ -2497,7 +2497,7 @@ class TNorm(AFNICommand): >>> tnorm.inputs.in_file = 'functional.nii' >>> tnorm.inputs.norm2 = True >>> tnorm.inputs.out_file = 'rm.errts.unit errts+tlrc' - >>> tnorm.cmdline # doctest: +ALLOW_UNICODE + >>> tnorm.cmdline '3dTnorm -norm2 -prefix rm.errts.unit errts+tlrc functional.nii' >>> res = tshift.run() # doctest: +SKIP @@ -2567,7 +2567,7 @@ class TShift(AFNICommand): >>> tshift.inputs.in_file = 'functional.nii' >>> tshift.inputs.tpattern = 'alt+z' >>> tshift.inputs.tzero = 0.0 - >>> tshift.cmdline # doctest: +ALLOW_UNICODE + >>> tshift.cmdline '3dTshift -prefix functional_tshift -tpattern alt+z -tzero 0.0 functional.nii' >>> res = tshift.run() # doctest: +SKIP @@ -2663,7 +2663,7 @@ class Volreg(AFNICommand): >>> volreg.inputs.args = '-Fourier -twopass' >>> volreg.inputs.zpad = 4 >>> volreg.inputs.outputtype = 'NIFTI' - >>> volreg.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> volreg.cmdline # doctest: +ELLIPSIS '3dvolreg -Fourier -twopass -1Dfile functional.1D -1Dmatrix_save functional.aff12.1D -prefix functional_volreg.nii -zpad 4 -maxdisp1D functional_md.1D functional.nii' >>> res = volreg.run() # doctest: +SKIP @@ -2677,7 +2677,7 @@ class Volreg(AFNICommand): >>> volreg.inputs.out_file = 'rm.epi.volreg.r1' >>> volreg.inputs.oned_file = 'dfile.r1.1D' >>> volreg.inputs.oned_matrix_save = 'mat.r1.tshift+orig.1D' - >>> volreg.cmdline # doctest: +ALLOW_UNICODE + >>> volreg.cmdline '3dvolreg -cubic -1Dfile dfile.r1.1D -1Dmatrix_save mat.r1.tshift+orig.1D -prefix rm.epi.volreg.r1 -verbose -base functional.nii -zpad 1 -maxdisp1D functional_md.1D functional.nii' >>> res = volreg.run() # doctest: +SKIP @@ -2752,7 +2752,7 @@ class Warp(AFNICommand): >>> warp.inputs.in_file = 'structural.nii' >>> warp.inputs.deoblique = True >>> warp.inputs.out_file = 'trans.nii.gz' - >>> warp.cmdline # doctest: +ALLOW_UNICODE + >>> warp.cmdline '3dWarp -deoblique -prefix trans.nii.gz structural.nii' >>> res = warp.run() # doctest: +SKIP @@ -2760,7 +2760,7 @@ class Warp(AFNICommand): >>> warp_2.inputs.in_file = 'structural.nii' >>> warp_2.inputs.newgrid = 1.0 >>> warp_2.inputs.out_file = 'trans.nii.gz' - >>> warp_2.cmdline # doctest: +ALLOW_UNICODE + >>> warp_2.cmdline '3dWarp -newgrid 1.000000 -prefix trans.nii.gz structural.nii' >>> res = warp_2.run() # doctest: +SKIP @@ -2854,7 +2854,7 @@ class QwarpPlusMinus(CommandLine): >>> qwarp.inputs.source_file = 'sub-01_dir-LR_epi.nii.gz' >>> qwarp.inputs.nopadWARP = True >>> qwarp.inputs.base_file = 'sub-01_dir-RL_epi.nii.gz' - >>> qwarp.cmdline # doctest: +ALLOW_UNICODE + >>> qwarp.cmdline '3dQwarp -prefix Qwarp.nii.gz -plusminus -base sub-01_dir-RL_epi.nii.gz -nopadWARP -source sub-01_dir-LR_epi.nii.gz' >>> res = warp.run() # doctest: +SKIP @@ -3426,7 +3426,7 @@ class Qwarp(AFNICommand): >>> qwarp.inputs.nopadWARP = True >>> qwarp.inputs.base_file = 'sub-01_dir-RL_epi.nii.gz' >>> qwarp.inputs.plusminus = True - >>> qwarp.cmdline # doctest: +ALLOW_UNICODE + >>> qwarp.cmdline '3dQwarp -base sub-01_dir-RL_epi.nii.gz -source sub-01_dir-LR_epi.nii.gz -nopadWARP -prefix sub-01_dir-LR_epi_QW -plusminus' >>> res = qwarp.run() # doctest: +SKIP @@ -3435,7 +3435,7 @@ class Qwarp(AFNICommand): >>> qwarp.inputs.in_file = 'structural.nii' >>> qwarp.inputs.base_file = 'mni.nii' >>> qwarp.inputs.resample = True - >>> qwarp.cmdline # doctest: +ALLOW_UNICODE + >>> qwarp.cmdline '3dQwarp -base mni.nii -source structural.nii -prefix structural_QW -resample' >>> res = qwarp.run() # doctest: +SKIP @@ -3449,7 +3449,7 @@ class Qwarp(AFNICommand): >>> qwarp.inputs.verb = True >>> qwarp.inputs.iwarp = True >>> qwarp.inputs.blur = [0,3] - >>> qwarp.cmdline # doctest: +ALLOW_UNICODE + >>> qwarp.cmdline '3dQwarp -base epi.nii -blur 0.0 3.0 -source structural.nii -iwarp -prefix anatSSQ.nii.gz -resample -verb -lpc' >>> res = qwarp.run() # doctest: +SKIP @@ -3459,7 +3459,7 @@ class Qwarp(AFNICommand): >>> qwarp.inputs.base_file = 'mni.nii' >>> qwarp.inputs.duplo = True >>> qwarp.inputs.blur = [0,3] - >>> qwarp.cmdline # doctest: +ALLOW_UNICODE + >>> qwarp.cmdline '3dQwarp -base mni.nii -blur 0.0 3.0 -duplo -source structural.nii -prefix structural_QW' >>> res = qwarp.run() # doctest: +SKIP @@ -3471,7 +3471,7 @@ class Qwarp(AFNICommand): >>> qwarp.inputs.minpatch = 25 >>> qwarp.inputs.blur = [0,3] >>> qwarp.inputs.out_file = 'Q25' - >>> qwarp.cmdline # doctest: +ALLOW_UNICODE + >>> qwarp.cmdline '3dQwarp -base mni.nii -blur 0.0 3.0 -duplo -source structural.nii -minpatch 25 -prefix Q25' >>> res = qwarp.run() # doctest: +SKIP >>> qwarp2 = afni.Qwarp() @@ -3481,7 +3481,7 @@ class Qwarp(AFNICommand): >>> qwarp2.inputs.out_file = 'Q11' >>> qwarp2.inputs.inilev = 7 >>> qwarp2.inputs.iniwarp = ['Q25_warp+tlrc.HEAD'] - >>> qwarp2.cmdline # doctest: +ALLOW_UNICODE + >>> qwarp2.cmdline '3dQwarp -base mni.nii -blur 0.0 2.0 -source structural.nii -inilev 7 -iniwarp Q25_warp+tlrc.HEAD -prefix Q11' >>> res2 = qwarp2.run() # doctest: +SKIP >>> res2 = qwarp2.run() # doctest: +SKIP diff --git a/nipype/interfaces/afni/utils.py b/nipype/interfaces/afni/utils.py index 8245578780..89f7b941a8 100644 --- a/nipype/interfaces/afni/utils.py +++ b/nipype/interfaces/afni/utils.py @@ -74,7 +74,7 @@ class ABoverlap(AFNICommand): >>> aboverlap.inputs.in_file_a = 'functional.nii' >>> aboverlap.inputs.in_file_b = 'structural.nii' >>> aboverlap.inputs.out_file = 'out.mask_ae_overlap.txt' - >>> aboverlap.cmdline # doctest: +ALLOW_UNICODE + >>> aboverlap.cmdline '3dABoverlap functional.nii structural.nii |& tee out.mask_ae_overlap.txt' >>> res = aboverlap.run() # doctest: +SKIP @@ -139,7 +139,7 @@ class AFNItoNIFTI(AFNICommand): >>> a2n = afni.AFNItoNIFTI() >>> a2n.inputs.in_file = 'afni_output.3D' >>> a2n.inputs.out_file = 'afni_output.nii' - >>> a2n.cmdline # doctest: +ALLOW_UNICODE + >>> a2n.cmdline '3dAFNItoNIFTI -prefix afni_output.nii afni_output.3D' >>> res = a2n.run() # doctest: +SKIP @@ -207,7 +207,7 @@ class Autobox(AFNICommand): >>> abox = afni.Autobox() >>> abox.inputs.in_file = 'structural.nii' >>> abox.inputs.padding = 5 - >>> abox.cmdline # doctest: +ALLOW_UNICODE + >>> abox.cmdline '3dAutobox -input structural.nii -prefix structural_autobox -npad 5' >>> res = abox.run() # doctest: +SKIP @@ -288,7 +288,7 @@ class BrickStat(AFNICommandBase): >>> brickstat.inputs.in_file = 'functional.nii' >>> brickstat.inputs.mask = 'skeleton_mask.nii.gz' >>> brickstat.inputs.min = True - >>> brickstat.cmdline # doctest: +ALLOW_UNICODE + >>> brickstat.cmdline '3dBrickStat -min -mask skeleton_mask.nii.gz functional.nii' >>> res = brickstat.run() # doctest: +SKIP @@ -395,7 +395,7 @@ class Bucket(AFNICommand): >>> bucket = afni.Bucket() >>> bucket.inputs.in_file = [('functional.nii',"{2..$}"), ('functional.nii',"{1}")] >>> bucket.inputs.out_file = 'vr_base' - >>> bucket.cmdline # doctest: +ALLOW_UNICODE + >>> bucket.cmdline "3dbucket -prefix vr_base functional.nii'{2..$}' functional.nii'{1}'" >>> res = bucket.run() # doctest: +SKIP @@ -469,7 +469,7 @@ class Calc(AFNICommand): >>> calc.inputs.expr='a*b' >>> calc.inputs.out_file = 'functional_calc.nii.gz' >>> calc.inputs.outputtype = 'NIFTI' - >>> calc.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> calc.cmdline # doctest: +ELLIPSIS '3dcalc -a functional.nii -b functional2.nii -expr "a*b" -prefix functional_calc.nii.gz' >>> res = calc.run() # doctest: +SKIP @@ -479,7 +479,7 @@ class Calc(AFNICommand): >>> calc.inputs.expr = '1' >>> calc.inputs.out_file = 'rm.epi.all1' >>> calc.inputs.overwrite = True - >>> calc.cmdline # doctest: +ALLOW_UNICODE + >>> calc.cmdline '3dcalc -a functional.nii -expr "1" -prefix rm.epi.all1 -overwrite' >>> res = calc.run() # doctest: +SKIP @@ -574,7 +574,7 @@ class Cat(AFNICommand): >>> cat1d.inputs.sel = "'[0,2]'" >>> cat1d.inputs.in_files = ['f1.1D', 'f2.1D'] >>> cat1d.inputs.out_file = 'catout.1d' - >>> cat1d.cmdline # doctest: +ALLOW_UNICODE + >>> cat1d.cmdline "1dcat -sel '[0,2]' f1.1D f2.1D > catout.1d" >>> res = cat1d.run() # doctest: +SKIP @@ -627,7 +627,7 @@ class CatMatvec(AFNICommand): >>> cmv = afni.CatMatvec() >>> cmv.inputs.in_file = [('structural.BRIK::WARP_DATA','I')] >>> cmv.inputs.out_file = 'warp.anat.Xat.1D' - >>> cmv.cmdline # doctest: +ALLOW_UNICODE + >>> cmv.cmdline 'cat_matvec structural.BRIK::WARP_DATA -I > warp.anat.Xat.1D' >>> res = cmv.run() # doctest: +SKIP @@ -719,7 +719,7 @@ class CenterMass(AFNICommandBase): >>> cm.inputs.in_file = 'structural.nii' >>> cm.inputs.cm_file = 'cm.txt' >>> cm.inputs.roi_vals = [2, 10] - >>> cm.cmdline # doctest: +ALLOW_UNICODE + >>> cm.cmdline '3dCM -roi_vals 2 10 structural.nii > cm.txt' >>> res = 3dcm.run() # doctest: +SKIP """ @@ -766,26 +766,26 @@ class Copy(AFNICommand): >>> from nipype.interfaces import afni >>> copy3d = afni.Copy() >>> copy3d.inputs.in_file = 'functional.nii' - >>> copy3d.cmdline # doctest: +ALLOW_UNICODE + >>> copy3d.cmdline '3dcopy functional.nii functional_copy' >>> res = copy3d.run() # doctest: +SKIP >>> from copy import deepcopy >>> copy3d_2 = deepcopy(copy3d) >>> copy3d_2.inputs.outputtype = 'NIFTI' - >>> copy3d_2.cmdline # doctest: +ALLOW_UNICODE + >>> copy3d_2.cmdline '3dcopy functional.nii functional_copy.nii' >>> res = copy3d_2.run() # doctest: +SKIP >>> copy3d_3 = deepcopy(copy3d) >>> copy3d_3.inputs.outputtype = 'NIFTI_GZ' - >>> copy3d_3.cmdline # doctest: +ALLOW_UNICODE + >>> copy3d_3.cmdline '3dcopy functional.nii functional_copy.nii.gz' >>> res = copy3d_3.run() # doctest: +SKIP >>> copy3d_4 = deepcopy(copy3d) >>> copy3d_4.inputs.out_file = 'new_func.nii' - >>> copy3d_4.cmdline # doctest: +ALLOW_UNICODE + >>> copy3d_4.cmdline '3dcopy functional.nii new_func.nii' >>> res = copy3d_4.run() # doctest: +SKIP @@ -857,7 +857,7 @@ class Dot(AFNICommand): >>> dot.inputs.in_files = ['functional.nii[0]', 'structural.nii'] >>> dot.inputs.dodice = True >>> dot.inputs.out_file = 'out.mask_ae_dice.txt' - >>> dot.cmdline # doctest: +ALLOW_UNICODE + >>> dot.cmdline '3dDot -dodice functional.nii[0] structural.nii |& tee out.mask_ae_dice.txt' >>> res = copy3d.run() # doctest: +SKIP @@ -948,7 +948,7 @@ class Edge3(AFNICommand): >>> edge3.inputs.in_file = 'functional.nii' >>> edge3.inputs.out_file = 'edges.nii' >>> edge3.inputs.datum = 'byte' - >>> edge3.cmdline # doctest: +ALLOW_UNICODE + >>> edge3.cmdline '3dedge3 -input functional.nii -datum byte -prefix edges.nii' >>> res = edge3.run() # doctest: +SKIP @@ -1019,7 +1019,7 @@ class Eval(AFNICommand): >>> eval.inputs.expr = 'a*b' >>> eval.inputs.out1D = True >>> eval.inputs.out_file = 'data_calc.1D' - >>> eval.cmdline # doctest: +ALLOW_UNICODE + >>> eval.cmdline '1deval -a seed.1D -b resp.1D -expr "a*b" -1D -prefix data_calc.1D' >>> res = eval.run() # doctest: +SKIP @@ -1170,7 +1170,7 @@ class FWHMx(AFNICommandBase): >>> from nipype.interfaces import afni >>> fwhm = afni.FWHMx() >>> fwhm.inputs.in_file = 'functional.nii' - >>> fwhm.cmdline # doctest: +ALLOW_UNICODE + >>> fwhm.cmdline '3dFWHMx -input functional.nii -out functional_subbricks.out > functional_fwhmx.out' >>> res = fwhm.run() # doctest: +SKIP @@ -1397,7 +1397,7 @@ class MaskTool(AFNICommand): >>> masktool = afni.MaskTool() >>> masktool.inputs.in_file = 'functional.nii' >>> masktool.inputs.outputtype = 'NIFTI' - >>> masktool.cmdline # doctest: +ALLOW_UNICODE + >>> masktool.cmdline '3dmask_tool -prefix functional_mask.nii -input functional.nii' >>> res = automask.run() # doctest: +SKIP @@ -1446,7 +1446,7 @@ class Merge(AFNICommand): >>> merge.inputs.blurfwhm = 4 >>> merge.inputs.doall = True >>> merge.inputs.out_file = 'e7.nii' - >>> merge.cmdline # doctest: +ALLOW_UNICODE + >>> merge.cmdline '3dmerge -1blur_fwhm 4 -doall -prefix e7.nii functional.nii functional2.nii' >>> res = merge.run() # doctest: +SKIP @@ -1501,7 +1501,7 @@ class Notes(CommandLine): >>> notes.inputs.in_file = 'functional.HEAD' >>> notes.inputs.add = 'This note is added.' >>> notes.inputs.add_history = 'This note is added to history.' - >>> notes.cmdline # doctest: +ALLOW_UNICODE + >>> notes.cmdline '3dNotes -a "This note is added." -h "This note is added to history." functional.HEAD' >>> res = notes.run() # doctest: +SKIP """ @@ -1579,7 +1579,7 @@ class NwarpApply(AFNICommandBase): >>> nwarp.inputs.in_file = 'Fred+orig' >>> nwarp.inputs.master = 'NWARP' >>> nwarp.inputs.warp = "'Fred_WARP+tlrc Fred.Xaff12.1D'" - >>> nwarp.cmdline # doctest: +ALLOW_UNICODE + >>> nwarp.cmdline "3dNwarpApply -source Fred+orig -master NWARP -prefix Fred+orig_Nwarp -nwarp \'Fred_WARP+tlrc Fred.Xaff12.1D\'" >>> res = nwarp.run() # doctest: +SKIP @@ -1766,7 +1766,7 @@ class OneDToolPy(AFNIPythonCommand): >>> odt.inputs.set_nruns = 3 >>> odt.inputs.demean = True >>> odt.inputs.out_file = 'motion_dmean.1D' - >>> odt.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS + >>> odt.cmdline +ELLIPSIS 'python2 ...1d_tool.py -demean -infile f1.1D -write motion_dmean.1D -set_nruns 3' >>> res = odt.run() # doctest: +SKIP """ @@ -1881,14 +1881,14 @@ class Refit(AFNICommandBase): >>> refit = afni.Refit() >>> refit.inputs.in_file = 'structural.nii' >>> refit.inputs.deoblique = True - >>> refit.cmdline # doctest: +ALLOW_UNICODE + >>> refit.cmdline '3drefit -deoblique structural.nii' >>> res = refit.run() # doctest: +SKIP >>> refit_2 = afni.Refit() >>> refit_2.inputs.in_file = 'structural.nii' >>> refit_2.inputs.atrfloat = ("IJK_TO_DICOM_REAL", "'1 0.2 0 0 -0.2 1 0 0 0 0 1 0'") - >>> refit_2.cmdline # doctest: +ALLOW_UNICODE + >>> refit_2.cmdline "3drefit -atrfloat IJK_TO_DICOM_REAL '1 0.2 0 0 -0.2 1 0 0 0 0 1 0' structural.nii" >>> res = refit_2.run() # doctest: +SKIP """ @@ -1948,7 +1948,7 @@ class Resample(AFNICommand): >>> resample.inputs.in_file = 'functional.nii' >>> resample.inputs.orientation= 'RPI' >>> resample.inputs.outputtype = 'NIFTI' - >>> resample.cmdline # doctest: +ALLOW_UNICODE + >>> resample.cmdline '3dresample -orient RPI -prefix functional_resample.nii -inset functional.nii' >>> res = resample.run() # doctest: +SKIP @@ -2001,7 +2001,7 @@ class TCat(AFNICommand): >>> tcat.inputs.in_files = ['functional.nii', 'functional2.nii'] >>> tcat.inputs.out_file= 'functional_tcat.nii' >>> tcat.inputs.rlt = '+' - >>> tcat.cmdline # doctest: +ALLOW_UNICODE +NORMALIZE_WHITESPACE + >>> tcat.cmdline +NORMALIZE_WHITESPACE '3dTcat -rlt+ -prefix functional_tcat.nii functional.nii functional2.nii' >>> res = tcat.run() # doctest: +SKIP @@ -2051,7 +2051,7 @@ class TCatSubBrick(AFNICommand): >>> tcsb.inputs.in_files = [('functional.nii', "'{2..$}'"), ('functional2.nii', "'{2..$}'")] >>> tcsb.inputs.out_file= 'functional_tcat.nii' >>> tcsb.inputs.rlt = '+' - >>> tcsb.cmdline # doctest: +ALLOW_UNICODE +NORMALIZE_WHITESPACE + >>> tcsb.cmdline +NORMALIZE_WHITESPACE "3dTcat -rlt+ -prefix functional_tcat.nii functional.nii'{2..$}' functional2.nii'{2..$}' " >>> res = tcsb.run() # doctest: +SKIP @@ -2102,7 +2102,7 @@ class TStat(AFNICommand): >>> tstat.inputs.in_file = 'functional.nii' >>> tstat.inputs.args = '-mean' >>> tstat.inputs.out_file = 'stats' - >>> tstat.cmdline # doctest: +ALLOW_UNICODE + >>> tstat.cmdline '3dTstat -mean -prefix stats functional.nii' >>> res = tstat.run() # doctest: +SKIP @@ -2164,7 +2164,7 @@ class To3D(AFNICommand): >>> to3d.inputs.in_folder = '.' >>> to3d.inputs.out_file = 'dicomdir.nii' >>> to3d.inputs.filetype = 'anat' - >>> to3d.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> to3d.cmdline # doctest: +ELLIPSIS 'to3d -datum float -anat -prefix dicomdir.nii ./*.dcm' >>> res = to3d.run() # doctest: +SKIP @@ -2268,7 +2268,7 @@ class Undump(AFNICommand): >>> unndump = afni.Undump() >>> unndump.inputs.in_file = 'structural.nii' >>> unndump.inputs.out_file = 'structural_undumped.nii' - >>> unndump.cmdline # doctest: +ALLOW_UNICODE + >>> unndump.cmdline '3dUndump -prefix structural_undumped.nii -master structural.nii' >>> res = unndump.run() # doctest: +SKIP @@ -2371,7 +2371,7 @@ class Unifize(AFNICommand): >>> unifize = afni.Unifize() >>> unifize.inputs.in_file = 'structural.nii' >>> unifize.inputs.out_file = 'structural_unifized.nii' - >>> unifize.cmdline # doctest: +ALLOW_UNICODE + >>> unifize.cmdline '3dUnifize -prefix structural_unifized.nii -input structural.nii' >>> res = unifize.run() # doctest: +SKIP @@ -2414,7 +2414,7 @@ class ZCutUp(AFNICommand): >>> zcutup.inputs.in_file = 'functional.nii' >>> zcutup.inputs.out_file = 'functional_zcutup.nii' >>> zcutup.inputs.keep= '0 10' - >>> zcutup.cmdline # doctest: +ALLOW_UNICODE + >>> zcutup.cmdline '3dZcutup -keep 0 10 -prefix functional_zcutup.nii functional.nii' >>> res = zcutup.run() # doctest: +SKIP @@ -2466,7 +2466,7 @@ class GCOR(CommandLine): >>> gcor = afni.GCOR() >>> gcor.inputs.in_file = 'structural.nii' >>> gcor.inputs.nfirst = 4 - >>> gcor.cmdline # doctest: +ALLOW_UNICODE + >>> gcor.cmdline '@compute_gcor -nfirst 4 -input structural.nii' >>> res = gcor.run() # doctest: +SKIP @@ -2538,7 +2538,7 @@ class Axialize(AFNICommand): >>> axial3d = afni.Axialize() >>> axial3d.inputs.in_file = 'functional.nii' >>> axial3d.inputs.out_file = 'axialized.nii' - >>> axial3d.cmdline # doctest: +ALLOW_UNICODE + >>> axial3d.cmdline '3daxialize -prefix axialized.nii functional.nii' >>> res = axial3d.run() # doctest: +SKIP @@ -2600,7 +2600,7 @@ class Zcat(AFNICommand): >>> zcat = afni.Zcat() >>> zcat.inputs.in_files = ['functional2.nii', 'functional3.nii'] >>> zcat.inputs.out_file = 'cat_functional.nii' - >>> zcat.cmdline # doctest: +ALLOW_UNICODE + >>> zcat.cmdline '3dZcat -prefix cat_functional.nii functional2.nii functional3.nii' >>> res = zcat.run() # doctest: +SKIP """ @@ -2702,7 +2702,7 @@ class Zeropad(AFNICommand): >>> zeropad.inputs.P = 10 >>> zeropad.inputs.R = 10 >>> zeropad.inputs.L = 10 - >>> zeropad.cmdline # doctest: +ALLOW_UNICODE + >>> zeropad.cmdline '3dZeropad -A 10 -I 10 -L 10 -P 10 -R 10 -S 10 -prefix pad_functional.nii functional.nii' >>> res = zeropad.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/ants/legacy.py b/nipype/interfaces/ants/legacy.py index f545f3ed08..7df1731fa1 100644 --- a/nipype/interfaces/ants/legacy.py +++ b/nipype/interfaces/ants/legacy.py @@ -86,7 +86,7 @@ class antsIntroduction(ANTSCommand): >>> warp.inputs.reference_image = 'Template_6.nii' >>> warp.inputs.input_image = 'structural.nii' >>> warp.inputs.max_iterations = [30,90,20] - >>> warp.cmdline # doctest: +ALLOW_UNICODE + >>> warp.cmdline 'antsIntroduction.sh -d 3 -i structural.nii -m 30x90x20 -o ants_ -r Template_6.nii -t GR' """ @@ -204,7 +204,7 @@ class buildtemplateparallel(ANTSCommand): >>> tmpl = buildtemplateparallel() >>> tmpl.inputs.in_files = ['T1.nii', 'structural.nii'] >>> tmpl.inputs.max_iterations = [30, 90, 20] - >>> tmpl.cmdline # doctest: +ALLOW_UNICODE + >>> tmpl.cmdline 'buildtemplateparallel.sh -d 3 -i 4 -m 30x90x20 -o antsTMPL_ -c 0 -t GR T1.nii structural.nii' """ diff --git a/nipype/interfaces/ants/registration.py b/nipype/interfaces/ants/registration.py index 0b0e8f581e..5f2fad1975 100644 --- a/nipype/interfaces/ants/registration.py +++ b/nipype/interfaces/ants/registration.py @@ -119,7 +119,7 @@ class ANTS(ANTSCommand): >>> ants.inputs.regularization_gradient_field_sigma = 3 >>> ants.inputs.regularization_deformation_field_sigma = 0 >>> ants.inputs.number_of_affine_iterations = [10000,10000,10000,10000,10000] - >>> ants.cmdline # doctest: +ALLOW_UNICODE + >>> ants.cmdline 'ANTS 3 --MI-option 32x16000 --image-metric CC[ T1.nii, resting.nii, 1, 5 ] --number-of-affine-iterations \ 10000x10000x10000x10000x10000 --number-of-iterations 50x35x15 --output-naming MY --regularization Gauss[3.0,0.0] \ --transformation-model SyN[0.25] --use-Histogram-Matching 1' @@ -517,7 +517,7 @@ class Registration(ANTSCommand): >>> reg.inputs.use_estimate_learning_rate_once = [True, True] >>> reg.inputs.use_histogram_matching = [True, True] # This is the default >>> reg.inputs.output_warped_image = 'output_warped_image.nii.gz' - >>> reg.cmdline # doctest: +ALLOW_UNICODE + >>> reg.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 0 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -533,7 +533,7 @@ class Registration(ANTSCommand): >>> reg.inputs.invert_initial_moving_transform = True >>> reg1 = copy.deepcopy(reg) >>> reg1.inputs.winsorize_lower_quantile = 0.025 - >>> reg1.cmdline # doctest: +ALLOW_UNICODE + >>> reg1.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -549,7 +549,7 @@ class Registration(ANTSCommand): >>> reg2 = copy.deepcopy(reg) >>> reg2.inputs.winsorize_upper_quantile = 0.975 - >>> reg2.cmdline # doctest: +ALLOW_UNICODE + >>> reg2.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -566,7 +566,7 @@ class Registration(ANTSCommand): >>> reg3 = copy.deepcopy(reg) >>> reg3.inputs.winsorize_lower_quantile = 0.025 >>> reg3.inputs.winsorize_upper_quantile = 0.975 - >>> reg3.cmdline # doctest: +ALLOW_UNICODE + >>> reg3.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -580,7 +580,7 @@ class Registration(ANTSCommand): >>> reg3a = copy.deepcopy(reg) >>> reg3a.inputs.float = True - >>> reg3a.cmdline # doctest: +ALLOW_UNICODE + >>> reg3a.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --float 1 \ --initial-moving-transform [ trans.mat, 1 ] --initialize-transforms-per-stage 0 --interpolation Linear \ --output [ output_, output_warped_image.nii.gz ] --transform Affine[ 2.0 ] \ @@ -595,7 +595,7 @@ class Registration(ANTSCommand): >>> reg3b = copy.deepcopy(reg) >>> reg3b.inputs.float = False - >>> reg3b.cmdline # doctest: +ALLOW_UNICODE + >>> reg3b.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --float 0 \ --initial-moving-transform [ trans.mat, 1 ] --initialize-transforms-per-stage 0 --interpolation Linear \ --output [ output_, output_warped_image.nii.gz ] --transform Affine[ 2.0 ] \ @@ -616,7 +616,7 @@ class Registration(ANTSCommand): >>> reg4.inputs.initialize_transforms_per_stage = True >>> reg4.inputs.collapse_output_transforms = True >>> outputs = reg4._list_outputs() - >>> pprint.pprint(outputs) # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE +ALLOW_UNICODE + >>> pprint.pprint(outputs) # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE {'composite_transform': '.../nipype/testing/data/output_Composite.h5', 'elapsed_time': , 'forward_invert_flags': [], @@ -628,7 +628,7 @@ class Registration(ANTSCommand): 'reverse_transforms': [], 'save_state': '.../nipype/testing/data/trans.mat', 'warped_image': '.../nipype/testing/data/output_warped_image.nii.gz'} - >>> reg4.cmdline # doctest: +ALLOW_UNICODE + >>> reg4.cmdline 'antsRegistration --collapse-output-transforms 1 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 1 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --restore-state trans.mat --save-state trans.mat --transform Affine[ 2.0 ] \ @@ -644,7 +644,7 @@ class Registration(ANTSCommand): >>> reg4b = copy.deepcopy(reg4) >>> reg4b.inputs.write_composite_transform = False >>> outputs = reg4b._list_outputs() - >>> pprint.pprint(outputs) # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE +ALLOW_UNICODE + >>> pprint.pprint(outputs) # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE {'composite_transform': , 'elapsed_time': , 'forward_invert_flags': [False, False], @@ -659,7 +659,7 @@ class Registration(ANTSCommand): 'save_state': '.../nipype/testing/data/trans.mat', 'warped_image': '.../nipype/testing/data/output_warped_image.nii.gz'} >>> reg4b.aggregate_outputs() # doctest: +SKIP - >>> reg4b.cmdline # doctest: +ALLOW_UNICODE + >>> reg4b.cmdline 'antsRegistration --collapse-output-transforms 1 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 1 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --restore-state trans.mat --save-state trans.mat --transform Affine[ 2.0 ] \ @@ -687,7 +687,7 @@ class Registration(ANTSCommand): >>> reg5.inputs.radius_or_number_of_bins = [32, [32, 4] ] >>> reg5.inputs.sampling_strategy = ['Random', None] # use default strategy in second stage >>> reg5.inputs.sampling_percentage = [0.05, [0.05, 0.10]] - >>> reg5.cmdline # doctest: +ALLOW_UNICODE + >>> reg5.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -708,7 +708,7 @@ class Registration(ANTSCommand): >>> reg6 = copy.deepcopy(reg5) >>> reg6.inputs.fixed_image = ['fixed1.nii', 'fixed2.nii'] >>> reg6.inputs.moving_image = ['moving1.nii', 'moving2.nii'] - >>> reg6.cmdline # doctest: +ALLOW_UNICODE + >>> reg6.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -725,7 +725,7 @@ class Registration(ANTSCommand): >>> reg7a = copy.deepcopy(reg) >>> reg7a.inputs.interpolation = 'BSpline' >>> reg7a.inputs.interpolation_parameters = (3,) - >>> reg7a.cmdline # doctest: +ALLOW_UNICODE + >>> reg7a.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation BSpline[ 3 ] --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -739,7 +739,7 @@ class Registration(ANTSCommand): >>> reg7b = copy.deepcopy(reg) >>> reg7b.inputs.interpolation = 'Gaussian' >>> reg7b.inputs.interpolation_parameters = (1.0, 1.0) - >>> reg7b.cmdline # doctest: +ALLOW_UNICODE + >>> reg7b.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Gaussian[ 1.0, 1.0 ] \ --output [ output_, output_warped_image.nii.gz ] --transform Affine[ 2.0 ] \ @@ -756,7 +756,7 @@ class Registration(ANTSCommand): >>> reg8 = copy.deepcopy(reg) >>> reg8.inputs.transforms = ['Affine', 'BSplineSyN'] >>> reg8.inputs.transform_parameters = [(2.0,), (0.25, 26, 0, 3)] - >>> reg8.cmdline # doctest: +ALLOW_UNICODE + >>> reg8.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -771,7 +771,7 @@ class Registration(ANTSCommand): >>> # Test masking >>> reg9 = copy.deepcopy(reg) >>> reg9.inputs.fixed_image_masks = ['NULL', 'fixed1.nii'] - >>> reg9.cmdline # doctest: +ALLOW_UNICODE + >>> reg9.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -790,7 +790,7 @@ class Registration(ANTSCommand): >>> reg10 = copy.deepcopy(reg) >>> reg10.inputs.initial_moving_transform = ['func_to_struct.mat', 'ants_Warp.nii.gz'] >>> reg10.inputs.invert_initial_moving_transform = [False, False] - >>> reg10.cmdline # doctest: +ALLOW_UNICODE + >>> reg10.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform \ [ func_to_struct.mat, 0 ] [ ants_Warp.nii.gz, 0 ] --initialize-transforms-per-stage 0 --interpolation Linear \ --output [ output_, output_warped_image.nii.gz ] --transform Affine[ 2.0 ] \ @@ -1290,7 +1290,7 @@ class MeasureImageSimilarity(ANTSCommand): >>> sim.inputs.sampling_percentage = 1.0 >>> sim.inputs.fixed_image_mask = 'mask.nii' >>> sim.inputs.moving_image_mask = 'mask.nii.gz' - >>> sim.cmdline # doctest: +ALLOW_UNICODE + >>> sim.cmdline u'MeasureImageSimilarity --dimensionality 3 --masks ["mask.nii","mask.nii.gz"] \ --metric MI["T1.nii","resting.nii",1.0,5,Regular,1.0]' """ diff --git a/nipype/interfaces/ants/resampling.py b/nipype/interfaces/ants/resampling.py index 9ee9243a61..e268cb43e2 100644 --- a/nipype/interfaces/ants/resampling.py +++ b/nipype/interfaces/ants/resampling.py @@ -66,7 +66,7 @@ class WarpTimeSeriesImageMultiTransform(ANTSCommand): >>> wtsimt.inputs.input_image = 'resting.nii' >>> wtsimt.inputs.reference_image = 'ants_deformed.nii.gz' >>> wtsimt.inputs.transformation_series = ['ants_Warp.nii.gz','ants_Affine.txt'] - >>> wtsimt.cmdline # doctest: +ALLOW_UNICODE + >>> wtsimt.cmdline 'WarpTimeSeriesImageMultiTransform 4 resting.nii resting_wtsimt.nii -R ants_deformed.nii.gz ants_Warp.nii.gz \ ants_Affine.txt' @@ -179,7 +179,7 @@ class WarpImageMultiTransform(ANTSCommand): >>> wimt.inputs.input_image = 'structural.nii' >>> wimt.inputs.reference_image = 'ants_deformed.nii.gz' >>> wimt.inputs.transformation_series = ['ants_Warp.nii.gz','ants_Affine.txt'] - >>> wimt.cmdline # doctest: +ALLOW_UNICODE + >>> wimt.cmdline 'WarpImageMultiTransform 3 structural.nii structural_wimt.nii -R ants_deformed.nii.gz ants_Warp.nii.gz \ ants_Affine.txt' @@ -189,7 +189,7 @@ class WarpImageMultiTransform(ANTSCommand): >>> wimt.inputs.transformation_series = ['func2anat_coreg_Affine.txt','func2anat_InverseWarp.nii.gz', \ 'dwi2anat_Warp.nii.gz','dwi2anat_coreg_Affine.txt'] >>> wimt.inputs.invert_affine = [1] # this will invert the 1st Affine file: 'func2anat_coreg_Affine.txt' - >>> wimt.cmdline # doctest: +ALLOW_UNICODE + >>> wimt.cmdline 'WarpImageMultiTransform 3 diffusion_weighted.nii diffusion_weighted_wimt.nii -R functional.nii \ -i func2anat_coreg_Affine.txt func2anat_InverseWarp.nii.gz dwi2anat_Warp.nii.gz dwi2anat_coreg_Affine.txt' @@ -305,7 +305,7 @@ class ApplyTransforms(ANTSCommand): >>> at.inputs.input_image = 'moving1.nii' >>> at.inputs.reference_image = 'fixed1.nii' >>> at.inputs.transforms = 'identity' - >>> at.cmdline # doctest: +ALLOW_UNICODE + >>> at.cmdline 'antsApplyTransforms --default-value 0 --input moving1.nii \ --interpolation Linear --output moving1_trans.nii \ --reference-image fixed1.nii -t identity' @@ -319,7 +319,7 @@ class ApplyTransforms(ANTSCommand): >>> at.inputs.default_value = 0 >>> at.inputs.transforms = ['ants_Warp.nii.gz', 'trans.mat'] >>> at.inputs.invert_transform_flags = [False, False] - >>> at.cmdline # doctest: +ALLOW_UNICODE + >>> at.cmdline 'antsApplyTransforms --default-value 0 --dimensionality 3 --input moving1.nii --interpolation Linear \ --output deformed_moving1.nii --reference-image fixed1.nii --transform [ ants_Warp.nii.gz, 0 ] \ --transform [ trans.mat, 0 ]' @@ -334,7 +334,7 @@ class ApplyTransforms(ANTSCommand): >>> at1.inputs.default_value = 0 >>> at1.inputs.transforms = ['ants_Warp.nii.gz', 'trans.mat'] >>> at1.inputs.invert_transform_flags = [False, False] - >>> at1.cmdline # doctest: +ALLOW_UNICODE + >>> at1.cmdline 'antsApplyTransforms --default-value 0 --dimensionality 3 --input moving1.nii --interpolation BSpline[ 5 ] \ --output deformed_moving1.nii --reference-image fixed1.nii --transform [ ants_Warp.nii.gz, 0 ] \ --transform [ trans.mat, 0 ]' @@ -442,7 +442,7 @@ class ApplyTransformsToPoints(ANTSCommand): >>> at.inputs.input_file = 'moving.csv' >>> at.inputs.transforms = ['trans.mat', 'ants_Warp.nii.gz'] >>> at.inputs.invert_transform_flags = [False, False] - >>> at.cmdline # doctest: +ALLOW_UNICODE + >>> at.cmdline 'antsApplyTransformsToPoints --dimensionality 3 --input moving.csv --output moving_transformed.csv \ --transform [ trans.mat, 0 ] --transform [ ants_Warp.nii.gz, 0 ]' diff --git a/nipype/interfaces/ants/segmentation.py b/nipype/interfaces/ants/segmentation.py index 042303227a..64ca7205ca 100644 --- a/nipype/interfaces/ants/segmentation.py +++ b/nipype/interfaces/ants/segmentation.py @@ -91,7 +91,7 @@ class Atropos(ANTSCommand): >>> at.inputs.posterior_formulation = 'Socrates' >>> at.inputs.use_mixture_model_proportions = True >>> at.inputs.save_posteriors = True - >>> at.cmdline # doctest: +ALLOW_UNICODE + >>> at.cmdline 'Atropos --image-dimensionality 3 --icm [1,1] \ --initialization PriorProbabilityImages[2,priors/priorProbImages%02d.nii,0.8,1e-07] --intensity-image structural.nii \ --likelihood-model Gaussian --mask-image mask.nii --mrf [0.2,1x1x1] --convergence [5,1e-06] \ @@ -209,7 +209,7 @@ class LaplacianThickness(ANTSCommand): >>> cort_thick.inputs.input_wm = 'white_matter.nii.gz' >>> cort_thick.inputs.input_gm = 'gray_matter.nii.gz' >>> cort_thick.inputs.output_image = 'output_thickness.nii.gz' - >>> cort_thick.cmdline # doctest: +ALLOW_UNICODE + >>> cort_thick.cmdline 'LaplacianThickness white_matter.nii.gz gray_matter.nii.gz output_thickness.nii.gz' """ @@ -294,7 +294,7 @@ class N4BiasFieldCorrection(ANTSCommand): >>> n4.inputs.bspline_fitting_distance = 300 >>> n4.inputs.shrink_factor = 3 >>> n4.inputs.n_iterations = [50,50,30,20] - >>> n4.cmdline # doctest: +ALLOW_UNICODE + >>> n4.cmdline 'N4BiasFieldCorrection --bspline-fitting [ 300 ] \ -d 3 --input-image structural.nii \ --convergence [ 50x50x30x20 ] --output structural_corrected.nii \ @@ -302,7 +302,7 @@ class N4BiasFieldCorrection(ANTSCommand): >>> n4_2 = copy.deepcopy(n4) >>> n4_2.inputs.convergence_threshold = 1e-6 - >>> n4_2.cmdline # doctest: +ALLOW_UNICODE + >>> n4_2.cmdline 'N4BiasFieldCorrection --bspline-fitting [ 300 ] \ -d 3 --input-image structural.nii \ --convergence [ 50x50x30x20, 1e-06 ] --output structural_corrected.nii \ @@ -310,7 +310,7 @@ class N4BiasFieldCorrection(ANTSCommand): >>> n4_3 = copy.deepcopy(n4_2) >>> n4_3.inputs.bspline_order = 5 - >>> n4_3.cmdline # doctest: +ALLOW_UNICODE + >>> n4_3.cmdline 'N4BiasFieldCorrection --bspline-fitting [ 300, 5 ] \ -d 3 --input-image structural.nii \ --convergence [ 50x50x30x20, 1e-06 ] --output structural_corrected.nii \ @@ -320,7 +320,7 @@ class N4BiasFieldCorrection(ANTSCommand): >>> n4_4.inputs.input_image = 'structural.nii' >>> n4_4.inputs.save_bias = True >>> n4_4.inputs.dimension = 3 - >>> n4_4.cmdline # doctest: +ALLOW_UNICODE + >>> n4_4.cmdline 'N4BiasFieldCorrection -d 3 --input-image structural.nii \ --output [ structural_corrected.nii, structural_bias.nii ]' """ @@ -530,7 +530,7 @@ class CorticalThickness(ANTSCommand): ... 'BrainSegmentationPrior03.nii.gz', ... 'BrainSegmentationPrior04.nii.gz'] >>> corticalthickness.inputs.t1_registration_template = 'brain_study_template.nii.gz' - >>> corticalthickness.cmdline # doctest: +ALLOW_UNICODE + >>> corticalthickness.cmdline 'antsCorticalThickness.sh -a T1.nii.gz -m ProbabilityMaskOfStudyTemplate.nii.gz -e study_template.nii.gz -d 3 \ -s nii.gz -o antsCT_ -p nipype_priors/BrainSegmentationPrior%02d.nii.gz -t brain_study_template.nii.gz' @@ -709,7 +709,7 @@ class BrainExtraction(ANTSCommand): >>> brainextraction.inputs.anatomical_image ='T1.nii.gz' >>> brainextraction.inputs.brain_template = 'study_template.nii.gz' >>> brainextraction.inputs.brain_probability_mask ='ProbabilityMaskOfStudyTemplate.nii.gz' - >>> brainextraction.cmdline # doctest: +ALLOW_UNICODE + >>> brainextraction.cmdline 'antsBrainExtraction.sh -a T1.nii.gz -m ProbabilityMaskOfStudyTemplate.nii.gz -e study_template.nii.gz -d 3 \ -s nii.gz -o highres001_' """ @@ -900,7 +900,7 @@ class JointFusion(ANTSCommand): ... 'segmentation1.nii.gz', ... 'segmentation1.nii.gz'] >>> at.inputs.target_image = 'T1.nii' - >>> at.cmdline # doctest: +ALLOW_UNICODE + >>> at.cmdline 'jointfusion 3 1 -m Joint[0.1,2] -tg T1.nii -g im1.nii -g im2.nii -g im3.nii -l segmentation0.nii.gz \ -l segmentation1.nii.gz -l segmentation1.nii.gz fusion_labelimage_output.nii' @@ -909,7 +909,7 @@ class JointFusion(ANTSCommand): >>> at.inputs.beta = 1 >>> at.inputs.patch_radius = [3,2,1] >>> at.inputs.search_radius = [1,2,3] - >>> at.cmdline # doctest: +ALLOW_UNICODE + >>> at.cmdline 'jointfusion 3 1 -m Joint[0.5,1] -rp 3x2x1 -rs 1x2x3 -tg T1.nii -g im1.nii -g im2.nii -g im3.nii \ -l segmentation0.nii.gz -l segmentation1.nii.gz -l segmentation1.nii.gz fusion_labelimage_output.nii' """ @@ -986,20 +986,20 @@ class DenoiseImage(ANTSCommand): >>> denoise = DenoiseImage() >>> denoise.inputs.dimension = 3 >>> denoise.inputs.input_image = 'im1.nii' - >>> denoise.cmdline # doctest: +ALLOW_UNICODE + >>> denoise.cmdline 'DenoiseImage -d 3 -i im1.nii -n Gaussian -o im1_noise_corrected.nii -s 1' >>> denoise_2 = copy.deepcopy(denoise) >>> denoise_2.inputs.output_image = 'output_corrected_image.nii.gz' >>> denoise_2.inputs.noise_model = 'Rician' >>> denoise_2.inputs.shrink_factor = 2 - >>> denoise_2.cmdline # doctest: +ALLOW_UNICODE + >>> denoise_2.cmdline 'DenoiseImage -d 3 -i im1.nii -n Rician -o output_corrected_image.nii.gz -s 2' >>> denoise_3 = DenoiseImage() >>> denoise_3.inputs.input_image = 'im1.nii' >>> denoise_3.inputs.save_noise = True - >>> denoise_3.cmdline # doctest: +ALLOW_UNICODE + >>> denoise_3.cmdline 'DenoiseImage -i im1.nii -n Gaussian -o [ im1_noise_corrected.nii, im1_noise.nii ] -s 1' """ input_spec = DenoiseImageInputSpec @@ -1103,12 +1103,12 @@ class AntsJointFusion(ANTSCommand): >>> antsjointfusion.inputs.atlas_image = [ ['rc1s1.nii','rc1s2.nii'] ] >>> antsjointfusion.inputs.atlas_segmentation_image = ['segmentation0.nii.gz'] >>> antsjointfusion.inputs.target_image = ['im1.nii'] - >>> antsjointfusion.cmdline # doctest: +ALLOW_UNICODE + >>> antsjointfusion.cmdline "antsJointFusion -a 0.1 -g ['rc1s1.nii', 'rc1s2.nii'] -l segmentation0.nii.gz \ -b 2.0 -o ants_fusion_label_output.nii -s 3x3x3 -t ['im1.nii']" >>> antsjointfusion.inputs.target_image = [ ['im1.nii', 'im2.nii'] ] - >>> antsjointfusion.cmdline # doctest: +ALLOW_UNICODE + >>> antsjointfusion.cmdline "antsJointFusion -a 0.1 -g ['rc1s1.nii', 'rc1s2.nii'] -l segmentation0.nii.gz \ -b 2.0 -o ants_fusion_label_output.nii -s 3x3x3 -t ['im1.nii', 'im2.nii']" @@ -1116,7 +1116,7 @@ class AntsJointFusion(ANTSCommand): ... ['rc2s1.nii','rc2s2.nii'] ] >>> antsjointfusion.inputs.atlas_segmentation_image = ['segmentation0.nii.gz', ... 'segmentation1.nii.gz'] - >>> antsjointfusion.cmdline # doctest: +ALLOW_UNICODE + >>> antsjointfusion.cmdline "antsJointFusion -a 0.1 -g ['rc1s1.nii', 'rc1s2.nii'] -g ['rc2s1.nii', 'rc2s2.nii'] \ -l segmentation0.nii.gz -l segmentation1.nii.gz -b 2.0 -o ants_fusion_label_output.nii \ -s 3x3x3 -t ['im1.nii', 'im2.nii']" @@ -1126,7 +1126,7 @@ class AntsJointFusion(ANTSCommand): >>> antsjointfusion.inputs.beta = 1.0 >>> antsjointfusion.inputs.patch_radius = [3,2,1] >>> antsjointfusion.inputs.search_radius = [3] - >>> antsjointfusion.cmdline # doctest: +ALLOW_UNICODE + >>> antsjointfusion.cmdline "antsJointFusion -a 0.5 -g ['rc1s1.nii', 'rc1s2.nii'] -g ['rc2s1.nii', 'rc2s2.nii'] \ -l segmentation0.nii.gz -l segmentation1.nii.gz -b 1.0 -d 3 -o ants_fusion_label_output.nii \ -p 3x2x1 -s 3 -t ['im1.nii', 'im2.nii']" @@ -1135,7 +1135,7 @@ class AntsJointFusion(ANTSCommand): >>> antsjointfusion.inputs.verbose = True >>> antsjointfusion.inputs.exclusion_image = ['roi01.nii', 'roi02.nii'] >>> antsjointfusion.inputs.exclusion_image_label = ['1','2'] - >>> antsjointfusion.cmdline # doctest: +ALLOW_UNICODE + >>> antsjointfusion.cmdline "antsJointFusion -a 0.5 -g ['rc1s1.nii', 'rc1s2.nii'] -g ['rc2s1.nii', 'rc2s2.nii'] \ -l segmentation0.nii.gz -l segmentation1.nii.gz -b 1.0 -d 3 -e 1[roi01.nii] -e 2[roi02.nii] \ -o ants_fusion_label_output.nii -p 3x2x1 -s mask.nii -t ['im1.nii', 'im2.nii'] -v" @@ -1144,7 +1144,7 @@ class AntsJointFusion(ANTSCommand): >>> antsjointfusion.inputs.out_intensity_fusion_name_format = 'ants_joint_fusion_intensity_%d.nii.gz' >>> antsjointfusion.inputs.out_label_post_prob_name_format = 'ants_joint_fusion_posterior_%d.nii.gz' >>> antsjointfusion.inputs.out_atlas_voting_weight_name_format = 'ants_joint_fusion_voting_weight_%d.nii.gz' - >>> antsjointfusion.cmdline # doctest: +ALLOW_UNICODE + >>> antsjointfusion.cmdline "antsJointFusion -a 0.5 -g ['rc1s1.nii', 'rc1s2.nii'] -g ['rc2s1.nii', 'rc2s2.nii'] \ -l segmentation0.nii.gz -l segmentation1.nii.gz -b 1.0 -d 3 -e 1[roi01.nii] -e 2[roi02.nii] \ -o [ants_fusion_label_output.nii, ants_joint_fusion_intensity_%d.nii.gz, \ @@ -1323,7 +1323,7 @@ class KellyKapowski(ANTSCommand): >>> #kk.inputs.use_bspline_smoothing = False >>> kk.inputs.number_integration_points = 10 >>> kk.inputs.thickness_prior_estimate = 10 - >>> kk.cmdline # doctest: +ALLOW_UNICODE + >>> kk.cmdline u'KellyKapowski --convergence "[45,0.0,10]" \ --output "[segmentation0_cortical_thickness.nii.gz,segmentation0_warped_white_matter.nii.gz]" \ --image-dimensionality 3 --gradient-step 0.025000 --number-of-integration-points 10 \ diff --git a/nipype/interfaces/ants/utils.py b/nipype/interfaces/ants/utils.py index 88d6d219a2..0ba918ee27 100644 --- a/nipype/interfaces/ants/utils.py +++ b/nipype/interfaces/ants/utils.py @@ -37,7 +37,7 @@ class AverageAffineTransform(ANTSCommand): >>> avg.inputs.dimension = 3 >>> avg.inputs.transforms = ['trans.mat', 'func_to_struct.mat'] >>> avg.inputs.output_affine_transform = 'MYtemplatewarp.mat' - >>> avg.cmdline # doctest: +ALLOW_UNICODE + >>> avg.cmdline 'AverageAffineTransform 3 MYtemplatewarp.mat trans.mat func_to_struct.mat' """ _cmd = 'AverageAffineTransform' @@ -83,7 +83,7 @@ class AverageImages(ANTSCommand): >>> avg.inputs.output_average_image = "average.nii.gz" >>> avg.inputs.normalize = True >>> avg.inputs.images = ['rc1s1.nii', 'rc1s1.nii'] - >>> avg.cmdline # doctest: +ALLOW_UNICODE + >>> avg.cmdline 'AverageImages 3 average.nii.gz 1 rc1s1.nii rc1s1.nii' """ _cmd = 'AverageImages' @@ -126,7 +126,7 @@ class MultiplyImages(ANTSCommand): >>> test.inputs.first_input = 'moving2.nii' >>> test.inputs.second_input = 0.25 >>> test.inputs.output_product_image = "out.nii" - >>> test.cmdline # doctest: +ALLOW_UNICODE + >>> test.cmdline 'MultiplyImages 3 moving2.nii 0.25 out.nii' """ _cmd = 'MultiplyImages' @@ -170,7 +170,7 @@ class CreateJacobianDeterminantImage(ANTSCommand): >>> jacobian.inputs.imageDimension = 3 >>> jacobian.inputs.deformationField = 'ants_Warp.nii.gz' >>> jacobian.inputs.outputImage = 'out_name.nii.gz' - >>> jacobian.cmdline # doctest: +ALLOW_UNICODE + >>> jacobian.cmdline 'CreateJacobianDeterminantImage 3 ants_Warp.nii.gz out_name.nii.gz' """ @@ -223,7 +223,7 @@ class AffineInitializer(ANTSCommand): >>> init = AffineInitializer() >>> init.inputs.fixed_image = 'fixed1.nii' >>> init.inputs.moving_image = 'moving1.nii' - >>> init.cmdline # doctest: +ALLOW_UNICODE + >>> init.cmdline 'antsAffineInitializer 3 fixed1.nii moving1.nii transform.mat 15.000000 0.100000 0 10' """ @@ -261,7 +261,7 @@ class ComposeMultiTransform(ANTSCommand): >>> compose_transform = ComposeMultiTransform() >>> compose_transform.inputs.dimension = 3 >>> compose_transform.inputs.transforms = ['struct_to_template.mat', 'func_to_struct.mat'] - >>> compose_transform.cmdline # doctest: +ALLOW_UNICODE + >>> compose_transform.cmdline 'ComposeMultiTransform 3 struct_to_template_composed struct_to_template.mat func_to_struct.mat' """ diff --git a/nipype/interfaces/ants/visualization.py b/nipype/interfaces/ants/visualization.py index ef51914e6c..07cf8af086 100644 --- a/nipype/interfaces/ants/visualization.py +++ b/nipype/interfaces/ants/visualization.py @@ -57,7 +57,7 @@ class ConvertScalarImageToRGB(ANTSCommand): >>> converter.inputs.colormap = 'jet' >>> converter.inputs.minimum_input = 0 >>> converter.inputs.maximum_input = 6 - >>> converter.cmdline # doctest: +ALLOW_UNICODE + >>> converter.cmdline 'ConvertScalarImageToRGB 3 T1.nii.gz rgb.nii.gz none jet none 0 6 0 255' """ _cmd = 'ConvertScalarImageToRGB' @@ -143,7 +143,7 @@ class CreateTiledMosaic(ANTSCommand): >>> mosaic_slicer.inputs.direction = 2 >>> mosaic_slicer.inputs.pad_or_crop = '[ -15x -50 , -15x -30 ,0]' >>> mosaic_slicer.inputs.slices = '[2 ,100 ,160]' - >>> mosaic_slicer.cmdline # doctest: +ALLOW_UNICODE + >>> mosaic_slicer.cmdline 'CreateTiledMosaic -a 0.50 -d 2 -i T1.nii.gz -x mask.nii.gz -o output.png -p [ -15x -50 , -15x -30 ,0] \ -r rgb.nii.gz -s [2 ,100 ,160]' """ diff --git a/nipype/interfaces/base.py b/nipype/interfaces/base.py index f8e845d944..1463de1144 100644 --- a/nipype/interfaces/base.py +++ b/nipype/interfaces/base.py @@ -123,10 +123,10 @@ class Bunch(object): -------- >>> from nipype.interfaces.base import Bunch >>> inputs = Bunch(infile='subj.nii', fwhm=6.0, register_to_mean=True) - >>> inputs # doctest: +ALLOW_UNICODE + >>> inputs Bunch(fwhm=6.0, infile='subj.nii', register_to_mean=True) >>> inputs.register_to_mean = False - >>> inputs # doctest: +ALLOW_UNICODE + >>> inputs Bunch(fwhm=6.0, infile='subj.nii', register_to_mean=False) @@ -1505,18 +1505,18 @@ class must be instantiated with a command argument >>> from nipype.interfaces.base import CommandLine >>> cli = CommandLine(command='ls', environ={'DISPLAY': ':1'}) >>> cli.inputs.args = '-al' - >>> cli.cmdline # doctest: +ALLOW_UNICODE + >>> cli.cmdline 'ls -al' # Use get_traitsfree() to check all inputs set - >>> pprint.pprint(cli.inputs.get_traitsfree()) # doctest: +NORMALIZE_WHITESPACE +ALLOW_UNICODE + >>> pprint.pprint(cli.inputs.get_traitsfree()) # doctest: +NORMALIZE_WHITESPACE {'args': '-al', 'environ': {'DISPLAY': ':1'}, 'ignore_exception': False} - >>> cli.inputs.get_hashval()[0][0] # doctest: +ALLOW_UNICODE + >>> cli.inputs.get_hashval()[0][0] ('args', '-al') - >>> cli.inputs.get_hashval()[1] # doctest: +ALLOW_UNICODE + >>> cli.inputs.get_hashval()[1] '11c37f97649cd61627f4afe5136af8c0' """ @@ -1846,12 +1846,12 @@ class MpiCommandLine(CommandLine): >>> from nipype.interfaces.base import MpiCommandLine >>> mpi_cli = MpiCommandLine(command='my_mpi_prog') >>> mpi_cli.inputs.args = '-v' - >>> mpi_cli.cmdline # doctest: +ALLOW_UNICODE + >>> mpi_cli.cmdline 'my_mpi_prog -v' >>> mpi_cli.inputs.use_mpi = True >>> mpi_cli.inputs.n_procs = 8 - >>> mpi_cli.cmdline # doctest: +ALLOW_UNICODE + >>> mpi_cli.cmdline 'mpiexec -n 8 my_mpi_prog -v' """ input_spec = MpiCommandLineInputSpec @@ -1961,15 +1961,15 @@ class OutputMultiPath(MultiPath): >>> a.foo = '/software/temp/foo.txt' - >>> a.foo # doctest: +ALLOW_UNICODE + >>> a.foo '/software/temp/foo.txt' >>> a.foo = ['/software/temp/foo.txt'] - >>> a.foo # doctest: +ALLOW_UNICODE + >>> a.foo '/software/temp/foo.txt' >>> a.foo = ['/software/temp/foo.txt', '/software/temp/goo.txt'] - >>> a.foo # doctest: +ALLOW_UNICODE + >>> a.foo ['/software/temp/foo.txt', '/software/temp/goo.txt'] """ @@ -2006,15 +2006,15 @@ class InputMultiPath(MultiPath): >>> a.foo = '/software/temp/foo.txt' - >>> a.foo # doctest: +ALLOW_UNICODE + >>> a.foo ['/software/temp/foo.txt'] >>> a.foo = ['/software/temp/foo.txt'] - >>> a.foo # doctest: +ALLOW_UNICODE + >>> a.foo ['/software/temp/foo.txt'] >>> a.foo = ['/software/temp/foo.txt', '/software/temp/goo.txt'] - >>> a.foo # doctest: +ALLOW_UNICODE + >>> a.foo ['/software/temp/foo.txt', '/software/temp/goo.txt'] """ diff --git a/nipype/interfaces/bru2nii.py b/nipype/interfaces/bru2nii.py index d469f8bda6..579b5229b9 100644 --- a/nipype/interfaces/bru2nii.py +++ b/nipype/interfaces/bru2nii.py @@ -42,7 +42,7 @@ class Bru2(CommandLine): >>> from nipype.interfaces.bru2nii import Bru2 >>> converter = Bru2() >>> converter.inputs.input_dir = "brukerdir" - >>> converter.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> converter.cmdline # doctest: +ELLIPSIS 'Bru2 -o .../nipype/testing/data/brukerdir brukerdir' """ input_spec = Bru2InputSpec diff --git a/nipype/interfaces/c3.py b/nipype/interfaces/c3.py index 8288ab3b17..334500874c 100644 --- a/nipype/interfaces/c3.py +++ b/nipype/interfaces/c3.py @@ -38,7 +38,7 @@ class C3dAffineTool(SEMLikeCommandLine): >>> c3.inputs.source_file = 'cmatrix.mat' >>> c3.inputs.itk_transform = 'affine.txt' >>> c3.inputs.fsl2ras = True - >>> c3.cmdline # doctest: +ALLOW_UNICODE + >>> c3.cmdline 'c3d_affine_tool -src cmatrix.mat -fsl2ras -oitk affine.txt' """ input_spec = C3dAffineToolInputSpec diff --git a/nipype/interfaces/dcm2nii.py b/nipype/interfaces/dcm2nii.py index 8379834b81..60c2d33bd1 100644 --- a/nipype/interfaces/dcm2nii.py +++ b/nipype/interfaces/dcm2nii.py @@ -75,7 +75,7 @@ class Dcm2nii(CommandLine): >>> converter.inputs.source_names = ['functional_1.dcm', 'functional_2.dcm'] >>> converter.inputs.gzip_output = True >>> converter.inputs.output_dir = '.' - >>> converter.cmdline # doctest: +ALLOW_UNICODE + >>> converter.cmdline 'dcm2nii -a y -c y -b config.ini -v y -d y -e y -g y -i n -n y -o . -p y -x n -f n functional_1.dcm' """ @@ -250,7 +250,7 @@ class Dcm2niix(CommandLine): 'dcm2niix -b y -z i -x n -t n -m n -f %t%p -o . -s y -v n functional_1.dcm' >>> flags = '-'.join([val.strip() + ' ' for val in sorted(' '.join(converter.cmdline.split()[1:-1]).split('-'))]) - >>> flags # doctest: +ALLOW_UNICODE + >>> flags ' -b y -f %t%p -m n -o . -s y -t n -v n -x n -z i ' """ diff --git a/nipype/interfaces/elastix/registration.py b/nipype/interfaces/elastix/registration.py index 205346ed80..77b868c76c 100644 --- a/nipype/interfaces/elastix/registration.py +++ b/nipype/interfaces/elastix/registration.py @@ -55,7 +55,7 @@ class Registration(CommandLine): >>> reg.inputs.fixed_image = 'fixed1.nii' >>> reg.inputs.moving_image = 'moving1.nii' >>> reg.inputs.parameters = ['elastix.txt'] - >>> reg.cmdline # doctest: +ALLOW_UNICODE + >>> reg.cmdline 'elastix -f fixed1.nii -m moving1.nii -out ./ -p elastix.txt' @@ -147,7 +147,7 @@ class ApplyWarp(CommandLine): >>> reg = ApplyWarp() >>> reg.inputs.moving_image = 'moving1.nii' >>> reg.inputs.transform_file = 'TransformParameters.0.txt' - >>> reg.cmdline # doctest: +ALLOW_UNICODE + >>> reg.cmdline 'transformix -in moving1.nii -out ./ -tp TransformParameters.0.txt' @@ -187,7 +187,7 @@ class AnalyzeWarp(CommandLine): >>> from nipype.interfaces.elastix import AnalyzeWarp >>> reg = AnalyzeWarp() >>> reg.inputs.transform_file = 'TransformParameters.0.txt' - >>> reg.cmdline # doctest: +ALLOW_UNICODE + >>> reg.cmdline 'transformix -def all -jac all -jacmat all -out ./ -tp TransformParameters.0.txt' @@ -228,7 +228,7 @@ class PointsWarp(CommandLine): >>> reg = PointsWarp() >>> reg.inputs.points_file = 'surf1.vtk' >>> reg.inputs.transform_file = 'TransformParameters.0.txt' - >>> reg.cmdline # doctest: +ALLOW_UNICODE + >>> reg.cmdline 'transformix -out ./ -def surf1.vtk -tp TransformParameters.0.txt' diff --git a/nipype/interfaces/freesurfer/longitudinal.py b/nipype/interfaces/freesurfer/longitudinal.py index 1292109060..c5b1872f59 100644 --- a/nipype/interfaces/freesurfer/longitudinal.py +++ b/nipype/interfaces/freesurfer/longitudinal.py @@ -98,22 +98,22 @@ class RobustTemplate(FSCommandOpenMP): >>> template.inputs.fixed_timepoint = True >>> template.inputs.no_iteration = True >>> template.inputs.subsample_threshold = 200 - >>> template.cmdline #doctest: +NORMALIZE_WHITESPACE +ALLOW_UNICODE + >>> template.cmdline #doctest: +NORMALIZE_WHITESPACE 'mri_robust_template --satit --average 0 --fixtp --mov structural.nii functional.nii --inittp 1 --noit --template mri_robust_template_out.mgz --subsample 200' >>> template.inputs.out_file = 'T1.nii' - >>> template.cmdline #doctest: +NORMALIZE_WHITESPACE +ALLOW_UNICODE + >>> template.cmdline #doctest: +NORMALIZE_WHITESPACE 'mri_robust_template --satit --average 0 --fixtp --mov structural.nii functional.nii --inittp 1 --noit --template T1.nii --subsample 200' >>> template.inputs.transform_outputs = ['structural.lta', ... 'functional.lta'] >>> template.inputs.scaled_intensity_outputs = ['structural-iscale.txt', ... 'functional-iscale.txt'] - >>> template.cmdline #doctest: +NORMALIZE_WHITESPACE +ALLOW_UNICODE +ELLIPSIS + >>> template.cmdline #doctest: +NORMALIZE_WHITESPACE +ELLIPSIS 'mri_robust_template --satit --average 0 --fixtp --mov structural.nii functional.nii --inittp 1 --noit --template T1.nii --iscaleout .../structural-iscale.txt .../functional-iscale.txt --subsample 200 --lta .../structural.lta .../functional.lta' >>> template.inputs.transform_outputs = True >>> template.inputs.scaled_intensity_outputs = True - >>> template.cmdline #doctest: +NORMALIZE_WHITESPACE +ALLOW_UNICODE +ELLIPSIS + >>> template.cmdline #doctest: +NORMALIZE_WHITESPACE +ELLIPSIS 'mri_robust_template --satit --average 0 --fixtp --mov structural.nii functional.nii --inittp 1 --noit --template T1.nii --iscaleout .../is1.txt .../is2.txt --subsample 200 --lta .../tp1.lta .../tp2.lta' >>> template.run() #doctest: +SKIP @@ -199,7 +199,7 @@ class FuseSegmentations(FSCommand): >>> fuse.inputs.in_segmentations = ['aseg.mgz', 'aseg.mgz'] >>> fuse.inputs.in_segmentations_noCC = ['aseg.mgz', 'aseg.mgz'] >>> fuse.inputs.in_norms = ['norm.mgz', 'norm.mgz', 'norm.mgz'] - >>> fuse.cmdline # doctest: +ALLOW_UNICODE + >>> fuse.cmdline 'mri_fuse_segmentations -n norm.mgz -a aseg.mgz -c aseg.mgz tp.long.A.template tp1 tp2' """ diff --git a/nipype/interfaces/freesurfer/model.py b/nipype/interfaces/freesurfer/model.py index 007d30ac3c..e2eba23196 100644 --- a/nipype/interfaces/freesurfer/model.py +++ b/nipype/interfaces/freesurfer/model.py @@ -91,7 +91,7 @@ class MRISPreproc(FSCommand): >>> preproc.inputs.vol_measure_file = [('cont1.nii', 'register.dat'), \ ('cont1a.nii', 'register.dat')] >>> preproc.inputs.out_file = 'concatenated_file.mgz' - >>> preproc.cmdline # doctest: +ALLOW_UNICODE + >>> preproc.cmdline 'mris_preproc --hemi lh --out concatenated_file.mgz --target fsaverage --iv cont1.nii register.dat --iv cont1a.nii register.dat' """ @@ -148,7 +148,7 @@ class MRISPreprocReconAll(MRISPreproc): >>> preproc.inputs.vol_measure_file = [('cont1.nii', 'register.dat'), \ ('cont1a.nii', 'register.dat')] >>> preproc.inputs.out_file = 'concatenated_file.mgz' - >>> preproc.cmdline # doctest: +ALLOW_UNICODE + >>> preproc.cmdline 'mris_preproc --hemi lh --out concatenated_file.mgz --s subject_id --target fsaverage --iv cont1.nii register.dat --iv cont1a.nii register.dat' """ @@ -486,7 +486,7 @@ class Binarize(FSCommand): -------- >>> binvol = Binarize(in_file='structural.nii', min=10, binary_file='foo_out.nii') - >>> binvol.cmdline # doctest: +ALLOW_UNICODE + >>> binvol.cmdline 'mri_binarize --o foo_out.nii --i structural.nii --min 10.000000' """ @@ -595,7 +595,7 @@ class Concatenate(FSCommand): >>> concat = Concatenate() >>> concat.inputs.in_files = ['cont1.nii', 'cont2.nii'] >>> concat.inputs.concatenated_file = 'bar.nii' - >>> concat.cmdline # doctest: +ALLOW_UNICODE + >>> concat.cmdline 'mri_concat --o bar.nii --i cont1.nii --i cont2.nii' """ @@ -719,7 +719,7 @@ class SegStats(FSCommand): >>> ss.inputs.subjects_dir = '.' >>> ss.inputs.avgwf_txt_file = 'avgwf.txt' >>> ss.inputs.summary_file = 'summary.stats' - >>> ss.cmdline # doctest: +ALLOW_UNICODE + >>> ss.cmdline 'mri_segstats --annot PWS04 lh aparc --avgwf ./avgwf.txt --i functional.nii --sum ./summary.stats' """ @@ -841,7 +841,7 @@ class SegStatsReconAll(SegStats): >>> segstatsreconall.inputs.total_gray = True >>> segstatsreconall.inputs.euler = True >>> segstatsreconall.inputs.exclude_id = 0 - >>> segstatsreconall.cmdline # doctest: +ALLOW_UNICODE + >>> segstatsreconall.cmdline 'mri_segstats --annot PWS04 lh aparc --avgwf ./avgwf.txt --brain-vol-from-seg --surf-ctx-vol --empty --etiv --euler --excl-ctxgmwm --excludeid 0 --subcortgray --subject 10335 --supratent --totalgray --surf-wm-vol --sum ./summary.stats' """ input_spec = SegStatsReconAllInputSpec @@ -953,7 +953,7 @@ class Label2Vol(FSCommand): -------- >>> binvol = Label2Vol(label_file='cortex.label', template_file='structural.nii', reg_file='register.dat', fill_thresh=0.5, vol_label_file='foo_out.nii') - >>> binvol.cmdline # doctest: +ALLOW_UNICODE + >>> binvol.cmdline 'mri_label2vol --fillthresh 0 --label cortex.label --reg register.dat --temp structural.nii --o foo_out.nii' """ @@ -1032,7 +1032,7 @@ class MS_LDA(FSCommand): shift=zero_value, vol_synth_file='synth_out.mgz', \ conform=True, use_weights=True, \ images=['FLASH1.mgz', 'FLASH2.mgz', 'FLASH3.mgz']) - >>> optimalWeights.cmdline # doctest: +ALLOW_UNICODE + >>> optimalWeights.cmdline 'mri_ms_LDA -conform -label label.mgz -lda 2 3 -shift 1 -W -synth synth_out.mgz -weight weights.txt FLASH1.mgz FLASH2.mgz FLASH3.mgz' """ @@ -1124,7 +1124,7 @@ class Label2Label(FSCommand): >>> l2l.inputs.source_label = 'lh-pial.stl' >>> l2l.inputs.source_white = 'lh.pial' >>> l2l.inputs.source_sphere_reg = 'lh.pial' - >>> l2l.cmdline # doctest: +ALLOW_UNICODE + >>> l2l.cmdline 'mri_label2label --hemi lh --trglabel lh-pial_converted.stl --regmethod surface --srclabel lh-pial.stl --srcsubject fsaverage --trgsubject 10335' """ @@ -1208,7 +1208,7 @@ class Label2Annot(FSCommand): >>> l2a.inputs.in_labels = ['lh.aparc.label'] >>> l2a.inputs.orig = 'lh.pial' >>> l2a.inputs.out_annot = 'test' - >>> l2a.cmdline # doctest: +ALLOW_UNICODE + >>> l2a.cmdline 'mris_label2annot --hemi lh --l lh.aparc.label --a test --s 10335' """ @@ -1289,7 +1289,7 @@ class SphericalAverage(FSCommand): >>> sphericalavg.inputs.subject_id = '10335' >>> sphericalavg.inputs.erode = 2 >>> sphericalavg.inputs.threshold = 5 - >>> sphericalavg.cmdline # doctest: +ALLOW_UNICODE + >>> sphericalavg.cmdline 'mris_spherical_average -erode 2 -o 10335 -t 5.0 label lh.entorhinal lh pial . test.out' """ diff --git a/nipype/interfaces/freesurfer/preprocess.py b/nipype/interfaces/freesurfer/preprocess.py index 5f39f1cc94..89d2cf4b4b 100644 --- a/nipype/interfaces/freesurfer/preprocess.py +++ b/nipype/interfaces/freesurfer/preprocess.py @@ -67,7 +67,7 @@ class ParseDICOMDir(FSCommand): >>> dcminfo.inputs.dicom_dir = '.' >>> dcminfo.inputs.sortbyrun = True >>> dcminfo.inputs.summarize = True - >>> dcminfo.cmdline # doctest: +ALLOW_UNICODE + >>> dcminfo.cmdline 'mri_parse_sdcmdir --d . --o dicominfo.txt --sortbyrun --summarize' """ @@ -131,7 +131,7 @@ class UnpackSDICOMDir(FSCommand): >>> unpack.inputs.output_dir = '.' >>> unpack.inputs.run_info = (5, 'mprage', 'nii', 'struct') >>> unpack.inputs.dir_structure = 'generic' - >>> unpack.cmdline # doctest: +ALLOW_UNICODE + >>> unpack.cmdline 'unpacksdcmdir -generic -targ . -run 5 mprage nii struct -src .' """ _cmd = 'unpacksdcmdir' @@ -353,7 +353,7 @@ class MRIConvert(FSCommand): >>> mc.inputs.in_file = 'structural.nii' >>> mc.inputs.out_file = 'outfile.mgz' >>> mc.inputs.out_type = 'mgz' - >>> mc.cmdline # doctest: +ALLOW_UNICODE + >>> mc.cmdline 'mri_convert --out_type mgz --input_volume structural.nii --output_volume outfile.mgz' """ @@ -579,7 +579,7 @@ class Resample(FSCommand): >>> resampler.inputs.in_file = 'structural.nii' >>> resampler.inputs.resampled_file = 'resampled.nii' >>> resampler.inputs.voxel_size = (2.1, 2.1, 2.1) - >>> resampler.cmdline # doctest: +ALLOW_UNICODE + >>> resampler.cmdline 'mri_convert -vs 2.10 2.10 2.10 -i structural.nii -o resampled.nii' """ @@ -709,27 +709,27 @@ class ReconAll(CommandLine): >>> reconall.inputs.directive = 'all' >>> reconall.inputs.subjects_dir = '.' >>> reconall.inputs.T1_files = 'structural.nii' - >>> reconall.cmdline # doctest: +ALLOW_UNICODE + >>> reconall.cmdline 'recon-all -all -i structural.nii -subjid foo -sd .' >>> reconall.inputs.flags = "-qcache" - >>> reconall.cmdline # doctest: +ALLOW_UNICODE + >>> reconall.cmdline 'recon-all -all -i structural.nii -qcache -subjid foo -sd .' >>> reconall.inputs.flags = ["-cw256", "-qcache"] - >>> reconall.cmdline # doctest: +ALLOW_UNICODE + >>> reconall.cmdline 'recon-all -all -i structural.nii -cw256 -qcache -subjid foo -sd .' Hemisphere may be specified regardless of directive: >>> reconall.inputs.flags = [] >>> reconall.inputs.hemi = 'lh' - >>> reconall.cmdline # doctest: +ALLOW_UNICODE + >>> reconall.cmdline 'recon-all -all -i structural.nii -hemi lh -subjid foo -sd .' ``-autorecon-hemi`` uses the ``-hemi`` input to specify the hemisphere to operate upon: >>> reconall.inputs.directive = 'autorecon-hemi' - >>> reconall.cmdline # doctest: +ALLOW_UNICODE + >>> reconall.cmdline 'recon-all -autorecon-hemi lh -i structural.nii -subjid foo -sd .' Hippocampal subfields can accept T1 and T2 images: @@ -740,14 +740,14 @@ class ReconAll(CommandLine): >>> reconall_subfields.inputs.subjects_dir = '.' >>> reconall_subfields.inputs.T1_files = 'structural.nii' >>> reconall_subfields.inputs.hippocampal_subfields_T1 = True - >>> reconall_subfields.cmdline # doctest: +ALLOW_UNICODE + >>> reconall_subfields.cmdline 'recon-all -all -i structural.nii -hippocampal-subfields-T1 -subjid foo -sd .' >>> reconall_subfields.inputs.hippocampal_subfields_T2 = ( ... 'structural.nii', 'test') - >>> reconall_subfields.cmdline # doctest: +ALLOW_UNICODE + >>> reconall_subfields.cmdline 'recon-all -all -i structural.nii -hippocampal-subfields-T1T2 structural.nii test -subjid foo -sd .' >>> reconall_subfields.inputs.hippocampal_subfields_T1 = False - >>> reconall_subfields.cmdline # doctest: +ALLOW_UNICODE + >>> reconall_subfields.cmdline 'recon-all -all -i structural.nii -hippocampal-subfields-T2 structural.nii test -subjid foo -sd .' """ @@ -1193,7 +1193,7 @@ class BBRegister(FSCommand): >>> from nipype.interfaces.freesurfer import BBRegister >>> bbreg = BBRegister(subject_id='me', source_file='structural.nii', init='header', contrast_type='t2') - >>> bbreg.cmdline # doctest: +ALLOW_UNICODE + >>> bbreg.cmdline 'bbregister --t2 --init-header --reg structural_bbreg_me.dat --mov structural.nii --s me' """ @@ -1351,7 +1351,7 @@ class ApplyVolTransform(FSCommand): >>> applyreg.inputs.reg_file = 'register.dat' >>> applyreg.inputs.transformed_file = 'struct_warped.nii' >>> applyreg.inputs.fs_target = True - >>> applyreg.cmdline # doctest: +ALLOW_UNICODE + >>> applyreg.cmdline 'mri_vol2vol --fstarg --reg register.dat --mov structural.nii --o struct_warped.nii' """ @@ -1431,7 +1431,7 @@ class Smooth(FSCommand): >>> from nipype.interfaces.freesurfer import Smooth >>> smoothvol = Smooth(in_file='functional.nii', smoothed_file = 'foo_out.nii', reg_file='register.dat', surface_fwhm=10, vol_fwhm=6) - >>> smoothvol.cmdline # doctest: +ALLOW_UNICODE + >>> smoothvol.cmdline 'mris_volsmooth --i functional.nii --reg register.dat --o foo_out.nii --fwhm 10.000000 --vol-fwhm 6.000000' """ @@ -1562,7 +1562,7 @@ class RobustRegister(FSCommand): >>> reg.inputs.target_file = 'T1.nii' >>> reg.inputs.auto_sens = True >>> reg.inputs.init_orient = True - >>> reg.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS + >>> reg.cmdline +ELLIPSIS 'mri_robust_register --satit --initorient --lta .../structural_robustreg.lta --mov structural.nii --dst T1.nii' References @@ -1639,7 +1639,7 @@ class FitMSParams(FSCommand): >>> msfit = FitMSParams() >>> msfit.inputs.in_files = ['flash_05.mgz', 'flash_30.mgz'] >>> msfit.inputs.out_dir = 'flash_parameters' - >>> msfit.cmdline # doctest: +ALLOW_UNICODE + >>> msfit.cmdline 'mri_ms_fitparms flash_05.mgz flash_30.mgz flash_parameters' """ @@ -1712,7 +1712,7 @@ class SynthesizeFLASH(FSCommand): >>> syn.inputs.t1_image = 'T1.mgz' >>> syn.inputs.pd_image = 'PD.mgz' >>> syn.inputs.out_file = 'flash_30syn.mgz' - >>> syn.cmdline # doctest: +ALLOW_UNICODE + >>> syn.cmdline 'mri_synthesize 20.00 30.00 3.000 T1.mgz PD.mgz flash_30syn.mgz' """ @@ -1785,7 +1785,7 @@ class MNIBiasCorrection(FSCommand): >>> correct.inputs.iterations = 6 >>> correct.inputs.protocol_iterations = 1000 >>> correct.inputs.distance = 50 - >>> correct.cmdline # doctest: +ALLOW_UNICODE + >>> correct.cmdline 'mri_nu_correct.mni --distance 50 --i norm.mgz --n 6 --o norm_output.mgz --proto-iters 1000' References: @@ -1842,7 +1842,7 @@ class WatershedSkullStrip(FSCommand): >>> skullstrip.inputs.t1 = True >>> skullstrip.inputs.transform = "transforms/talairach_with_skull.lta" >>> skullstrip.inputs.out_file = "brainmask.auto.mgz" - >>> skullstrip.cmdline # doctest: +ALLOW_UNICODE + >>> skullstrip.cmdline 'mri_watershed -T1 transforms/talairach_with_skull.lta T1.mgz brainmask.auto.mgz' """ _cmd = 'mri_watershed' @@ -1890,7 +1890,7 @@ class Normalize(FSCommand): >>> normalize = freesurfer.Normalize() >>> normalize.inputs.in_file = "T1.mgz" >>> normalize.inputs.gradient = 1 - >>> normalize.cmdline # doctest: +ALLOW_UNICODE + >>> normalize.cmdline 'mri_normalize -g 1 T1.mgz T1_norm.mgz' """ _cmd = "mri_normalize" @@ -1942,7 +1942,7 @@ class CANormalize(FSCommand): >>> ca_normalize.inputs.in_file = "T1.mgz" >>> ca_normalize.inputs.atlas = "atlas.nii.gz" # in practice use .gca atlases >>> ca_normalize.inputs.transform = "trans.mat" # in practice use .lta transforms - >>> ca_normalize.cmdline # doctest: +ALLOW_UNICODE + >>> ca_normalize.cmdline 'mri_ca_normalize T1.mgz atlas.nii.gz trans.mat T1_norm.mgz' """ _cmd = "mri_ca_normalize" @@ -2000,7 +2000,7 @@ class CARegister(FSCommandOpenMP): >>> ca_register = freesurfer.CARegister() >>> ca_register.inputs.in_file = "norm.mgz" >>> ca_register.inputs.out_file = "talairach.m3z" - >>> ca_register.cmdline # doctest: +ALLOW_UNICODE + >>> ca_register.cmdline 'mri_ca_register norm.mgz talairach.m3z' """ _cmd = "mri_ca_register" @@ -2071,7 +2071,7 @@ class CALabel(FSCommandOpenMP): >>> ca_label.inputs.out_file = "out.mgz" >>> ca_label.inputs.transform = "trans.mat" >>> ca_label.inputs.template = "Template_6.nii" # in practice use .gcs extension - >>> ca_label.cmdline # doctest: +ALLOW_UNICODE + >>> ca_label.cmdline 'mri_ca_label norm.mgz trans.mat Template_6.nii out.mgz' """ _cmd = "mri_ca_label" @@ -2145,7 +2145,7 @@ class MRIsCALabel(FSCommandOpenMP): >>> ca_label.inputs.sulc = "lh.pial" >>> ca_label.inputs.classifier = "im1.nii" # in pracice, use .gcs extension >>> ca_label.inputs.smoothwm = "lh.pial" - >>> ca_label.cmdline # doctest: +ALLOW_UNICODE + >>> ca_label.cmdline 'mris_ca_label test lh lh.pial im1.nii lh.aparc.annot' """ _cmd = "mris_ca_label" @@ -2231,7 +2231,7 @@ class SegmentCC(FSCommand): >>> SegmentCC_node.inputs.in_norm = "norm.mgz" >>> SegmentCC_node.inputs.out_rotation = "cc.lta" >>> SegmentCC_node.inputs.subject_id = "test" - >>> SegmentCC_node.cmdline # doctest: +ALLOW_UNICODE + >>> SegmentCC_node.cmdline 'mri_cc -aseg aseg.mgz -o aseg.auto.mgz -lta cc.lta test' """ @@ -2322,7 +2322,7 @@ class SegmentWM(FSCommand): >>> SegmentWM_node = freesurfer.SegmentWM() >>> SegmentWM_node.inputs.in_file = "norm.mgz" >>> SegmentWM_node.inputs.out_file = "wm.seg.mgz" - >>> SegmentWM_node.cmdline # doctest: +ALLOW_UNICODE + >>> SegmentWM_node.cmdline 'mri_segment norm.mgz wm.seg.mgz' """ @@ -2366,7 +2366,7 @@ class EditWMwithAseg(FSCommand): >>> editwm.inputs.seg_file = "aseg.mgz" >>> editwm.inputs.out_file = "wm.asegedit.mgz" >>> editwm.inputs.keep_in = True - >>> editwm.cmdline # doctest: +ALLOW_UNICODE + >>> editwm.cmdline 'mri_edit_wm_with_aseg -keep-in T1.mgz norm.mgz aseg.mgz wm.asegedit.mgz' """ _cmd = 'mri_edit_wm_with_aseg' @@ -2433,7 +2433,7 @@ class ConcatenateLTA(FSCommand): >>> conc_lta = ConcatenateLTA() >>> conc_lta.inputs.in_lta1 = 'lta1.lta' >>> conc_lta.inputs.in_lta2 = 'lta2.lta' - >>> conc_lta.cmdline # doctest: +ALLOW_UNICODE + >>> conc_lta.cmdline 'mri_concatenate_lta lta1.lta lta2.lta lta1_concat.lta' You can use 'identity.nofile' as the filename for in_lta2, e.g.: @@ -2441,13 +2441,13 @@ class ConcatenateLTA(FSCommand): >>> conc_lta.inputs.in_lta2 = 'identity.nofile' >>> conc_lta.inputs.invert_1 = True >>> conc_lta.inputs.out_file = 'inv1.lta' - >>> conc_lta.cmdline # doctest: +ALLOW_UNICODE + >>> conc_lta.cmdline 'mri_concatenate_lta -invert1 lta1.lta identity.nofile inv1.lta' To create a RAS2RAS transform: >>> conc_lta.inputs.out_type = 'RAS2RAS' - >>> conc_lta.cmdline # doctest: +ALLOW_UNICODE + >>> conc_lta.cmdline 'mri_concatenate_lta -invert1 -out_type 1 lta1.lta identity.nofile inv1.lta' """ diff --git a/nipype/interfaces/freesurfer/registration.py b/nipype/interfaces/freesurfer/registration.py index 72a3fdb0ee..0c431ce460 100644 --- a/nipype/interfaces/freesurfer/registration.py +++ b/nipype/interfaces/freesurfer/registration.py @@ -204,7 +204,7 @@ class EMRegister(FSCommandOpenMP): >>> register.inputs.out_file = 'norm_transform.lta' >>> register.inputs.skull = True >>> register.inputs.nbrspacing = 9 - >>> register.cmdline # doctest: +ALLOW_UNICODE + >>> register.cmdline 'mri_em_register -uns 9 -skull norm.mgz aseg.mgz norm_transform.lta' """ _cmd = 'mri_em_register' @@ -254,7 +254,7 @@ class Register(FSCommand): >>> register.inputs.target = 'aseg.mgz' >>> register.inputs.out_file = 'lh.pial.reg' >>> register.inputs.curv = True - >>> register.cmdline # doctest: +ALLOW_UNICODE + >>> register.cmdline 'mris_register -curv lh.pial aseg.mgz lh.pial.reg' """ @@ -320,7 +320,7 @@ class Paint(FSCommand): >>> paint.inputs.template = 'aseg.mgz' >>> paint.inputs.averages = 5 >>> paint.inputs.out_file = 'lh.avg_curv' - >>> paint.cmdline # doctest: +ALLOW_UNICODE + >>> paint.cmdline 'mrisp_paint -a 5 aseg.mgz lh.pial lh.avg_curv' """ @@ -437,7 +437,7 @@ class MRICoreg(FSCommand): >>> coreg.inputs.source_file = 'moving1.nii' >>> coreg.inputs.reference_file = 'fixed1.nii' >>> coreg.inputs.subjects_dir = '.' - >>> coreg.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS + >>> coreg.cmdline +ELLIPSIS 'mri_coreg --lta .../registration.lta --ref fixed1.nii --mov moving1.nii --sd .' If passing a subject ID, the reference mask may be disabled: @@ -447,17 +447,17 @@ class MRICoreg(FSCommand): >>> coreg.inputs.subjects_dir = '.' >>> coreg.inputs.subject_id = 'fsaverage' >>> coreg.inputs.reference_mask = False - >>> coreg.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS + >>> coreg.cmdline +ELLIPSIS 'mri_coreg --s fsaverage --no-ref-mask --lta .../registration.lta --mov moving1.nii --sd .' Spatial scales may be specified as a list of one or two separations: >>> coreg.inputs.sep = [4] - >>> coreg.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS + >>> coreg.cmdline +ELLIPSIS 'mri_coreg --s fsaverage --no-ref-mask --lta .../registration.lta --sep 4 --mov moving1.nii --sd .' >>> coreg.inputs.sep = [4, 5] - >>> coreg.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS + >>> coreg.cmdline +ELLIPSIS 'mri_coreg --s fsaverage --no-ref-mask --lta .../registration.lta --sep 4 --sep 5 --mov moving1.nii --sd .' """ diff --git a/nipype/interfaces/freesurfer/utils.py b/nipype/interfaces/freesurfer/utils.py index e71edb3e5c..b5cd404b30 100644 --- a/nipype/interfaces/freesurfer/utils.py +++ b/nipype/interfaces/freesurfer/utils.py @@ -196,7 +196,7 @@ class SampleToSurface(FSCommand): >>> sampler.inputs.sampling_method = "average" >>> sampler.inputs.sampling_range = 1 >>> sampler.inputs.sampling_units = "frac" - >>> sampler.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> sampler.cmdline # doctest: +ELLIPSIS 'mri_vol2surf --hemi lh --o ...lh.cope1.mgz --reg register.dat --projfrac-avg 1.000 --mov cope1.nii.gz' >>> res = sampler.run() # doctest: +SKIP @@ -326,7 +326,7 @@ class SurfaceSmooth(FSCommand): >>> smoother.inputs.subject_id = "subj_1" >>> smoother.inputs.hemi = "lh" >>> smoother.inputs.fwhm = 5 - >>> smoother.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> smoother.cmdline # doctest: +ELLIPSIS 'mri_surf2surf --cortex --fwhm 5.0000 --hemi lh --sval lh.cope1.mgz --tval ...lh.cope1_smooth5.mgz --s subj_1' >>> smoother.run() # doctest: +SKIP @@ -518,7 +518,7 @@ class Surface2VolTransform(FSCommand): >>> xfm2vol.inputs.hemi = 'lh' >>> xfm2vol.inputs.template_file = 'cope1.nii.gz' >>> xfm2vol.inputs.subjects_dir = '.' - >>> xfm2vol.cmdline # doctest: +ALLOW_UNICODE + >>> xfm2vol.cmdline 'mri_surf2vol --hemi lh --volreg register.mat --surfval lh.cope1.mgz --sd . --template cope1.nii.gz --outvol lh.cope1_asVol.nii --vtxvol lh.cope1_asVol_vertex.nii' >>> res = xfm2vol.run()# doctest: +SKIP @@ -995,7 +995,7 @@ class MRIsCombine(FSSurfaceCommand): >>> mris = fs.MRIsCombine() >>> mris.inputs.in_files = ['lh.pial', 'rh.pial'] >>> mris.inputs.out_file = 'bh.pial' - >>> mris.cmdline # doctest: +ALLOW_UNICODE + >>> mris.cmdline 'mris_convert --combinesurfs lh.pial rh.pial bh.pial' >>> mris.run() # doctest: +SKIP """ @@ -1124,7 +1124,7 @@ class MRIPretess(FSCommand): >>> pretess.inputs.in_filled = 'wm.mgz' >>> pretess.inputs.in_norm = 'norm.mgz' >>> pretess.inputs.nocorners = True - >>> pretess.cmdline # doctest: +ALLOW_UNICODE + >>> pretess.cmdline 'mri_pretess -nocorners wm.mgz wm norm.mgz wm_pretesswm.mgz' >>> pretess.run() # doctest: +SKIP @@ -1294,7 +1294,7 @@ class MakeAverageSubject(FSCommand): >>> from nipype.interfaces.freesurfer import MakeAverageSubject >>> avg = MakeAverageSubject(subjects_ids=['s1', 's2']) - >>> avg.cmdline # doctest: +ALLOW_UNICODE + >>> avg.cmdline 'make_average_subject --out average --subjects s1 s2' """ @@ -1329,7 +1329,7 @@ class ExtractMainComponent(CommandLine): >>> from nipype.interfaces.freesurfer import ExtractMainComponent >>> mcmp = ExtractMainComponent(in_file='lh.pial') - >>> mcmp.cmdline # doctest: +ALLOW_UNICODE + >>> mcmp.cmdline 'mris_extract_main_component lh.pial lh.maincmp' """ @@ -1404,7 +1404,7 @@ class Tkregister2(FSCommand): >>> tk2.inputs.moving_image = 'T1.mgz' >>> tk2.inputs.target_image = 'structural.nii' >>> tk2.inputs.reg_header = True - >>> tk2.cmdline # doctest: +ALLOW_UNICODE + >>> tk2.cmdline 'tkregister2 --mov T1.mgz --noedit --reg T1_to_native.dat --regheader \ --targ structural.nii' >>> tk2.run() # doctest: +SKIP @@ -1417,7 +1417,7 @@ class Tkregister2(FSCommand): >>> tk2 = Tkregister2() >>> tk2.inputs.moving_image = 'epi.nii' >>> tk2.inputs.fsl_in_matrix = 'flirt.mat' - >>> tk2.cmdline # doctest: +ALLOW_UNICODE + >>> tk2.cmdline 'tkregister2 --fsl flirt.mat --mov epi.nii --noedit --reg register.dat' >>> tk2.run() # doctest: +SKIP """ @@ -1494,11 +1494,11 @@ class AddXFormToHeader(FSCommand): >>> adder = AddXFormToHeader() >>> adder.inputs.in_file = 'norm.mgz' >>> adder.inputs.transform = 'trans.mat' - >>> adder.cmdline # doctest: +ALLOW_UNICODE + >>> adder.cmdline 'mri_add_xform_to_header trans.mat norm.mgz output.mgz' >>> adder.inputs.copy_name = True - >>> adder.cmdline # doctest: +ALLOW_UNICODE + >>> adder.cmdline 'mri_add_xform_to_header -c trans.mat norm.mgz output.mgz' >>> adder.run() # doctest: +SKIP @@ -1552,7 +1552,7 @@ class CheckTalairachAlignment(FSCommand): >>> checker.inputs.in_file = 'trans.mat' >>> checker.inputs.threshold = 0.005 - >>> checker.cmdline # doctest: +ALLOW_UNICODE + >>> checker.cmdline 'talairach_afd -T 0.005 -xfm trans.mat' >>> checker.run() # doctest: +SKIP @@ -1601,7 +1601,7 @@ class TalairachAVI(FSCommand): >>> example = TalairachAVI() >>> example.inputs.in_file = 'norm.mgz' >>> example.inputs.out_file = 'trans.mat' - >>> example.cmdline # doctest: +ALLOW_UNICODE + >>> example.cmdline 'talairach_avi --i norm.mgz --xfm trans.mat' >>> example.run() # doctest: +SKIP @@ -1632,7 +1632,7 @@ class TalairachQC(FSScriptCommand): >>> from nipype.interfaces.freesurfer import TalairachQC >>> qc = TalairachQC() >>> qc.inputs.log_file = 'dirs.txt' - >>> qc.cmdline # doctest: +ALLOW_UNICODE + >>> qc.cmdline 'tal_QC_AZS dirs.txt' """ _cmd = "tal_QC_AZS" @@ -1671,7 +1671,7 @@ class RemoveNeck(FSCommand): >>> remove_neck.inputs.in_file = 'norm.mgz' >>> remove_neck.inputs.transform = 'trans.mat' >>> remove_neck.inputs.template = 'trans.mat' - >>> remove_neck.cmdline # doctest: +ALLOW_UNICODE + >>> remove_neck.cmdline 'mri_remove_neck norm.mgz trans.mat trans.mat norm_noneck.mgz' """ _cmd = "mri_remove_neck" @@ -1811,7 +1811,7 @@ class Sphere(FSCommandOpenMP): >>> from nipype.interfaces.freesurfer import Sphere >>> sphere = Sphere() >>> sphere.inputs.in_file = 'lh.pial' - >>> sphere.cmdline # doctest: +ALLOW_UNICODE + >>> sphere.cmdline 'mris_sphere lh.pial lh.sphere' """ _cmd = 'mris_sphere' @@ -1935,7 +1935,7 @@ class EulerNumber(FSCommand): >>> from nipype.interfaces.freesurfer import EulerNumber >>> ft = EulerNumber() >>> ft.inputs.in_file = 'lh.pial' - >>> ft.cmdline # doctest: +ALLOW_UNICODE + >>> ft.cmdline 'mris_euler_number lh.pial' """ _cmd = 'mris_euler_number' @@ -1971,7 +1971,7 @@ class RemoveIntersection(FSCommand): >>> from nipype.interfaces.freesurfer import RemoveIntersection >>> ri = RemoveIntersection() >>> ri.inputs.in_file = 'lh.pial' - >>> ri.cmdline # doctest: +ALLOW_UNICODE + >>> ri.cmdline 'mris_remove_intersection lh.pial lh.pial' """ @@ -2067,7 +2067,7 @@ class MakeSurfaces(FSCommand): >>> makesurfaces.inputs.in_label = 'aparc+aseg.nii' >>> makesurfaces.inputs.in_T1 = 'T1.mgz' >>> makesurfaces.inputs.orig_pial = 'lh.pial' - >>> makesurfaces.cmdline # doctest: +ALLOW_UNICODE + >>> makesurfaces.cmdline 'mris_make_surfaces -T1 T1.mgz -orig pial -orig_pial pial 10335 lh' """ @@ -2200,7 +2200,7 @@ class Curvature(FSCommand): >>> curv = Curvature() >>> curv.inputs.in_file = 'lh.pial' >>> curv.inputs.save = True - >>> curv.cmdline # doctest: +ALLOW_UNICODE + >>> curv.cmdline 'mris_curvature -w lh.pial' """ @@ -2294,7 +2294,7 @@ class CurvatureStats(FSCommand): >>> curvstats.inputs.values = True >>> curvstats.inputs.min_max = True >>> curvstats.inputs.write = True - >>> curvstats.cmdline # doctest: +ALLOW_UNICODE + >>> curvstats.cmdline 'mris_curvature_stats -m -o lh.curv.stats -F pial -G --writeCurvatureFiles subject_id lh pial pial' """ @@ -2351,7 +2351,7 @@ class Jacobian(FSCommand): >>> jacobian = Jacobian() >>> jacobian.inputs.in_origsurf = 'lh.pial' >>> jacobian.inputs.in_mappedsurf = 'lh.pial' - >>> jacobian.cmdline # doctest: +ALLOW_UNICODE + >>> jacobian.cmdline 'mris_jacobian lh.pial lh.pial lh.jacobian' """ @@ -2488,7 +2488,7 @@ class VolumeMask(FSCommand): >>> volmask.inputs.rh_white = 'lh.pial' >>> volmask.inputs.subject_id = '10335' >>> volmask.inputs.save_ribbon = True - >>> volmask.cmdline # doctest: +ALLOW_UNICODE + >>> volmask.cmdline 'mris_volmask --label_left_ribbon 3 --label_left_white 2 --label_right_ribbon 42 --label_right_white 41 --save_ribbon 10335' """ @@ -2828,7 +2828,7 @@ class RelabelHypointensities(FSCommand): >>> relabelhypos.inputs.rh_white = 'lh.pial' >>> relabelhypos.inputs.surf_directory = '.' >>> relabelhypos.inputs.aseg = 'aseg.mgz' - >>> relabelhypos.cmdline # doctest: +ALLOW_UNICODE + >>> relabelhypos.cmdline 'mri_relabel_hypointensities aseg.mgz . aseg.hypos.mgz' """ @@ -2999,7 +2999,7 @@ class Apas2Aseg(FSCommand): >>> apas2aseg = Apas2Aseg() >>> apas2aseg.inputs.in_file = 'aseg.mgz' >>> apas2aseg.inputs.out_file = 'output.mgz' - >>> apas2aseg.cmdline # doctest: +ALLOW_UNICODE + >>> apas2aseg.cmdline 'apas2aseg --i aseg.mgz --o output.mgz' """ @@ -3081,10 +3081,10 @@ class MRIsExpand(FSSurfaceCommand): >>> from nipype.interfaces.freesurfer import MRIsExpand >>> mris_expand = MRIsExpand(thickness=True, distance=0.5) >>> mris_expand.inputs.in_file = 'lh.white' - >>> mris_expand.cmdline # doctest: +ALLOW_UNICODE + >>> mris_expand.cmdline 'mris_expand -thickness lh.white 0.5 expanded' >>> mris_expand.inputs.out_name = 'graymid' - >>> mris_expand.cmdline # doctest: +ALLOW_UNICODE + >>> mris_expand.cmdline 'mris_expand -thickness lh.white 0.5 graymid' """ _cmd = 'mris_expand' diff --git a/nipype/interfaces/fsl/aroma.py b/nipype/interfaces/fsl/aroma.py index 02df37d9a2..fb8dc82bd8 100644 --- a/nipype/interfaces/fsl/aroma.py +++ b/nipype/interfaces/fsl/aroma.py @@ -95,7 +95,7 @@ class ICA_AROMA(CommandLine): >>> AROMA_obj.inputs.mask = 'mask.nii.gz' >>> AROMA_obj.inputs.denoise_type = 'both' >>> AROMA_obj.inputs.out_dir = 'ICA_testout' - >>> AROMA_obj.cmdline # doctest: +ALLOW_UNICODE + >>> AROMA_obj.cmdline 'ICA_AROMA.py -den both -warp warpfield.nii -i functional.nii -m mask.nii.gz -affmat func_to_struct.mat -mc fsl_mcflirt_movpar.txt -o ICA_testout' """ _cmd = 'ICA_AROMA.py' diff --git a/nipype/interfaces/fsl/dti.py b/nipype/interfaces/fsl/dti.py index 9d74a3fafe..812515fcda 100644 --- a/nipype/interfaces/fsl/dti.py +++ b/nipype/interfaces/fsl/dti.py @@ -85,7 +85,7 @@ class DTIFit(FSLCommand): >>> dti.inputs.bvals = 'bvals' >>> dti.inputs.base_name = 'TP' >>> dti.inputs.mask = 'mask.nii' - >>> dti.cmdline # doctest: +ALLOW_UNICODE + >>> dti.cmdline 'dtifit -k diffusion.nii -o TP -m mask.nii -r bvecs -b bvals' """ @@ -327,7 +327,7 @@ class BEDPOSTX5(FSLXCommand): >>> from nipype.interfaces import fsl >>> bedp = fsl.BEDPOSTX5(bvecs='bvecs', bvals='bvals', dwi='diffusion.nii', ... mask='mask.nii', n_fibres=1) - >>> bedp.cmdline # doctest: +ALLOW_UNICODE + >>> bedp.cmdline 'bedpostx bedpostx --forcedir -n 1' """ @@ -583,7 +583,7 @@ class ProbTrackX(FSLCommand): target_masks = ['targets_MASK1.nii', 'targets_MASK2.nii'], \ thsamples='merged_thsamples.nii', fsamples='merged_fsamples.nii', phsamples='merged_phsamples.nii', \ out_dir='.') - >>> pbx.cmdline # doctest: +ALLOW_UNICODE + >>> pbx.cmdline 'probtrackx --forcedir -m mask.nii --mode=seedmask --nsamples=3 --nsteps=10 --opd --os2t --dir=. --samples=merged --seed=MASK_average_thal_right.nii --targetmasks=targets.txt --xfm=trans.mat' """ @@ -780,7 +780,7 @@ class ProbTrackX2(ProbTrackX): >>> pbx2.inputs.out_dir = '.' >>> pbx2.inputs.n_samples = 3 >>> pbx2.inputs.n_steps = 10 - >>> pbx2.cmdline # doctest: +ALLOW_UNICODE + >>> pbx2.cmdline 'probtrackx2 --forcedir -m nodif_brain_mask.nii.gz --nsamples=3 --nsteps=10 --opd --dir=. --samples=merged --seed=seed_source.nii.gz' """ _cmd = 'probtrackx2' @@ -871,7 +871,7 @@ class VecReg(FSLCommand): affine_mat='trans.mat', \ ref_vol='mni.nii', \ out_file='diffusion_vreg.nii') - >>> vreg.cmdline # doctest: +ALLOW_UNICODE + >>> vreg.cmdline 'vecreg -t trans.mat -i diffusion.nii -o diffusion_vreg.nii -r mni.nii' """ @@ -932,7 +932,7 @@ class ProjThresh(FSLCommand): >>> from nipype.interfaces import fsl >>> ldir = ['seeds_to_M1.nii', 'seeds_to_M2.nii'] >>> pThresh = fsl.ProjThresh(in_files=ldir, threshold=3) - >>> pThresh.cmdline # doctest: +ALLOW_UNICODE + >>> pThresh.cmdline 'proj_thresh seeds_to_M1.nii seeds_to_M2.nii 3' """ @@ -980,7 +980,7 @@ class FindTheBiggest(FSLCommand): >>> from nipype.interfaces import fsl >>> ldir = ['seeds_to_M1.nii', 'seeds_to_M2.nii'] >>> fBig = fsl.FindTheBiggest(in_files=ldir, out_file='biggestSegmentation') - >>> fBig.cmdline # doctest: +ALLOW_UNICODE + >>> fBig.cmdline 'find_the_biggest seeds_to_M1.nii seeds_to_M2.nii biggestSegmentation' """ diff --git a/nipype/interfaces/fsl/epi.py b/nipype/interfaces/fsl/epi.py index 5978ee492d..0beb60b3c0 100644 --- a/nipype/interfaces/fsl/epi.py +++ b/nipype/interfaces/fsl/epi.py @@ -71,7 +71,7 @@ class PrepareFieldmap(FSLCommand): >>> prepare.inputs.in_phase = "phase.nii" >>> prepare.inputs.in_magnitude = "magnitude.nii" >>> prepare.inputs.output_type = "NIFTI_GZ" - >>> prepare.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> prepare.cmdline # doctest: +ELLIPSIS 'fsl_prepare_fieldmap SIEMENS phase.nii magnitude.nii \ .../phase_fslprepared.nii.gz 2.460000' >>> res = prepare.run() # doctest: +SKIP @@ -247,7 +247,7 @@ class TOPUP(FSLCommand): >>> topup.inputs.in_file = "b0_b0rev.nii" >>> topup.inputs.encoding_file = "topup_encoding.txt" >>> topup.inputs.output_type = "NIFTI_GZ" - >>> topup.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> topup.cmdline # doctest: +ELLIPSIS 'topup --config=b02b0.cnf --datain=topup_encoding.txt \ --imain=b0_b0rev.nii --out=b0_b0rev_base --iout=b0_b0rev_corrected.nii.gz \ --fout=b0_b0rev_field.nii.gz --jacout=jac --logout=b0_b0rev_topup.log \ @@ -389,7 +389,7 @@ class ApplyTOPUP(FSLCommand): >>> applytopup.inputs.in_topup_fieldcoef = "topup_fieldcoef.nii.gz" >>> applytopup.inputs.in_topup_movpar = "topup_movpar.txt" >>> applytopup.inputs.output_type = "NIFTI_GZ" - >>> applytopup.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> applytopup.cmdline # doctest: +ELLIPSIS 'applytopup --datain=topup_encoding.txt --imain=epi.nii,epi_rev.nii \ --inindex=1,2 --topup=topup --out=epi_corrected.nii.gz' >>> res = applytopup.run() # doctest: +SKIP @@ -545,12 +545,12 @@ class Eddy(FSLCommand): >>> eddy.inputs.in_bvec = 'bvecs.scheme' >>> eddy.inputs.in_bval = 'bvals.scheme' >>> eddy.inputs.use_cuda = True - >>> eddy.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> eddy.cmdline # doctest: +ELLIPSIS 'eddy_cuda --acqp=epi_acqp.txt --bvals=bvals.scheme --bvecs=bvecs.scheme \ --imain=epi.nii --index=epi_index.txt --mask=epi_mask.nii \ --out=.../eddy_corrected' >>> eddy.inputs.use_cuda = False - >>> eddy.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> eddy.cmdline # doctest: +ELLIPSIS 'eddy_openmp --acqp=epi_acqp.txt --bvals=bvals.scheme \ --bvecs=bvecs.scheme --imain=epi.nii --index=epi_index.txt \ --mask=epi_mask.nii --out=.../eddy_corrected' @@ -679,7 +679,7 @@ class SigLoss(FSLCommand): >>> sigloss.inputs.in_file = "phase.nii" >>> sigloss.inputs.echo_time = 0.03 >>> sigloss.inputs.output_type = "NIFTI_GZ" - >>> sigloss.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> sigloss.cmdline # doctest: +ELLIPSIS 'sigloss --te=0.030000 -i phase.nii -s .../phase_sigloss.nii.gz' >>> res = sigloss.run() # doctest: +SKIP @@ -784,7 +784,7 @@ class EpiReg(FSLCommand): >>> epireg.inputs.fmapmagbrain='fieldmap_mag_brain.nii' >>> epireg.inputs.echospacing=0.00067 >>> epireg.inputs.pedir='y' - >>> epireg.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> epireg.cmdline # doctest: +ELLIPSIS 'epi_reg --echospacing=0.000670 --fmap=fieldmap_phase_fslprepared.nii \ --fmapmag=fieldmap_mag.nii --fmapmagbrain=fieldmap_mag_brain.nii --noclean \ --pedir=y --epi=epi.nii --t1=T1.nii --t1brain=T1_brain.nii --out=epi2struct' @@ -895,7 +895,7 @@ class EPIDeWarp(FSLCommand): >>> dewarp.inputs.mag_file = "magnitude.nii" >>> dewarp.inputs.dph_file = "phase.nii" >>> dewarp.inputs.output_type = "NIFTI_GZ" - >>> dewarp.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> dewarp.cmdline # doctest: +ELLIPSIS 'epidewarp.fsl --mag magnitude.nii --dph phase.nii --epi functional.nii \ --esp 0.58 --exfdw .../exfdw.nii.gz --nocleanup --sigma 2 --tediff 2.46 \ --tmpdir .../temp --vsm .../vsm.nii.gz' @@ -988,7 +988,7 @@ class EddyCorrect(FSLCommand): >>> from nipype.interfaces.fsl import EddyCorrect >>> eddyc = EddyCorrect(in_file='diffusion.nii', ... out_file="diffusion_edc.nii", ref_num=0) - >>> eddyc.cmdline # doctest: +ALLOW_UNICODE + >>> eddyc.cmdline 'eddy_correct diffusion.nii diffusion_edc.nii 0' """ diff --git a/nipype/interfaces/fsl/maths.py b/nipype/interfaces/fsl/maths.py index 588f7caf95..f403c5c402 100644 --- a/nipype/interfaces/fsl/maths.py +++ b/nipype/interfaces/fsl/maths.py @@ -439,7 +439,7 @@ class MultiImageMaths(MathsCommand): >>> maths.inputs.op_string = "-add %s -mul -1 -div %s" >>> maths.inputs.operand_files = ["functional2.nii", "functional3.nii"] >>> maths.inputs.out_file = "functional4.nii" - >>> maths.cmdline # doctest: +ALLOW_UNICODE + >>> maths.cmdline 'fslmaths functional.nii -add functional2.nii -mul -1 -div functional3.nii functional4.nii' """ diff --git a/nipype/interfaces/fsl/model.py b/nipype/interfaces/fsl/model.py index b4d3fb56f8..701ee757db 100644 --- a/nipype/interfaces/fsl/model.py +++ b/nipype/interfaces/fsl/model.py @@ -934,7 +934,7 @@ class FLAMEO(FSLCommand): >>> flameo.inputs.t_con_file = 'design.con' >>> flameo.inputs.mask_file = 'mask.nii' >>> flameo.inputs.run_mode = 'fe' - >>> flameo.cmdline # doctest: +ALLOW_UNICODE + >>> flameo.cmdline 'flameo --copefile=cope.nii.gz --covsplitfile=cov_split.mat --designfile=design.mat --ld=stats --maskfile=mask.nii --runmode=fe --tcontrastsfile=design.con --varcopefile=varcope.nii.gz' """ @@ -1601,7 +1601,7 @@ class MELODIC(FSLCommand): >>> melodic_setup.inputs.s_des = 'subjectDesign.mat' >>> melodic_setup.inputs.s_con = 'subjectDesign.con' >>> melodic_setup.inputs.out_dir = 'groupICA.out' - >>> melodic_setup.cmdline # doctest: +ALLOW_UNICODE + >>> melodic_setup.cmdline 'melodic -i functional.nii,functional2.nii,functional3.nii -a tica --bgthreshold=10.000000 --mmthresh=0.500000 --nobet -o groupICA.out --Ostats --Scon=subjectDesign.con --Sdes=subjectDesign.mat --Tcon=timeDesign.con --Tdes=timeDesign.mat --tr=1.500000' >>> melodic_setup.run() # doctest: +SKIP @@ -1657,7 +1657,7 @@ class SmoothEstimate(FSLCommand): >>> est = SmoothEstimate() >>> est.inputs.zstat_file = 'zstat1.nii.gz' >>> est.inputs.mask_file = 'mask.nii' - >>> est.cmdline # doctest: +ALLOW_UNICODE + >>> est.cmdline 'smoothest --mask=mask.nii --zstat=zstat1.nii.gz' """ @@ -1773,7 +1773,7 @@ class Cluster(FSLCommand): >>> cl.inputs.in_file = 'zstat1.nii.gz' >>> cl.inputs.out_localmax_txt_file = 'stats.txt' >>> cl.inputs.use_mm = True - >>> cl.cmdline # doctest: +ALLOW_UNICODE + >>> cl.cmdline 'cluster --in=zstat1.nii.gz --olmax=stats.txt --thresh=2.3000000000 --mm' """ @@ -1859,7 +1859,7 @@ class DualRegression(FSLCommand): >>> dual_regression.inputs.one_sample_group_mean = True >>> dual_regression.inputs.n_perm = 10 >>> dual_regression.inputs.out_dir = "my_output_directory" - >>> dual_regression.cmdline # doctest: +ALLOW_UNICODE + >>> dual_regression.cmdline u'dual_regression allFA.nii 0 -1 10 my_output_directory functional.nii functional2.nii functional3.nii' >>> dual_regression.run() # doctest: +SKIP @@ -1977,7 +1977,7 @@ class Randomise(FSLCommand): ------- >>> import nipype.interfaces.fsl as fsl >>> rand = fsl.Randomise(in_file='allFA.nii', mask = 'mask.nii', tcon='design.con', design_mat='design.mat') - >>> rand.cmdline # doctest: +ALLOW_UNICODE + >>> rand.cmdline 'randomise -i allFA.nii -o "tbss_" -d design.mat -t design.con -m mask.nii' """ @@ -2122,7 +2122,7 @@ class GLM(FSLCommand): ------- >>> import nipype.interfaces.fsl as fsl >>> glm = fsl.GLM(in_file='functional.nii', design='maps.nii', output_type='NIFTI') - >>> glm.cmdline # doctest: +ALLOW_UNICODE + >>> glm.cmdline 'fsl_glm -i functional.nii -d maps.nii -o functional_glm.nii' """ diff --git a/nipype/interfaces/fsl/possum.py b/nipype/interfaces/fsl/possum.py index 20efefbf2c..1c2b10e1d2 100644 --- a/nipype/interfaces/fsl/possum.py +++ b/nipype/interfaces/fsl/possum.py @@ -80,7 +80,7 @@ class B0Calc(FSLCommand): >>> b0calc.inputs.in_file = 'tissue+air_map.nii' >>> b0calc.inputs.z_b0 = 3.0 >>> b0calc.inputs.output_type = "NIFTI_GZ" - >>> b0calc.cmdline # doctest: +ALLOW_UNICODE + >>> b0calc.cmdline 'b0calc -i tissue+air_map.nii -o tissue+air_map_b0field.nii.gz --b0=3.00' """ diff --git a/nipype/interfaces/fsl/preprocess.py b/nipype/interfaces/fsl/preprocess.py index b96c0b6acd..4ffeead842 100644 --- a/nipype/interfaces/fsl/preprocess.py +++ b/nipype/interfaces/fsl/preprocess.py @@ -127,7 +127,7 @@ class BET(FSLCommand): >>> btr.inputs.in_file = 'structural.nii' >>> btr.inputs.frac = 0.7 >>> btr.inputs.out_file = 'brain_anat.nii' - >>> btr.cmdline # doctest: +ALLOW_UNICODE + >>> btr.cmdline 'bet structural.nii brain_anat.nii -f 0.70' >>> res = btr.run() # doctest: +SKIP @@ -298,7 +298,7 @@ class FAST(FSLCommand): >>> fastr = fsl.FAST() >>> fastr.inputs.in_files = 'structural.nii' >>> fastr.inputs.out_basename = 'fast_' - >>> fastr.cmdline # doctest: +ALLOW_UNICODE + >>> fastr.cmdline 'fast -o fast_ -S 1 structural.nii' >>> out = fastr.run() # doctest: +SKIP @@ -541,7 +541,7 @@ class FLIRT(FSLCommand): >>> flt.inputs.in_file = 'structural.nii' >>> flt.inputs.reference = 'mni.nii' >>> flt.inputs.output_type = "NIFTI_GZ" - >>> flt.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> flt.cmdline # doctest: +ELLIPSIS 'flirt -in structural.nii -ref mni.nii -out structural_flirt.nii.gz -omat structural_flirt.mat -bins 640 -searchcost mutualinfo' >>> res = flt.run() #doctest: +SKIP @@ -674,7 +674,7 @@ class MCFLIRT(FSLCommand): >>> mcflt.inputs.in_file = 'functional.nii' >>> mcflt.inputs.cost = 'mutualinfo' >>> mcflt.inputs.out_file = 'moco.nii' - >>> mcflt.cmdline # doctest: +ALLOW_UNICODE + >>> mcflt.cmdline 'mcflirt -in functional.nii -cost mutualinfo -out moco.nii' >>> res = mcflt.run() # doctest: +SKIP @@ -1397,7 +1397,7 @@ class FUGUE(FSLCommand): >>> fugue.inputs.shift_in_file = 'vsm.nii' # Previously computed with fugue as well >>> fugue.inputs.unwarp_direction = 'y' >>> fugue.inputs.output_type = "NIFTI_GZ" - >>> fugue.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> fugue.cmdline # doctest: +ELLIPSIS 'fugue --in=epi.nii --mask=epi_mask.nii --loadshift=vsm.nii --unwarpdir=y --unwarp=epi_unwarped.nii.gz' >>> fugue.run() #doctest: +SKIP @@ -1412,7 +1412,7 @@ class FUGUE(FSLCommand): >>> fugue.inputs.shift_in_file = 'vsm.nii' # Previously computed with fugue as well >>> fugue.inputs.unwarp_direction = 'y' >>> fugue.inputs.output_type = "NIFTI_GZ" - >>> fugue.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> fugue.cmdline # doctest: +ELLIPSIS 'fugue --in=epi.nii --mask=epi_mask.nii --loadshift=vsm.nii --unwarpdir=y --warp=epi_warped.nii.gz' >>> fugue.run() #doctest: +SKIP @@ -1427,7 +1427,7 @@ class FUGUE(FSLCommand): >>> fugue.inputs.unwarp_direction = 'y' >>> fugue.inputs.save_shift = True >>> fugue.inputs.output_type = "NIFTI_GZ" - >>> fugue.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> fugue.cmdline # doctest: +ELLIPSIS 'fugue --dwelltoasym=0.9390243902 --mask=epi_mask.nii --phasemap=epi_phasediff.nii --saveshift=epi_phasediff_vsm.nii.gz --unwarpdir=y' >>> fugue.run() #doctest: +SKIP diff --git a/nipype/interfaces/fsl/utils.py b/nipype/interfaces/fsl/utils.py index 072895a719..b28a4df425 100644 --- a/nipype/interfaces/fsl/utils.py +++ b/nipype/interfaces/fsl/utils.py @@ -191,7 +191,7 @@ class Smooth(FSLCommand): >>> sm.inputs.output_type = 'NIFTI_GZ' >>> sm.inputs.in_file = 'functional2.nii' >>> sm.inputs.sigma = 8.0 - >>> sm.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> sm.cmdline # doctest: +ELLIPSIS 'fslmaths functional2.nii -kernel gauss 8.000 -fmean functional2_smooth.nii.gz' Setting the kernel width using fwhm: @@ -200,7 +200,7 @@ class Smooth(FSLCommand): >>> sm.inputs.output_type = 'NIFTI_GZ' >>> sm.inputs.in_file = 'functional2.nii' >>> sm.inputs.fwhm = 8.0 - >>> sm.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> sm.cmdline # doctest: +ELLIPSIS 'fslmaths functional2.nii -kernel gauss 3.397 -fmean functional2_smooth.nii.gz' One of sigma or fwhm must be set: @@ -263,10 +263,10 @@ class Merge(FSLCommand): >>> merger.inputs.in_files = ['functional2.nii', 'functional3.nii'] >>> merger.inputs.dimension = 't' >>> merger.inputs.output_type = 'NIFTI_GZ' - >>> merger.cmdline # doctest: +ALLOW_UNICODE + >>> merger.cmdline 'fslmerge -t functional2_merged.nii.gz functional2.nii functional3.nii' >>> merger.inputs.tr = 2.25 - >>> merger.cmdline # doctest: +ALLOW_UNICODE + >>> merger.cmdline 'fslmerge -tr functional2_merged.nii.gz functional2.nii functional3.nii 2.25' @@ -1187,7 +1187,7 @@ class ConvertXFM(FSLCommand): >>> invt.inputs.in_file = "flirt.mat" >>> invt.inputs.invert_xfm = True >>> invt.inputs.out_file = 'flirt_inv.mat' - >>> invt.cmdline # doctest: +ALLOW_UNICODE + >>> invt.cmdline 'convert_xfm -omat flirt_inv.mat -inverse flirt.mat' @@ -1492,7 +1492,7 @@ class InvWarp(FSLCommand): >>> invwarp.inputs.warp = "struct2mni.nii" >>> invwarp.inputs.reference = "anatomical.nii" >>> invwarp.inputs.output_type = "NIFTI_GZ" - >>> invwarp.cmdline # doctest: +ALLOW_UNICODE + >>> invwarp.cmdline 'invwarp --out=struct2mni_inverse.nii.gz --ref=anatomical.nii --warp=struct2mni.nii' >>> res = invwarp.run() # doctest: +SKIP @@ -1728,7 +1728,7 @@ class WarpUtils(FSLCommand): >>> warputils.inputs.out_format = 'spline' >>> warputils.inputs.warp_resolution = (10,10,10) >>> warputils.inputs.output_type = "NIFTI_GZ" - >>> warputils.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> warputils.cmdline # doctest: +ELLIPSIS 'fnirtfileutils --in=warpfield.nii --outformat=spline --ref=T1.nii --warpres=10.0000,10.0000,10.0000 --out=warpfield_coeffs.nii.gz' >>> res = invwarp.run() # doctest: +SKIP @@ -1880,7 +1880,7 @@ class ConvertWarp(FSLCommand): >>> warputils.inputs.reference = "T1.nii" >>> warputils.inputs.relwarp = True >>> warputils.inputs.output_type = "NIFTI_GZ" - >>> warputils.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> warputils.cmdline # doctest: +ELLIPSIS 'convertwarp --ref=T1.nii --rel --warp1=warpfield.nii --out=T1_concatwarp.nii.gz' >>> res = warputils.run() # doctest: +SKIP @@ -1940,7 +1940,7 @@ class WarpPoints(CommandLine): >>> warppoints.inputs.dest_file = 'T1.nii' >>> warppoints.inputs.warp_file = 'warpfield.nii' >>> warppoints.inputs.coord_mm = True - >>> warppoints.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> warppoints.cmdline # doctest: +ELLIPSIS 'img2imgcoord -mm -dest T1.nii -src epi.nii -warp warpfield.nii surf.txt' >>> res = warppoints.run() # doctest: +SKIP @@ -2100,7 +2100,7 @@ class WarpPointsToStd(WarpPoints): >>> warppoints.inputs.std_file = 'mni.nii' >>> warppoints.inputs.warp_file = 'warpfield.nii' >>> warppoints.inputs.coord_mm = True - >>> warppoints.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> warppoints.cmdline # doctest: +ELLIPSIS 'img2stdcoord -mm -img T1.nii -std mni.nii -warp warpfield.nii surf.txt' >>> res = warppoints.run() # doctest: +SKIP @@ -2148,7 +2148,7 @@ class WarpPointsFromStd(CommandLine): >>> warppoints.inputs.std_file = 'mni.nii' >>> warppoints.inputs.warp_file = 'warpfield.nii' >>> warppoints.inputs.coord_mm = True - >>> warppoints.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> warppoints.cmdline # doctest: +ELLIPSIS 'std2imgcoord -mm -img T1.nii -std mni.nii -warp warpfield.nii surf.txt' >>> res = warppoints.run() # doctest: +SKIP @@ -2217,7 +2217,7 @@ class MotionOutliers(FSLCommand): >>> from nipype.interfaces.fsl import MotionOutliers >>> mo = MotionOutliers() >>> mo.inputs.in_file = "epi.nii" - >>> mo.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> mo.cmdline # doctest: +ELLIPSIS 'fsl_motion_outliers -i epi.nii -o epi_outliers.txt -p epi_metrics.png -s epi_metrics.txt' >>> res = mo.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/io.py b/nipype/interfaces/io.py index 4d3220b044..aef7dfbb1b 100644 --- a/nipype/interfaces/io.py +++ b/nipype/interfaces/io.py @@ -1222,7 +1222,7 @@ class SelectFiles(IOBase): ... "epi": "{subject_id}/func/f[0, 1].nii"} >>> dg = Node(SelectFiles(templates), "selectfiles") >>> dg.inputs.subject_id = "subj1" - >>> pprint.pprint(dg.outputs.get()) # doctest: +NORMALIZE_WHITESPACE +ALLOW_UNICODE + >>> pprint.pprint(dg.outputs.get()) # doctest: +NORMALIZE_WHITESPACE {'T1': , 'epi': } The same thing with dynamic grabbing of specific files: @@ -2482,11 +2482,11 @@ class JSONFileGrabber(IOBase): >>> jsonSource = JSONFileGrabber() >>> jsonSource.inputs.defaults = {'param1': 'overrideMe', 'param3': 1.0} >>> res = jsonSource.run() - >>> pprint.pprint(res.outputs.get()) # doctest: +ALLOW_UNICODE + >>> pprint.pprint(res.outputs.get()) {'param1': 'overrideMe', 'param3': 1.0} >>> jsonSource.inputs.in_file = 'jsongrabber.txt' >>> res = jsonSource.run() - >>> pprint.pprint(res.outputs.get()) # doctest: +NORMALIZE_WHITESPACE, +ELLIPSIS +ALLOW_UNICODE + >>> pprint.pprint(res.outputs.get()) # doctest: +NORMALIZE_WHITESPACE, +ELLIPSIS {'param1': 'exampleStr', 'param2': 4, 'param3': 1.0} diff --git a/nipype/interfaces/meshfix.py b/nipype/interfaces/meshfix.py index 6ae1859459..466190468a 100644 --- a/nipype/interfaces/meshfix.py +++ b/nipype/interfaces/meshfix.py @@ -105,7 +105,7 @@ class MeshFix(CommandLine): >>> fix.inputs.in_file1 = 'lh-pial.stl' >>> fix.inputs.in_file2 = 'rh-pial.stl' >>> fix.run() # doctest: +SKIP - >>> fix.cmdline # doctest: +ALLOW_UNICODE + >>> fix.cmdline 'meshfix lh-pial.stl rh-pial.stl -o lh-pial_fixed.off' """ _cmd = 'meshfix' diff --git a/nipype/interfaces/minc/base.py b/nipype/interfaces/minc/base.py index 6348e4ee0f..e4b8592adf 100644 --- a/nipype/interfaces/minc/base.py +++ b/nipype/interfaces/minc/base.py @@ -109,11 +109,11 @@ def aggregate_filename(files, new_suffix): >>> from nipype.interfaces.minc.base import aggregate_filename >>> f = aggregate_filename(['/tmp/foo1.mnc', '/tmp/foo2.mnc', '/tmp/foo3.mnc'], 'averaged') - >>> os.path.split(f)[1] # This has a full path, so just check the filename. # doctest: +ALLOW_UNICODE + >>> os.path.split(f)[1] # This has a full path, so just check the filename. 'foo_averaged.mnc' >>> f = aggregate_filename(['/tmp/foo1.mnc', '/tmp/blah1.mnc'], 'averaged') - >>> os.path.split(f)[1] # This has a full path, so just check the filename. # doctest: +ALLOW_UNICODE + >>> os.path.split(f)[1] # This has a full path, so just check the filename. 'foo1_averaged.mnc' """ diff --git a/nipype/interfaces/mne/base.py b/nipype/interfaces/mne/base.py index f2f3a70641..5196ddf5be 100644 --- a/nipype/interfaces/mne/base.py +++ b/nipype/interfaces/mne/base.py @@ -55,7 +55,7 @@ class WatershedBEM(FSCommand): >>> bem = WatershedBEM() >>> bem.inputs.subject_id = 'subj1' >>> bem.inputs.subjects_dir = '.' - >>> bem.cmdline # doctest: +ALLOW_UNICODE + >>> bem.cmdline 'mne_watershed_bem --overwrite --subject subj1 --volume T1' >>> bem.run() # doctest: +SKIP diff --git a/nipype/interfaces/mrtrix/preprocess.py b/nipype/interfaces/mrtrix/preprocess.py index 7ca6abd1fb..becee5088f 100644 --- a/nipype/interfaces/mrtrix/preprocess.py +++ b/nipype/interfaces/mrtrix/preprocess.py @@ -144,7 +144,7 @@ class DWI2Tensor(CommandLine): >>> dwi2tensor = mrt.DWI2Tensor() >>> dwi2tensor.inputs.in_file = 'dwi.mif' >>> dwi2tensor.inputs.encoding_file = 'encoding.txt' - >>> dwi2tensor.cmdline # doctest: +ALLOW_UNICODE + >>> dwi2tensor.cmdline 'dwi2tensor -grad encoding.txt dwi.mif dwi_tensor.mif' >>> dwi2tensor.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/mrtrix/tracking.py b/nipype/interfaces/mrtrix/tracking.py index 5fa39d38d3..5570a9b8d1 100644 --- a/nipype/interfaces/mrtrix/tracking.py +++ b/nipype/interfaces/mrtrix/tracking.py @@ -210,7 +210,7 @@ class StreamlineTrack(CommandLine): >>> strack.inputs.in_file = 'data.Bfloat' >>> strack.inputs.seed_file = 'seed_mask.nii' >>> strack.inputs.mask_file = 'mask.nii' - >>> strack.cmdline # doctest: +ALLOW_UNICODE + >>> strack.cmdline 'streamtrack -mask mask.nii -seed seed_mask.nii SD_PROB data.Bfloat data_tracked.tck' >>> strack.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/mrtrix3/connectivity.py b/nipype/interfaces/mrtrix3/connectivity.py index a2e7db355d..caa510e6e1 100644 --- a/nipype/interfaces/mrtrix3/connectivity.py +++ b/nipype/interfaces/mrtrix3/connectivity.py @@ -96,7 +96,7 @@ class BuildConnectome(MRTrix3Base): >>> mat = mrt.BuildConnectome() >>> mat.inputs.in_file = 'tracks.tck' >>> mat.inputs.in_parc = 'aparc+aseg.nii' - >>> mat.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> mat.cmdline # doctest: +ELLIPSIS 'tck2connectome tracks.tck aparc+aseg.nii connectome.csv' >>> mat.run() # doctest: +SKIP """ @@ -155,7 +155,7 @@ class LabelConfig(MRTrix3Base): >>> labels = mrt.LabelConfig() >>> labels.inputs.in_file = 'aparc+aseg.nii' >>> labels.inputs.in_config = 'mrtrix3_labelconfig.txt' - >>> labels.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> labels.cmdline # doctest: +ELLIPSIS 'labelconfig aparc+aseg.nii mrtrix3_labelconfig.txt parcellation.mif' >>> labels.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/mrtrix3/preprocess.py b/nipype/interfaces/mrtrix3/preprocess.py index 91ec44d1f0..141325e25b 100644 --- a/nipype/interfaces/mrtrix3/preprocess.py +++ b/nipype/interfaces/mrtrix3/preprocess.py @@ -96,7 +96,7 @@ class ResponseSD(MRTrix3Base): >>> resp.inputs.in_file = 'dwi.mif' >>> resp.inputs.in_mask = 'mask.nii.gz' >>> resp.inputs.grad_fsl = ('bvecs', 'bvals') - >>> resp.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> resp.cmdline # doctest: +ELLIPSIS 'dwi2response -fslgrad bvecs bvals -mask mask.nii.gz dwi.mif response.txt' >>> resp.run() # doctest: +SKIP """ @@ -139,7 +139,7 @@ class ACTPrepareFSL(CommandLine): >>> import nipype.interfaces.mrtrix3 as mrt >>> prep = mrt.ACTPrepareFSL() >>> prep.inputs.in_file = 'T1.nii.gz' - >>> prep.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> prep.cmdline # doctest: +ELLIPSIS 'act_anat_prepare_fsl T1.nii.gz act_5tt.mif' >>> prep.run() # doctest: +SKIP """ @@ -185,7 +185,7 @@ class ReplaceFSwithFIRST(CommandLine): >>> prep.inputs.in_file = 'aparc+aseg.nii' >>> prep.inputs.in_t1w = 'T1.nii.gz' >>> prep.inputs.in_config = 'mrtrix3_labelconfig.txt' - >>> prep.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> prep.cmdline # doctest: +ELLIPSIS 'fs_parc_replace_sgm_first aparc+aseg.nii T1.nii.gz \ mrtrix3_labelconfig.txt aparc+first.mif' >>> prep.run() # doctest: +SKIP diff --git a/nipype/interfaces/mrtrix3/reconst.py b/nipype/interfaces/mrtrix3/reconst.py index b1f71dd572..b608c5514c 100644 --- a/nipype/interfaces/mrtrix3/reconst.py +++ b/nipype/interfaces/mrtrix3/reconst.py @@ -58,7 +58,7 @@ class FitTensor(MRTrix3Base): >>> tsr.inputs.in_file = 'dwi.mif' >>> tsr.inputs.in_mask = 'mask.nii.gz' >>> tsr.inputs.grad_fsl = ('bvecs', 'bvals') - >>> tsr.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> tsr.cmdline # doctest: +ELLIPSIS 'dwi2tensor -fslgrad bvecs bvals -mask mask.nii.gz dwi.mif dti.mif' >>> tsr.run() # doctest: +SKIP """ @@ -173,7 +173,7 @@ class EstimateFOD(MRTrix3Base): >>> fod.inputs.response = 'response.txt' >>> fod.inputs.in_mask = 'mask.nii.gz' >>> fod.inputs.grad_fsl = ('bvecs', 'bvals') - >>> fod.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> fod.cmdline # doctest: +ELLIPSIS 'dwi2fod -fslgrad bvecs bvals -mask mask.nii.gz dwi.mif response.txt\ fods.mif' >>> fod.run() # doctest: +SKIP diff --git a/nipype/interfaces/mrtrix3/tracking.py b/nipype/interfaces/mrtrix3/tracking.py index 82c7294cfc..f2cc9c7c75 100644 --- a/nipype/interfaces/mrtrix3/tracking.py +++ b/nipype/interfaces/mrtrix3/tracking.py @@ -227,7 +227,7 @@ class Tractography(MRTrix3Base): >>> tk.inputs.in_file = 'fods.mif' >>> tk.inputs.roi_mask = 'mask.nii.gz' >>> tk.inputs.seed_sphere = (80, 100, 70, 10) - >>> tk.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> tk.cmdline # doctest: +ELLIPSIS 'tckgen -algorithm iFOD2 -mask mask.nii.gz -seed_sphere \ 80.000000,100.000000,70.000000,10.000000 fods.mif tracked.tck' >>> tk.run() # doctest: +SKIP diff --git a/nipype/interfaces/mrtrix3/utils.py b/nipype/interfaces/mrtrix3/utils.py index 99f308bd18..42f3d0c6fd 100644 --- a/nipype/interfaces/mrtrix3/utils.py +++ b/nipype/interfaces/mrtrix3/utils.py @@ -46,7 +46,7 @@ class BrainMask(CommandLine): >>> import nipype.interfaces.mrtrix3 as mrt >>> bmsk = mrt.BrainMask() >>> bmsk.inputs.in_file = 'dwi.mif' - >>> bmsk.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> bmsk.cmdline # doctest: +ELLIPSIS 'dwi2mask dwi.mif brainmask.mif' >>> bmsk.run() # doctest: +SKIP """ @@ -93,7 +93,7 @@ class Mesh2PVE(CommandLine): >>> m2p.inputs.in_file = 'surf1.vtk' >>> m2p.inputs.reference = 'dwi.mif' >>> m2p.inputs.in_first = 'T1.nii.gz' - >>> m2p.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> m2p.cmdline # doctest: +ELLIPSIS 'mesh2pve -first T1.nii.gz surf1.vtk dwi.mif mesh2volume.nii.gz' >>> m2p.run() # doctest: +SKIP """ @@ -139,7 +139,7 @@ class Generate5tt(CommandLine): >>> seg.inputs.in_fast = ['tpm_00.nii.gz', ... 'tpm_01.nii.gz', 'tpm_02.nii.gz'] >>> seg.inputs.in_first = 'first_merged.nii.gz' - >>> seg.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> seg.cmdline # doctest: +ELLIPSIS '5ttgen tpm_00.nii.gz tpm_01.nii.gz tpm_02.nii.gz first_merged.nii.gz\ act-5tt.mif' >>> seg.run() # doctest: +SKIP @@ -197,7 +197,7 @@ class TensorMetrics(CommandLine): >>> comp = mrt.TensorMetrics() >>> comp.inputs.in_file = 'dti.mif' >>> comp.inputs.out_fa = 'fa.mif' - >>> comp.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> comp.cmdline # doctest: +ELLIPSIS 'tensor2metric -fa fa.mif dti.mif' >>> comp.run() # doctest: +SKIP """ @@ -337,7 +337,7 @@ class ComputeTDI(MRTrix3Base): >>> import nipype.interfaces.mrtrix3 as mrt >>> tdi = mrt.ComputeTDI() >>> tdi.inputs.in_file = 'dti.mif' - >>> tdi.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> tdi.cmdline # doctest: +ELLIPSIS 'tckmap dti.mif tdi.mif' >>> tdi.run() # doctest: +SKIP """ @@ -388,7 +388,7 @@ class TCK2VTK(MRTrix3Base): >>> vtk = mrt.TCK2VTK() >>> vtk.inputs.in_file = 'tracks.tck' >>> vtk.inputs.reference = 'b0.nii' - >>> vtk.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> vtk.cmdline # doctest: +ELLIPSIS 'tck2vtk -image b0.nii tracks.tck tracks.vtk' >>> vtk.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/niftyfit/asl.py b/nipype/interfaces/niftyfit/asl.py index f0cc8bc19b..366f9a6eca 100644 --- a/nipype/interfaces/niftyfit/asl.py +++ b/nipype/interfaces/niftyfit/asl.py @@ -147,7 +147,7 @@ class FitAsl(NiftyFitCommand): >>> from nipype.interfaces import niftyfit >>> node = niftyfit.FitAsl() >>> node.inputs.source_file = 'asl.nii.gz' - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'fit_asl -source asl.nii.gz -cbf asl_cbf.nii.gz -error asl_error.nii.gz \ -syn asl_syn.nii.gz' diff --git a/nipype/interfaces/niftyfit/dwi.py b/nipype/interfaces/niftyfit/dwi.py index e368726656..67c5444bbe 100644 --- a/nipype/interfaces/niftyfit/dwi.py +++ b/nipype/interfaces/niftyfit/dwi.py @@ -248,7 +248,7 @@ class FitDwi(NiftyFitCommand): >>> fit_dwi.inputs.bvec_file = 'bvecs' >>> fit_dwi.inputs.bval_file = 'bvals' >>> fit_dwi.inputs.rgbmap_file = 'rgb.nii.gz' - >>> fit_dwi.cmdline # doctest: +ALLOW_UNICODE + >>> fit_dwi.cmdline 'fit_dwi -source dwi.nii.gz -bval bvals -bvec bvecs -dti \ -error dwi_error.nii.gz -famap dwi_famap.nii.gz -mcmap dwi_mcmap.nii.gz \ -mcout dwi_mcout.txt -mdmap dwi_mdmap.nii.gz -nodiff dwi_no_diff.nii.gz \ @@ -427,7 +427,7 @@ class DwiTool(NiftyFitCommand): >>> dwi_tool.inputs.mask_file = 'mask.nii.gz' >>> dwi_tool.inputs.b0_file = 'b0.nii.gz' >>> dwi_tool.inputs.rgbmap_file = 'rgb_map.nii.gz' - >>> dwi_tool.cmdline # doctest: +ALLOW_UNICODE + >>> dwi_tool.cmdline 'dwi_tool -source dwi.nii.gz -bval bvals -bvec bvecs -b0 b0.nii.gz \ -mask mask.nii.gz -dti -famap dwi_famap.nii.gz -logdti2 dwi_logdti2.nii.gz \ -mcmap dwi_mcmap.nii.gz -mdmap dwi_mdmap.nii.gz -rgbmap rgb_map.nii.gz \ diff --git a/nipype/interfaces/niftyfit/qt1.py b/nipype/interfaces/niftyfit/qt1.py index 6cb0cf7da1..b5ccfed88b 100644 --- a/nipype/interfaces/niftyfit/qt1.py +++ b/nipype/interfaces/niftyfit/qt1.py @@ -165,7 +165,7 @@ class FitQt1(NiftyFitCommand): >>> from nipype.interfaces.niftyfit import FitQt1 >>> fit_qt1 = FitQt1() >>> fit_qt1.inputs.source_file = 'TI4D.nii.gz' - >>> fit_qt1.cmdline # doctest: +ALLOW_UNICODE + >>> fit_qt1.cmdline 'fit_qt1 -source TI4D.nii.gz -comp TI4D_comp.nii.gz \ -error TI4D_error.nii.gz -m0map TI4D_m0map.nii.gz -mcmap TI4D_mcmap.nii.gz \ -res TI4D_res.nii.gz -syn TI4D_syn.nii.gz -t1map TI4D_t1map.nii.gz' diff --git a/nipype/interfaces/niftyreg/reg.py b/nipype/interfaces/niftyreg/reg.py index e8ad87e3ee..fa4a1701ee 100644 --- a/nipype/interfaces/niftyreg/reg.py +++ b/nipype/interfaces/niftyreg/reg.py @@ -156,7 +156,7 @@ class RegAladin(NiftyRegCommand): >>> node.inputs.flo_file = 'im2.nii' >>> node.inputs.rmask_file = 'mask.nii' >>> node.inputs.omp_core_val = 4 - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'reg_aladin -aff im2_aff.txt -flo im2.nii -omp 4 -ref im1.nii \ -res im2_res.nii.gz -rmask mask.nii' @@ -367,7 +367,7 @@ class RegF3D(NiftyRegCommand): >>> node.inputs.flo_file = 'im2.nii' >>> node.inputs.rmask_file = 'mask.nii' >>> node.inputs.omp_core_val = 4 - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'reg_f3d -cpp im2_cpp.nii.gz -flo im2.nii -omp 4 -ref im1.nii \ -res im2_res.nii.gz -rmask mask.nii' diff --git a/nipype/interfaces/niftyreg/regutils.py b/nipype/interfaces/niftyreg/regutils.py index 9c2ddc055d..9e42a55126 100644 --- a/nipype/interfaces/niftyreg/regutils.py +++ b/nipype/interfaces/niftyreg/regutils.py @@ -106,7 +106,7 @@ class RegResample(NiftyRegCommand): >>> node.inputs.trans_file = 'warpfield.nii' >>> node.inputs.inter_val = 'LIN' >>> node.inputs.omp_core_val = 4 - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'reg_resample -flo im2.nii -inter 1 -omp 4 -ref im1.nii -trans \ warpfield.nii -res im2_res.nii.gz' @@ -173,7 +173,7 @@ class RegJacobian(NiftyRegCommand): >>> node.inputs.ref_file = 'im1.nii' >>> node.inputs.trans_file = 'warpfield.nii' >>> node.inputs.omp_core_val = 4 - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'reg_jacobian -omp 4 -ref im1.nii -trans warpfield.nii -jac \ warpfield_jac.nii.gz' @@ -289,7 +289,7 @@ class RegTools(NiftyRegCommand): >>> node.inputs.in_file = 'im1.nii' >>> node.inputs.mul_val = 4 >>> node.inputs.omp_core_val = 4 - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'reg_tools -in im1.nii -mul 4.0 -omp 4 -out im1_tools.nii.gz' """ @@ -397,7 +397,7 @@ class RegAverage(NiftyRegCommand): >>> two_file = 'im2.nii' >>> three_file = 'im3.nii' >>> node.inputs.avg_files = [one_file, two_file, three_file] - >>> node.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> node.cmdline # doctest: +ELLIPSIS 'reg_average --cmd_file .../reg_average_cmd' """ @@ -602,7 +602,7 @@ class RegTransform(NiftyRegCommand): >>> node = niftyreg.RegTransform() >>> node.inputs.def_input = 'warpfield.nii' >>> node.inputs.omp_core_val = 4 - >>> node.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> node.cmdline # doctest: +ELLIPSIS 'reg_transform -omp 4 -def warpfield.nii .../warpfield_trans.nii.gz' """ @@ -714,7 +714,7 @@ class RegMeasure(NiftyRegCommand): >>> node.inputs.flo_file = 'im2.nii' >>> node.inputs.measure_type = 'lncc' >>> node.inputs.omp_core_val = 4 - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'reg_measure -flo im2.nii -lncc -omp 4 -out im2_lncc.txt -ref im1.nii' """ diff --git a/nipype/interfaces/niftyseg/em.py b/nipype/interfaces/niftyseg/em.py index be39f7775b..f2e7359677 100644 --- a/nipype/interfaces/niftyseg/em.py +++ b/nipype/interfaces/niftyseg/em.py @@ -127,7 +127,7 @@ class EM(NiftySegCommand): >>> node = niftyseg.EM() >>> node.inputs.in_file = 'im1.nii' >>> node.inputs.no_prior = 4 - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'seg_EM -in im1.nii -nopriors 4 -bc_out im1_bc_em.nii.gz -out im1_em.nii.gz -out_outlier im1_outlier_em.nii.gz' """ diff --git a/nipype/interfaces/niftyseg/label_fusion.py b/nipype/interfaces/niftyseg/label_fusion.py index 82b19d1f3b..c1637cb258 100644 --- a/nipype/interfaces/niftyseg/label_fusion.py +++ b/nipype/interfaces/niftyseg/label_fusion.py @@ -147,7 +147,7 @@ class LabelFusion(NiftySegCommand): >>> node.inputs.template_file = 'im3.nii' >>> node.inputs.template_num = 2 >>> node.inputs.classifier_type = 'STEPS' - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'seg_LabFusion -in im1.nii -STEPS 2.000000 2 im2.nii im3.nii -out im1_steps.nii' """ @@ -298,7 +298,7 @@ class CalcTopNCC(NiftySegCommand): >>> node.inputs.num_templates = 2 >>> node.inputs.in_templates = ['im2.nii', 'im3.nii'] >>> node.inputs.top_templates = 1 - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'seg_CalcTopNCC -target im1.nii -templates 2 im2.nii im3.nii -n 1' """ diff --git a/nipype/interfaces/niftyseg/lesions.py b/nipype/interfaces/niftyseg/lesions.py index d531b5c464..489837e6dd 100644 --- a/nipype/interfaces/niftyseg/lesions.py +++ b/nipype/interfaces/niftyseg/lesions.py @@ -109,7 +109,7 @@ class FillLesions(NiftySegCommand): >>> node = niftyseg.FillLesions() >>> node.inputs.in_file = 'im1.nii' >>> node.inputs.lesion_mask = 'im2.nii' - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'seg_FillLesions -i im1.nii -l im2.nii -o im1_lesions_filled.nii.gz' """ diff --git a/nipype/interfaces/niftyseg/maths.py b/nipype/interfaces/niftyseg/maths.py index bd05ab5df3..b8a5c0a1b8 100644 --- a/nipype/interfaces/niftyseg/maths.py +++ b/nipype/interfaces/niftyseg/maths.py @@ -169,31 +169,31 @@ class UnaryMaths(MathsCommand): >>> # Test sqrt operation >>> unary_sqrt = copy.deepcopy(unary) >>> unary_sqrt.inputs.operation = 'sqrt' - >>> unary_sqrt.cmdline # doctest: +ALLOW_UNICODE + >>> unary_sqrt.cmdline 'seg_maths im1.nii -sqrt -odt float im1_sqrt.nii' >>> unary_sqrt.run() # doctest: +SKIP >>> # Test sqrt operation >>> unary_abs = copy.deepcopy(unary) >>> unary_abs.inputs.operation = 'abs' - >>> unary_abs.cmdline # doctest: +ALLOW_UNICODE + >>> unary_abs.cmdline 'seg_maths im1.nii -abs -odt float im1_abs.nii' >>> unary_abs.run() # doctest: +SKIP >>> # Test bin operation >>> unary_bin = copy.deepcopy(unary) >>> unary_bin.inputs.operation = 'bin' - >>> unary_bin.cmdline # doctest: +ALLOW_UNICODE + >>> unary_bin.cmdline 'seg_maths im1.nii -bin -odt float im1_bin.nii' >>> unary_bin.run() # doctest: +SKIP >>> # Test otsu operation >>> unary_otsu = copy.deepcopy(unary) >>> unary_otsu.inputs.operation = 'otsu' - >>> unary_otsu.cmdline # doctest: +ALLOW_UNICODE + >>> unary_otsu.cmdline 'seg_maths im1.nii -otsu -odt float im1_otsu.nii' >>> unary_otsu.run() # doctest: +SKIP >>> # Test isnan operation >>> unary_isnan = copy.deepcopy(unary) >>> unary_isnan.inputs.operation = 'isnan' - >>> unary_isnan.cmdline # doctest: +ALLOW_UNICODE + >>> unary_isnan.cmdline 'seg_maths im1.nii -isnan -odt float im1_isnan.nii' >>> unary_isnan.run() # doctest: +SKIP @@ -302,28 +302,28 @@ class BinaryMaths(MathsCommand): >>> binary_sub = copy.deepcopy(binary) >>> binary_sub.inputs.operation = 'sub' >>> binary_sub.inputs.operand_file = 'im2.nii' - >>> binary_sub.cmdline # doctest: +ALLOW_UNICODE + >>> binary_sub.cmdline 'seg_maths im1.nii -sub im2.nii -odt float im1_sub.nii' >>> binary_sub.run() # doctest: +SKIP >>> # Test mul operation >>> binary_mul = copy.deepcopy(binary) >>> binary_mul.inputs.operation = 'mul' >>> binary_mul.inputs.operand_value = 2.0 - >>> binary_mul.cmdline # doctest: +ALLOW_UNICODE + >>> binary_mul.cmdline 'seg_maths im1.nii -mul 2.00000000 -odt float im1_mul.nii' >>> binary_mul.run() # doctest: +SKIP >>> # Test llsnorm operation >>> binary_llsnorm = copy.deepcopy(binary) >>> binary_llsnorm.inputs.operation = 'llsnorm' >>> binary_llsnorm.inputs.operand_file = 'im2.nii' - >>> binary_llsnorm.cmdline # doctest: +ALLOW_UNICODE + >>> binary_llsnorm.cmdline 'seg_maths im1.nii -llsnorm im2.nii -odt float im1_llsnorm.nii' >>> binary_llsnorm.run() # doctest: +SKIP >>> # Test splitinter operation >>> binary_splitinter = copy.deepcopy(binary) >>> binary_splitinter.inputs.operation = 'splitinter' >>> binary_splitinter.inputs.operand_str = 'z' - >>> binary_splitinter.cmdline # doctest: +ALLOW_UNICODE + >>> binary_splitinter.cmdline 'seg_maths im1.nii -splitinter z -odt float im1_splitinter.nii' >>> binary_splitinter.run() # doctest: +SKIP @@ -419,21 +419,21 @@ class BinaryMathsInteger(MathsCommand): >>> binaryi_dil = copy.deepcopy(binaryi) >>> binaryi_dil.inputs.operation = 'dil' >>> binaryi_dil.inputs.operand_value = 2 - >>> binaryi_dil.cmdline # doctest: +ALLOW_UNICODE + >>> binaryi_dil.cmdline 'seg_maths im1.nii -dil 2 -odt float im1_dil.nii' >>> binaryi_dil.run() # doctest: +SKIP >>> # Test dil operation >>> binaryi_ero = copy.deepcopy(binaryi) >>> binaryi_ero.inputs.operation = 'ero' >>> binaryi_ero.inputs.operand_value = 1 - >>> binaryi_ero.cmdline # doctest: +ALLOW_UNICODE + >>> binaryi_ero.cmdline 'seg_maths im1.nii -ero 1 -odt float im1_ero.nii' >>> binaryi_ero.run() # doctest: +SKIP >>> # Test pad operation >>> binaryi_pad = copy.deepcopy(binaryi) >>> binaryi_pad.inputs.operation = 'pad' >>> binaryi_pad.inputs.operand_value = 4 - >>> binaryi_pad.cmdline # doctest: +ALLOW_UNICODE + >>> binaryi_pad.cmdline 'seg_maths im1.nii -pad 4 -odt float im1_pad.nii' >>> binaryi_pad.run() # doctest: +SKIP @@ -512,7 +512,7 @@ class TupleMaths(MathsCommand): >>> tuple_lncc.inputs.operation = 'lncc' >>> tuple_lncc.inputs.operand_file1 = 'im2.nii' >>> tuple_lncc.inputs.operand_value2 = 2.0 - >>> tuple_lncc.cmdline # doctest: +ALLOW_UNICODE + >>> tuple_lncc.cmdline 'seg_maths im1.nii -lncc im2.nii 2.00000000 -odt float im1_lncc.nii' >>> tuple_lncc.run() # doctest: +SKIP @@ -521,7 +521,7 @@ class TupleMaths(MathsCommand): >>> tuple_lssd.inputs.operation = 'lssd' >>> tuple_lssd.inputs.operand_file1 = 'im2.nii' >>> tuple_lssd.inputs.operand_value2 = 1.0 - >>> tuple_lssd.cmdline # doctest: +ALLOW_UNICODE + >>> tuple_lssd.cmdline 'seg_maths im1.nii -lssd im2.nii 1.00000000 -odt float im1_lssd.nii' >>> tuple_lssd.run() # doctest: +SKIP @@ -530,7 +530,7 @@ class TupleMaths(MathsCommand): >>> tuple_lltsnorm.inputs.operation = 'lltsnorm' >>> tuple_lltsnorm.inputs.operand_file1 = 'im2.nii' >>> tuple_lltsnorm.inputs.operand_value2 = 0.01 - >>> tuple_lltsnorm.cmdline # doctest: +ALLOW_UNICODE + >>> tuple_lltsnorm.cmdline 'seg_maths im1.nii -lltsnorm im2.nii 0.01000000 -odt float \ im1_lltsnorm.nii' >>> tuple_lltsnorm.run() # doctest: +SKIP @@ -575,7 +575,7 @@ class Merge(MathsCommand): >>> node.inputs.merge_files = files >>> node.inputs.dimension = 2 >>> node.inputs.output_datatype = 'float' - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'seg_maths im1.nii -merge 2 2 im2.nii im3.nii -odt float im1_merged.nii' """ diff --git a/nipype/interfaces/niftyseg/patchmatch.py b/nipype/interfaces/niftyseg/patchmatch.py index d598a08928..207764f086 100644 --- a/nipype/interfaces/niftyseg/patchmatch.py +++ b/nipype/interfaces/niftyseg/patchmatch.py @@ -102,7 +102,7 @@ class PatchMatch(NiftySegCommand): >>> node.inputs.in_file = 'im1.nii' >>> node.inputs.mask_file = 'im2.nii' >>> node.inputs.database_file = 'db.xml' - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'seg_PatchMatch -i im1.nii -m im2.nii -db db.xml -o im1_pm.nii.gz' """ diff --git a/nipype/interfaces/niftyseg/stats.py b/nipype/interfaces/niftyseg/stats.py index e2e7781aa6..cef03b6177 100644 --- a/nipype/interfaces/niftyseg/stats.py +++ b/nipype/interfaces/niftyseg/stats.py @@ -154,19 +154,19 @@ class UnaryStats(StatsCommand): >>> # Test v operation >>> unary_v = copy.deepcopy(unary) >>> unary_v.inputs.operation = 'v' - >>> unary_v.cmdline # doctest: +ALLOW_UNICODE + >>> unary_v.cmdline 'seg_stats im1.nii -v' >>> unary_v.run() # doctest: +SKIP >>> # Test vl operation >>> unary_vl = copy.deepcopy(unary) >>> unary_vl.inputs.operation = 'vl' - >>> unary_vl.cmdline # doctest: +ALLOW_UNICODE + >>> unary_vl.cmdline 'seg_stats im1.nii -vl' >>> unary_vl.run() # doctest: +SKIP >>> # Test x operation >>> unary_x = copy.deepcopy(unary) >>> unary_x.inputs.operation = 'x' - >>> unary_x.cmdline # doctest: +ALLOW_UNICODE + >>> unary_x.cmdline 'seg_stats im1.nii -x' >>> unary_x.run() # doctest: +SKIP @@ -243,21 +243,21 @@ class BinaryStats(StatsCommand): >>> binary_sa = copy.deepcopy(binary) >>> binary_sa.inputs.operation = 'sa' >>> binary_sa.inputs.operand_value = 2.0 - >>> binary_sa.cmdline # doctest: +ALLOW_UNICODE + >>> binary_sa.cmdline 'seg_stats im1.nii -sa 2.00000000' >>> binary_sa.run() # doctest: +SKIP >>> # Test ncc operation >>> binary_ncc = copy.deepcopy(binary) >>> binary_ncc.inputs.operation = 'ncc' >>> binary_ncc.inputs.operand_file = 'im2.nii' - >>> binary_ncc.cmdline # doctest: +ALLOW_UNICODE + >>> binary_ncc.cmdline 'seg_stats im1.nii -ncc im2.nii' >>> binary_ncc.run() # doctest: +SKIP >>> # Test Nl operation >>> binary_nl = copy.deepcopy(binary) >>> binary_nl.inputs.operation = 'Nl' >>> binary_nl.inputs.operand_file = 'output.csv' - >>> binary_nl.cmdline # doctest: +ALLOW_UNICODE + >>> binary_nl.cmdline 'seg_stats im1.nii -Nl output.csv' >>> binary_nl.run() # doctest: +SKIP diff --git a/nipype/interfaces/quickshear.py b/nipype/interfaces/quickshear.py index d1782d5755..a0e9c79a1c 100644 --- a/nipype/interfaces/quickshear.py +++ b/nipype/interfaces/quickshear.py @@ -40,7 +40,7 @@ class Quickshear(CommandLine): >>> from nipype.interfaces.quickshear import Quickshear >>> qs = Quickshear(in_file='T1.nii', mask_file='brain_mask.nii') - >>> qs.cmdline # doctest: +ALLOW_UNICODE + >>> qs.cmdline 'quickshear T1.nii brain_mask.nii T1_defaced.nii' In the absence of a precomputed mask, a simple pipeline can be generated diff --git a/nipype/interfaces/slicer/generate_classes.py b/nipype/interfaces/slicer/generate_classes.py index 77a633f5f8..f0bc8274bb 100644 --- a/nipype/interfaces/slicer/generate_classes.py +++ b/nipype/interfaces/slicer/generate_classes.py @@ -18,9 +18,9 @@ def force_to_valid_python_variable_name(old_name): """ Valid c++ names are not always valid in python, so provide alternate naming - >>> force_to_valid_python_variable_name('lambda') # doctest: +ALLOW_UNICODE + >>> force_to_valid_python_variable_name('lambda') 'opt_lambda' - >>> force_to_valid_python_variable_name('inputVolume') # doctest: +ALLOW_UNICODE + >>> force_to_valid_python_variable_name('inputVolume') 'inputVolume' """ new_name = old_name diff --git a/nipype/interfaces/utility/base.py b/nipype/interfaces/utility/base.py index 60e4c4aa3f..179bfd7c20 100644 --- a/nipype/interfaces/utility/base.py +++ b/nipype/interfaces/utility/base.py @@ -47,7 +47,7 @@ class IdentityInterface(IOBase): >>> out = ii.run() - >>> out.outputs.a # doctest: +ALLOW_UNICODE + >>> out.outputs.a 'foo' >>> ii2 = IdentityInterface(fields=['a', 'b'], mandatory_inputs=True) diff --git a/nipype/interfaces/vista/vista.py b/nipype/interfaces/vista/vista.py index e898956d65..e8928ae24a 100644 --- a/nipype/interfaces/vista/vista.py +++ b/nipype/interfaces/vista/vista.py @@ -34,7 +34,7 @@ class Vnifti2Image(CommandLine): >>> vimage = Vnifti2Image() >>> vimage.inputs.in_file = 'image.nii' - >>> vimage.cmdline # doctest: +ALLOW_UNICODE + >>> vimage.cmdline 'vnifti2image -in image.nii -out image.v' >>> vimage.run() # doctest: +SKIP """ @@ -63,7 +63,7 @@ class VtoMat(CommandLine): >>> vimage = VtoMat() >>> vimage.inputs.in_file = 'image.v' - >>> vimage.cmdline # doctest: +ALLOW_UNICODE + >>> vimage.cmdline 'vtomat -in image.v -out image.mat' >>> vimage.run() # doctest: +SKIP """ diff --git a/nipype/pipeline/engine/nodes.py b/nipype/pipeline/engine/nodes.py index f7f83f578a..36d3ba1b40 100644 --- a/nipype/pipeline/engine/nodes.py +++ b/nipype/pipeline/engine/nodes.py @@ -887,7 +887,7 @@ def _add_join_item_fields(self): ... name='inputspec'), >>> join = JoinNode(IdentityInterface(fields=['images', 'mask']), ... joinsource='inputspec', joinfield='images', name='join') - >>> join._add_join_item_fields() # doctest: +ALLOW_UNICODE + >>> join._add_join_item_fields() {'images': 'imagesJ1'} Return the {base field: slot field} dictionary diff --git a/nipype/pipeline/plugins/sge.py b/nipype/pipeline/plugins/sge.py index 6d448df3df..42aa4bc915 100644 --- a/nipype/pipeline/plugins/sge.py +++ b/nipype/pipeline/plugins/sge.py @@ -313,9 +313,9 @@ def qsub_sanitize_job_name(testjobname): Numbers and punctuation are not allowed. - >>> qsub_sanitize_job_name('01') # doctest: +ALLOW_UNICODE + >>> qsub_sanitize_job_name('01') 'J01' - >>> qsub_sanitize_job_name('a01') # doctest: +ALLOW_UNICODE + >>> qsub_sanitize_job_name('a01') 'a01' """ if testjobname[0].isalpha(): diff --git a/nipype/utils/filemanip.py b/nipype/utils/filemanip.py index e8a9ea22b8..be71424a5a 100644 --- a/nipype/utils/filemanip.py +++ b/nipype/utils/filemanip.py @@ -64,13 +64,13 @@ def split_filename(fname): -------- >>> from nipype.utils.filemanip import split_filename >>> pth, fname, ext = split_filename('/home/data/subject.nii.gz') - >>> pth # doctest: +ALLOW_UNICODE + >>> pth '/home/data' - >>> fname # doctest: +ALLOW_UNICODE + >>> fname 'subject' - >>> ext # doctest: +ALLOW_UNICODE + >>> ext '.nii.gz' """ @@ -171,7 +171,7 @@ def fname_presuffix(fname, prefix='', suffix='', newpath=None, use_ext=True): >>> from nipype.utils.filemanip import fname_presuffix >>> fname = 'foo.nii.gz' - >>> fname_presuffix(fname,'pre','post','/tmp') # doctest: +ALLOW_UNICODE + >>> fname_presuffix(fname,'pre','post','/tmp') '/tmp/prefoopost.nii.gz' """ @@ -603,7 +603,7 @@ def read_stream(stream, logger=None, encoding=None): Robustly reads a stream, sending a warning to a logger if some decoding error was raised. - >>> read_stream(bytearray([65, 0xc7, 65, 10, 66])) # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> read_stream(bytearray([65, 0xc7, 65, 10, 66])) # doctest: +ELLIPSIS ['A...A', 'B'] diff --git a/pytest.ini b/pytest.ini index 6247b04cca..1e1b23e962 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,3 +1,4 @@ [pytest] norecursedirs = .git build dist doc nipype/external tools examples src -addopts = --doctest-modules \ No newline at end of file +addopts = --doctest-modules +doctest_optionflags = ALLOW_UNICODE \ No newline at end of file diff --git a/tools/apigen.py b/tools/apigen.py index d3a732d881..c594042f71 100644 --- a/tools/apigen.py +++ b/tools/apigen.py @@ -103,11 +103,11 @@ def set_package_name(self, package_name): def _get_object_name(self, line): ''' Get second token in line >>> docwriter = ApiDocWriter('sphinx') - >>> docwriter._get_object_name(" def func(): ") # doctest: +ALLOW_UNICODE + >>> docwriter._get_object_name(" def func(): ") u'func' - >>> docwriter._get_object_name(" class Klass(object): ") # doctest: +ALLOW_UNICODE + >>> docwriter._get_object_name(" class Klass(object): ") 'Klass' - >>> docwriter._get_object_name(" class Klass: ") # doctest: +ALLOW_UNICODE + >>> docwriter._get_object_name(" class Klass: ") 'Klass' ''' name = line.split()[1].split('(')[0].strip() diff --git a/tools/interfacedocgen.py b/tools/interfacedocgen.py index 3eb7467c4b..80356d3ded 100644 --- a/tools/interfacedocgen.py +++ b/tools/interfacedocgen.py @@ -124,11 +124,11 @@ def set_package_name(self, package_name): def _get_object_name(self, line): ''' Get second token in line >>> docwriter = ApiDocWriter('sphinx') - >>> docwriter._get_object_name(" def func(): ") # doctest: +ALLOW_UNICODE + >>> docwriter._get_object_name(" def func(): ") u'func' - >>> docwriter._get_object_name(" class Klass(object): ") # doctest: +ALLOW_UNICODE + >>> docwriter._get_object_name(" class Klass(object): ") 'Klass' - >>> docwriter._get_object_name(" class Klass: ") # doctest: +ALLOW_UNICODE + >>> docwriter._get_object_name(" class Klass: ") 'Klass' ''' name = line.split()[1].split('(')[0].strip() From f32c5315de7f5ece794ad978ea92a0b21247eda0 Mon Sep 17 00:00:00 2001 From: Dorota Jarecka Date: Thu, 26 Oct 2017 23:49:49 -0400 Subject: [PATCH 05/16] fixin one test --- nipype/interfaces/freesurfer/tests/test_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nipype/interfaces/freesurfer/tests/test_model.py b/nipype/interfaces/freesurfer/tests/test_model.py index b5221ad4d5..a30a29b0ac 100644 --- a/nipype/interfaces/freesurfer/tests/test_model.py +++ b/nipype/interfaces/freesurfer/tests/test_model.py @@ -40,7 +40,7 @@ def test_concatenate(tmpdir): assert np.allclose(nb.load(out, mmap=NUMPY_MMAP).get_data(), out_data) # Test in workflow - wf = pe.Workflow('test_concatenate', base_dir=tempdir) + wf = pe.Workflow('test_concatenate', base_dir=tmpdir.strpath) concat = pe.Node(model.Concatenate(in_files=[in1, in2], concatenated_file=out), name='concat') From a8990b7b737b9e17c9bc814b935edc1768d00f77 Mon Sep 17 00:00:00 2001 From: Dorota Jarecka Date: Fri, 27 Oct 2017 10:41:14 -0400 Subject: [PATCH 06/16] Revert "moving doctest ALLOW_UNICODE to pytest.ini, so doesnt have to be included in the docstrings" This reverts commit 952fdc93ab6bc32f1aad135e04948c7e614ba311. My script removed to many things from doctest, will update it. --- nipype/interfaces/afni/model.py | 6 +- nipype/interfaces/afni/preprocess.py | 86 ++++++++++---------- nipype/interfaces/afni/utils.py | 74 ++++++++--------- nipype/interfaces/ants/legacy.py | 4 +- nipype/interfaces/ants/registration.py | 38 ++++----- nipype/interfaces/ants/resampling.py | 12 +-- nipype/interfaces/ants/segmentation.py | 40 ++++----- nipype/interfaces/ants/utils.py | 12 +-- nipype/interfaces/ants/visualization.py | 4 +- nipype/interfaces/base.py | 28 +++---- nipype/interfaces/bru2nii.py | 2 +- nipype/interfaces/c3.py | 2 +- nipype/interfaces/dcm2nii.py | 4 +- nipype/interfaces/elastix/registration.py | 8 +- nipype/interfaces/freesurfer/longitudinal.py | 10 +-- nipype/interfaces/freesurfer/model.py | 22 ++--- nipype/interfaces/freesurfer/preprocess.py | 62 +++++++------- nipype/interfaces/freesurfer/registration.py | 14 ++-- nipype/interfaces/freesurfer/utils.py | 54 ++++++------ nipype/interfaces/fsl/aroma.py | 2 +- nipype/interfaces/fsl/dti.py | 14 ++-- nipype/interfaces/fsl/epi.py | 18 ++-- nipype/interfaces/fsl/maths.py | 2 +- nipype/interfaces/fsl/model.py | 14 ++-- nipype/interfaces/fsl/possum.py | 2 +- nipype/interfaces/fsl/preprocess.py | 14 ++-- nipype/interfaces/fsl/utils.py | 24 +++--- nipype/interfaces/io.py | 6 +- nipype/interfaces/meshfix.py | 2 +- nipype/interfaces/minc/base.py | 4 +- nipype/interfaces/mne/base.py | 2 +- nipype/interfaces/mrtrix/preprocess.py | 2 +- nipype/interfaces/mrtrix/tracking.py | 2 +- nipype/interfaces/mrtrix3/connectivity.py | 4 +- nipype/interfaces/mrtrix3/preprocess.py | 6 +- nipype/interfaces/mrtrix3/reconst.py | 4 +- nipype/interfaces/mrtrix3/tracking.py | 2 +- nipype/interfaces/mrtrix3/utils.py | 12 +-- nipype/interfaces/niftyfit/asl.py | 2 +- nipype/interfaces/niftyfit/dwi.py | 4 +- nipype/interfaces/niftyfit/qt1.py | 2 +- nipype/interfaces/niftyreg/reg.py | 4 +- nipype/interfaces/niftyreg/regutils.py | 12 +-- nipype/interfaces/niftyseg/em.py | 2 +- nipype/interfaces/niftyseg/label_fusion.py | 4 +- nipype/interfaces/niftyseg/lesions.py | 2 +- nipype/interfaces/niftyseg/maths.py | 32 ++++---- nipype/interfaces/niftyseg/patchmatch.py | 2 +- nipype/interfaces/niftyseg/stats.py | 12 +-- nipype/interfaces/quickshear.py | 2 +- nipype/interfaces/slicer/generate_classes.py | 4 +- nipype/interfaces/utility/base.py | 2 +- nipype/interfaces/vista/vista.py | 4 +- nipype/pipeline/engine/nodes.py | 2 +- nipype/pipeline/plugins/sge.py | 4 +- nipype/utils/filemanip.py | 10 +-- pytest.ini | 3 +- tools/apigen.py | 6 +- tools/interfacedocgen.py | 6 +- 59 files changed, 369 insertions(+), 370 deletions(-) diff --git a/nipype/interfaces/afni/model.py b/nipype/interfaces/afni/model.py index d5730d15f9..4fdc533a1b 100644 --- a/nipype/interfaces/afni/model.py +++ b/nipype/interfaces/afni/model.py @@ -260,7 +260,7 @@ class Deconvolve(AFNICommand): >>> deconvolve.inputs.stim_label = [(1, 'Houses')] >>> deconvolve.inputs.gltsym = ['SYM: +Houses'] >>> deconvolve.inputs.glt_label = [(1, 'Houses')] - >>> deconvolve.cmdline + >>> deconvolve.cmdline # doctest: +ALLOW_UNICODE "3dDeconvolve -input functional.nii functional2.nii -bucket output.nii -x1D output.1D -num_stimts 1 -stim_times 1 timeseries.txt 'SPMG1(4)' -stim_label 1 Houses -num_glt 1 -gltsym 'SYM: +Houses' -glt_label 1 Houses" >>> res = deconvolve.run() # doctest: +SKIP """ @@ -574,7 +574,7 @@ class Remlfit(AFNICommand): >>> remlfit.inputs.out_file = 'output.nii' >>> remlfit.inputs.matrix = 'output.1D' >>> remlfit.inputs.gltsym = [('SYM: +Lab1 -Lab2', 'TestSYM'), ('timeseries.txt', 'TestFile')] - >>> remlfit.cmdline + >>> remlfit.cmdline # doctest: +ALLOW_UNICODE '3dREMLfit -gltsym "SYM: +Lab1 -Lab2" TestSYM -gltsym "timeseries.txt" TestFile -input "functional.nii functional2.nii" -matrix output.1D -Rbuck output.nii' >>> res = remlfit.run() # doctest: +SKIP """ @@ -660,7 +660,7 @@ class Synthesize(AFNICommand): >>> synthesize.inputs.cbucket = 'functional.nii' >>> synthesize.inputs.matrix = 'output.1D' >>> synthesize.inputs.select = ['baseline'] - >>> synthesize.cmdline + >>> synthesize.cmdline # doctest: +ALLOW_UNICODE '3dSynthesize -cbucket functional.nii -matrix output.1D -select baseline' >>> syn = synthesize.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/afni/preprocess.py b/nipype/interfaces/afni/preprocess.py index 606b06f7f6..a769811df1 100644 --- a/nipype/interfaces/afni/preprocess.py +++ b/nipype/interfaces/afni/preprocess.py @@ -169,7 +169,7 @@ class AlignEpiAnatPy(AFNIPythonCommand): >>> al_ea.inputs.volreg = 'off' >>> al_ea.inputs.tshift = 'off' >>> al_ea.inputs.save_skullstrip = True - >>> al_ea.cmdline +ELLIPSIS + >>> al_ea.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS 'python2 ...align_epi_anat.py -anat structural.nii -epi_base 0 -epi_strip 3dAutomask -epi functional.nii -save_skullstrip -suffix _al -tshift off -volreg off' >>> res = allineate.run() # doctest: +SKIP """ @@ -462,7 +462,7 @@ class Allineate(AFNICommand): >>> allineate.inputs.in_file = 'functional.nii' >>> allineate.inputs.out_file = 'functional_allineate.nii' >>> allineate.inputs.in_matrix = 'cmatrix.mat' - >>> allineate.cmdline + >>> allineate.cmdline # doctest: +ALLOW_UNICODE '3dAllineate -source functional.nii -prefix functional_allineate.nii -1Dmatrix_apply cmatrix.mat' >>> res = allineate.run() # doctest: +SKIP @@ -471,7 +471,7 @@ class Allineate(AFNICommand): >>> allineate.inputs.in_file = 'functional.nii' >>> allineate.inputs.reference = 'structural.nii' >>> allineate.inputs.allcostx = 'out.allcostX.txt' - >>> allineate.cmdline + >>> allineate.cmdline # doctest: +ALLOW_UNICODE '3dAllineate -source functional.nii -base structural.nii -allcostx |& tee out.allcostX.txt' >>> res = allineate.run() # doctest: +SKIP """ @@ -574,7 +574,7 @@ class AutoTcorrelate(AFNICommand): >>> corr.inputs.eta2 = True >>> corr.inputs.mask = 'mask.nii' >>> corr.inputs.mask_only_targets = True - >>> corr.cmdline # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE + >>> corr.cmdline # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE +ALLOW_UNICODE '3dAutoTcorrelate -eta2 -mask mask.nii -mask_only_targets -prefix functional_similarity_matrix.1D -polort -1 functional.nii' >>> res = corr.run() # doctest: +SKIP """ @@ -643,7 +643,7 @@ class Automask(AFNICommand): >>> automask.inputs.in_file = 'functional.nii' >>> automask.inputs.dilate = 1 >>> automask.inputs.outputtype = 'NIFTI' - >>> automask.cmdline # doctest: +ELLIPSIS + >>> automask.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE '3dAutomask -apply_prefix functional_masked.nii -dilate 1 -prefix functional_mask.nii functional.nii' >>> res = automask.run() # doctest: +SKIP @@ -737,7 +737,7 @@ class AutoTLRC(AFNICommand): >>> autoTLRC.inputs.in_file = 'structural.nii' >>> autoTLRC.inputs.no_ss = True >>> autoTLRC.inputs.base = "TT_N27+tlrc" - >>> autoTLRC.cmdline + >>> autoTLRC.cmdline # doctest: +ALLOW_UNICODE '@auto_tlrc -base TT_N27+tlrc -input structural.nii -no_ss' >>> res = autoTLRC.run() # doctest: +SKIP @@ -849,7 +849,7 @@ class Bandpass(AFNICommand): >>> bandpass.inputs.in_file = 'functional.nii' >>> bandpass.inputs.highpass = 0.005 >>> bandpass.inputs.lowpass = 0.1 - >>> bandpass.cmdline + >>> bandpass.cmdline # doctest: +ALLOW_UNICODE '3dBandpass -prefix functional_bp 0.005000 0.100000 functional.nii' >>> res = bandpass.run() # doctest: +SKIP @@ -917,7 +917,7 @@ class BlurInMask(AFNICommand): >>> bim.inputs.in_file = 'functional.nii' >>> bim.inputs.mask = 'mask.nii' >>> bim.inputs.fwhm = 5.0 - >>> bim.cmdline # doctest: +ELLIPSIS + >>> bim.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE '3dBlurInMask -input functional.nii -FWHM 5.000000 -mask mask.nii -prefix functional_blur' >>> res = bim.run() # doctest: +SKIP @@ -968,7 +968,7 @@ class BlurToFWHM(AFNICommand): >>> blur = afni.preprocess.BlurToFWHM() >>> blur.inputs.in_file = 'epi.nii' >>> blur.inputs.fwhm = 2.5 - >>> blur.cmdline # doctest: +ELLIPSIS + >>> blur.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE '3dBlurToFWHM -FWHM 2.500000 -input epi.nii -prefix epi_afni' >>> res = blur.run() # doctest: +SKIP @@ -1019,7 +1019,7 @@ class ClipLevel(AFNICommandBase): >>> from nipype.interfaces.afni import preprocess >>> cliplevel = preprocess.ClipLevel() >>> cliplevel.inputs.in_file = 'anatomical.nii' - >>> cliplevel.cmdline + >>> cliplevel.cmdline # doctest: +ALLOW_UNICODE '3dClipLevel anatomical.nii' >>> res = cliplevel.run() # doctest: +SKIP @@ -1102,7 +1102,7 @@ class DegreeCentrality(AFNICommand): >>> degree.inputs.mask = 'mask.nii' >>> degree.inputs.sparsity = 1 # keep the top one percent of connections >>> degree.inputs.out_file = 'out.nii' - >>> degree.cmdline + >>> degree.cmdline # doctest: +ALLOW_UNICODE '3dDegreeCentrality -mask mask.nii -prefix out.nii -sparsity 1.000000 functional.nii' >>> res = degree.run() # doctest: +SKIP @@ -1152,7 +1152,7 @@ class Despike(AFNICommand): >>> from nipype.interfaces import afni >>> despike = afni.Despike() >>> despike.inputs.in_file = 'functional.nii' - >>> despike.cmdline + >>> despike.cmdline # doctest: +ALLOW_UNICODE '3dDespike -prefix functional_despike functional.nii' >>> res = despike.run() # doctest: +SKIP @@ -1193,7 +1193,7 @@ class Detrend(AFNICommand): >>> detrend.inputs.in_file = 'functional.nii' >>> detrend.inputs.args = '-polort 2' >>> detrend.inputs.outputtype = 'AFNI' - >>> detrend.cmdline + >>> detrend.cmdline # doctest: +ALLOW_UNICODE '3dDetrend -polort 2 -prefix functional_detrend functional.nii' >>> res = detrend.run() # doctest: +SKIP @@ -1265,7 +1265,7 @@ class ECM(AFNICommand): >>> ecm.inputs.mask = 'mask.nii' >>> ecm.inputs.sparsity = 0.1 # keep top 0.1% of connections >>> ecm.inputs.out_file = 'out.nii' - >>> ecm.cmdline + >>> ecm.cmdline # doctest: +ALLOW_UNICODE '3dECM -mask mask.nii -prefix out.nii -sparsity 0.100000 functional.nii' >>> res = ecm.run() # doctest: +SKIP @@ -1322,7 +1322,7 @@ class Fim(AFNICommand): >>> fim.inputs.out_file = 'functional_corr.nii' >>> fim.inputs.out = 'Correlation' >>> fim.inputs.fim_thr = 0.0009 - >>> fim.cmdline + >>> fim.cmdline # doctest: +ALLOW_UNICODE '3dfim+ -input functional.nii -ideal_file seed.1D -fim_thr 0.000900 -out Correlation -bucket functional_corr.nii' >>> res = fim.run() # doctest: +SKIP @@ -1376,7 +1376,7 @@ class Fourier(AFNICommand): >>> fourier.inputs.retrend = True >>> fourier.inputs.highpass = 0.005 >>> fourier.inputs.lowpass = 0.1 - >>> fourier.cmdline + >>> fourier.cmdline # doctest: +ALLOW_UNICODE '3dFourier -highpass 0.005000 -lowpass 0.100000 -prefix functional_fourier -retrend functional.nii' >>> res = fourier.run() # doctest: +SKIP @@ -1449,7 +1449,7 @@ class Hist(AFNICommandBase): >>> from nipype.interfaces import afni >>> hist = afni.Hist() >>> hist.inputs.in_file = 'functional.nii' - >>> hist.cmdline + >>> hist.cmdline # doctest: +ALLOW_UNICODE '3dHist -input functional.nii -prefix functional_hist' >>> res = hist.run() # doctest: +SKIP @@ -1513,7 +1513,7 @@ class LFCD(AFNICommand): >>> lfcd.inputs.mask = 'mask.nii' >>> lfcd.inputs.thresh = 0.8 # keep all connections with corr >= 0.8 >>> lfcd.inputs.out_file = 'out.nii' - >>> lfcd.cmdline + >>> lfcd.cmdline # doctest: +ALLOW_UNICODE '3dLFCD -mask mask.nii -prefix out.nii -thresh 0.800000 functional.nii' >>> res = lfcd.run() # doctest: +SKIP """ @@ -1564,7 +1564,7 @@ class Maskave(AFNICommand): >>> maskave.inputs.in_file = 'functional.nii' >>> maskave.inputs.mask= 'seed_mask.nii' >>> maskave.inputs.quiet= True - >>> maskave.cmdline # doctest: +ELLIPSIS + >>> maskave.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE '3dmaskave -mask seed_mask.nii -quiet functional.nii > functional_maskave.1D' >>> res = maskave.run() # doctest: +SKIP @@ -1635,7 +1635,7 @@ class Means(AFNICommand): >>> means.inputs.in_file_a = 'im1.nii' >>> means.inputs.in_file_b = 'im2.nii' >>> means.inputs.out_file = 'output.nii' - >>> means.cmdline + >>> means.cmdline # doctest: +ALLOW_UNICODE '3dMean -prefix output.nii im1.nii im2.nii' >>> res = means.run() # doctest: +SKIP @@ -1644,7 +1644,7 @@ class Means(AFNICommand): >>> means.inputs.in_file_a = 'im1.nii' >>> means.inputs.out_file = 'output.nii' >>> means.inputs.datum = 'short' - >>> means.cmdline + >>> means.cmdline # doctest: +ALLOW_UNICODE '3dMean -datum short -prefix output.nii im1.nii' >>> res = means.run() # doctest: +SKIP @@ -1742,7 +1742,7 @@ class OutlierCount(CommandLine): >>> from nipype.interfaces import afni >>> toutcount = afni.OutlierCount() >>> toutcount.inputs.in_file = 'functional.nii' - >>> toutcount.cmdline # doctest: +ELLIPSIS + >>> toutcount.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE '3dToutcount functional.nii' >>> res = toutcount.run() # doctest: +SKIP @@ -1855,7 +1855,7 @@ class QualityIndex(CommandLine): >>> from nipype.interfaces import afni >>> tqual = afni.QualityIndex() >>> tqual.inputs.in_file = 'functional.nii' - >>> tqual.cmdline # doctest: +ELLIPSIS + >>> tqual.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE '3dTqual functional.nii > functional_tqual' >>> res = tqual.run() # doctest: +SKIP @@ -1912,7 +1912,7 @@ class ROIStats(AFNICommandBase): >>> roistats.inputs.in_file = 'functional.nii' >>> roistats.inputs.mask = 'skeleton_mask.nii.gz' >>> roistats.inputs.quiet = True - >>> roistats.cmdline + >>> roistats.cmdline # doctest: +ALLOW_UNICODE '3dROIstats -quiet -mask skeleton_mask.nii.gz functional.nii' >>> res = roistats.run() # doctest: +SKIP @@ -2007,7 +2007,7 @@ class Retroicor(AFNICommand): >>> ret.inputs.card = 'mask.1D' >>> ret.inputs.resp = 'resp.1D' >>> ret.inputs.outputtype = 'NIFTI' - >>> ret.cmdline + >>> ret.cmdline # doctest: +ALLOW_UNICODE '3dretroicor -prefix functional_retroicor.nii -resp resp.1D -card mask.1D functional.nii' >>> res = ret.run() # doctest: +SKIP @@ -2090,7 +2090,7 @@ class Seg(AFNICommandBase): >>> seg = preprocess.Seg() >>> seg.inputs.in_file = 'structural.nii' >>> seg.inputs.mask = 'AUTO' - >>> seg.cmdline + >>> seg.cmdline # doctest: +ALLOW_UNICODE '3dSeg -mask AUTO -anat structural.nii' >>> res = seg.run() # doctest: +SKIP @@ -2146,7 +2146,7 @@ class SkullStrip(AFNICommand): >>> skullstrip = afni.SkullStrip() >>> skullstrip.inputs.in_file = 'functional.nii' >>> skullstrip.inputs.args = '-o_ply' - >>> skullstrip.cmdline + >>> skullstrip.cmdline # doctest: +ALLOW_UNICODE '3dSkullStrip -input functional.nii -o_ply -prefix functional_skullstrip' >>> res = skullstrip.run() # doctest: +SKIP @@ -2225,7 +2225,7 @@ class TCorr1D(AFNICommand): >>> tcorr1D = afni.TCorr1D() >>> tcorr1D.inputs.xset= 'u_rc1s1_Template.nii' >>> tcorr1D.inputs.y_1d = 'seed.1D' - >>> tcorr1D.cmdline + >>> tcorr1D.cmdline # doctest: +ALLOW_UNICODE '3dTcorr1D -prefix u_rc1s1_Template_correlation.nii.gz u_rc1s1_Template.nii seed.1D' >>> res = tcorr1D.run() # doctest: +SKIP @@ -2367,7 +2367,7 @@ class TCorrMap(AFNICommand): >>> tcm.inputs.in_file = 'functional.nii' >>> tcm.inputs.mask = 'mask.nii' >>> tcm.mean_file = 'functional_meancorr.nii' - >>> tcm.cmdline +SKIP + >>> tcm.cmdline # doctest: +ALLOW_UNICODE +SKIP '3dTcorrMap -input functional.nii -mask mask.nii -Mean functional_meancorr.nii' >>> res = tcm.run() # doctest: +SKIP @@ -2435,7 +2435,7 @@ class TCorrelate(AFNICommand): >>> tcorrelate.inputs.out_file = 'functional_tcorrelate.nii.gz' >>> tcorrelate.inputs.polort = -1 >>> tcorrelate.inputs.pearson = True - >>> tcorrelate.cmdline + >>> tcorrelate.cmdline # doctest: +ALLOW_UNICODE '3dTcorrelate -prefix functional_tcorrelate.nii.gz -pearson -polort -1 u_rc1s1_Template.nii u_rc1s2_Template.nii' >>> res = tcarrelate.run() # doctest: +SKIP @@ -2497,7 +2497,7 @@ class TNorm(AFNICommand): >>> tnorm.inputs.in_file = 'functional.nii' >>> tnorm.inputs.norm2 = True >>> tnorm.inputs.out_file = 'rm.errts.unit errts+tlrc' - >>> tnorm.cmdline + >>> tnorm.cmdline # doctest: +ALLOW_UNICODE '3dTnorm -norm2 -prefix rm.errts.unit errts+tlrc functional.nii' >>> res = tshift.run() # doctest: +SKIP @@ -2567,7 +2567,7 @@ class TShift(AFNICommand): >>> tshift.inputs.in_file = 'functional.nii' >>> tshift.inputs.tpattern = 'alt+z' >>> tshift.inputs.tzero = 0.0 - >>> tshift.cmdline + >>> tshift.cmdline # doctest: +ALLOW_UNICODE '3dTshift -prefix functional_tshift -tpattern alt+z -tzero 0.0 functional.nii' >>> res = tshift.run() # doctest: +SKIP @@ -2663,7 +2663,7 @@ class Volreg(AFNICommand): >>> volreg.inputs.args = '-Fourier -twopass' >>> volreg.inputs.zpad = 4 >>> volreg.inputs.outputtype = 'NIFTI' - >>> volreg.cmdline # doctest: +ELLIPSIS + >>> volreg.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE '3dvolreg -Fourier -twopass -1Dfile functional.1D -1Dmatrix_save functional.aff12.1D -prefix functional_volreg.nii -zpad 4 -maxdisp1D functional_md.1D functional.nii' >>> res = volreg.run() # doctest: +SKIP @@ -2677,7 +2677,7 @@ class Volreg(AFNICommand): >>> volreg.inputs.out_file = 'rm.epi.volreg.r1' >>> volreg.inputs.oned_file = 'dfile.r1.1D' >>> volreg.inputs.oned_matrix_save = 'mat.r1.tshift+orig.1D' - >>> volreg.cmdline + >>> volreg.cmdline # doctest: +ALLOW_UNICODE '3dvolreg -cubic -1Dfile dfile.r1.1D -1Dmatrix_save mat.r1.tshift+orig.1D -prefix rm.epi.volreg.r1 -verbose -base functional.nii -zpad 1 -maxdisp1D functional_md.1D functional.nii' >>> res = volreg.run() # doctest: +SKIP @@ -2752,7 +2752,7 @@ class Warp(AFNICommand): >>> warp.inputs.in_file = 'structural.nii' >>> warp.inputs.deoblique = True >>> warp.inputs.out_file = 'trans.nii.gz' - >>> warp.cmdline + >>> warp.cmdline # doctest: +ALLOW_UNICODE '3dWarp -deoblique -prefix trans.nii.gz structural.nii' >>> res = warp.run() # doctest: +SKIP @@ -2760,7 +2760,7 @@ class Warp(AFNICommand): >>> warp_2.inputs.in_file = 'structural.nii' >>> warp_2.inputs.newgrid = 1.0 >>> warp_2.inputs.out_file = 'trans.nii.gz' - >>> warp_2.cmdline + >>> warp_2.cmdline # doctest: +ALLOW_UNICODE '3dWarp -newgrid 1.000000 -prefix trans.nii.gz structural.nii' >>> res = warp_2.run() # doctest: +SKIP @@ -2854,7 +2854,7 @@ class QwarpPlusMinus(CommandLine): >>> qwarp.inputs.source_file = 'sub-01_dir-LR_epi.nii.gz' >>> qwarp.inputs.nopadWARP = True >>> qwarp.inputs.base_file = 'sub-01_dir-RL_epi.nii.gz' - >>> qwarp.cmdline + >>> qwarp.cmdline # doctest: +ALLOW_UNICODE '3dQwarp -prefix Qwarp.nii.gz -plusminus -base sub-01_dir-RL_epi.nii.gz -nopadWARP -source sub-01_dir-LR_epi.nii.gz' >>> res = warp.run() # doctest: +SKIP @@ -3426,7 +3426,7 @@ class Qwarp(AFNICommand): >>> qwarp.inputs.nopadWARP = True >>> qwarp.inputs.base_file = 'sub-01_dir-RL_epi.nii.gz' >>> qwarp.inputs.plusminus = True - >>> qwarp.cmdline + >>> qwarp.cmdline # doctest: +ALLOW_UNICODE '3dQwarp -base sub-01_dir-RL_epi.nii.gz -source sub-01_dir-LR_epi.nii.gz -nopadWARP -prefix sub-01_dir-LR_epi_QW -plusminus' >>> res = qwarp.run() # doctest: +SKIP @@ -3435,7 +3435,7 @@ class Qwarp(AFNICommand): >>> qwarp.inputs.in_file = 'structural.nii' >>> qwarp.inputs.base_file = 'mni.nii' >>> qwarp.inputs.resample = True - >>> qwarp.cmdline + >>> qwarp.cmdline # doctest: +ALLOW_UNICODE '3dQwarp -base mni.nii -source structural.nii -prefix structural_QW -resample' >>> res = qwarp.run() # doctest: +SKIP @@ -3449,7 +3449,7 @@ class Qwarp(AFNICommand): >>> qwarp.inputs.verb = True >>> qwarp.inputs.iwarp = True >>> qwarp.inputs.blur = [0,3] - >>> qwarp.cmdline + >>> qwarp.cmdline # doctest: +ALLOW_UNICODE '3dQwarp -base epi.nii -blur 0.0 3.0 -source structural.nii -iwarp -prefix anatSSQ.nii.gz -resample -verb -lpc' >>> res = qwarp.run() # doctest: +SKIP @@ -3459,7 +3459,7 @@ class Qwarp(AFNICommand): >>> qwarp.inputs.base_file = 'mni.nii' >>> qwarp.inputs.duplo = True >>> qwarp.inputs.blur = [0,3] - >>> qwarp.cmdline + >>> qwarp.cmdline # doctest: +ALLOW_UNICODE '3dQwarp -base mni.nii -blur 0.0 3.0 -duplo -source structural.nii -prefix structural_QW' >>> res = qwarp.run() # doctest: +SKIP @@ -3471,7 +3471,7 @@ class Qwarp(AFNICommand): >>> qwarp.inputs.minpatch = 25 >>> qwarp.inputs.blur = [0,3] >>> qwarp.inputs.out_file = 'Q25' - >>> qwarp.cmdline + >>> qwarp.cmdline # doctest: +ALLOW_UNICODE '3dQwarp -base mni.nii -blur 0.0 3.0 -duplo -source structural.nii -minpatch 25 -prefix Q25' >>> res = qwarp.run() # doctest: +SKIP >>> qwarp2 = afni.Qwarp() @@ -3481,7 +3481,7 @@ class Qwarp(AFNICommand): >>> qwarp2.inputs.out_file = 'Q11' >>> qwarp2.inputs.inilev = 7 >>> qwarp2.inputs.iniwarp = ['Q25_warp+tlrc.HEAD'] - >>> qwarp2.cmdline + >>> qwarp2.cmdline # doctest: +ALLOW_UNICODE '3dQwarp -base mni.nii -blur 0.0 2.0 -source structural.nii -inilev 7 -iniwarp Q25_warp+tlrc.HEAD -prefix Q11' >>> res2 = qwarp2.run() # doctest: +SKIP >>> res2 = qwarp2.run() # doctest: +SKIP diff --git a/nipype/interfaces/afni/utils.py b/nipype/interfaces/afni/utils.py index 89f7b941a8..8245578780 100644 --- a/nipype/interfaces/afni/utils.py +++ b/nipype/interfaces/afni/utils.py @@ -74,7 +74,7 @@ class ABoverlap(AFNICommand): >>> aboverlap.inputs.in_file_a = 'functional.nii' >>> aboverlap.inputs.in_file_b = 'structural.nii' >>> aboverlap.inputs.out_file = 'out.mask_ae_overlap.txt' - >>> aboverlap.cmdline + >>> aboverlap.cmdline # doctest: +ALLOW_UNICODE '3dABoverlap functional.nii structural.nii |& tee out.mask_ae_overlap.txt' >>> res = aboverlap.run() # doctest: +SKIP @@ -139,7 +139,7 @@ class AFNItoNIFTI(AFNICommand): >>> a2n = afni.AFNItoNIFTI() >>> a2n.inputs.in_file = 'afni_output.3D' >>> a2n.inputs.out_file = 'afni_output.nii' - >>> a2n.cmdline + >>> a2n.cmdline # doctest: +ALLOW_UNICODE '3dAFNItoNIFTI -prefix afni_output.nii afni_output.3D' >>> res = a2n.run() # doctest: +SKIP @@ -207,7 +207,7 @@ class Autobox(AFNICommand): >>> abox = afni.Autobox() >>> abox.inputs.in_file = 'structural.nii' >>> abox.inputs.padding = 5 - >>> abox.cmdline + >>> abox.cmdline # doctest: +ALLOW_UNICODE '3dAutobox -input structural.nii -prefix structural_autobox -npad 5' >>> res = abox.run() # doctest: +SKIP @@ -288,7 +288,7 @@ class BrickStat(AFNICommandBase): >>> brickstat.inputs.in_file = 'functional.nii' >>> brickstat.inputs.mask = 'skeleton_mask.nii.gz' >>> brickstat.inputs.min = True - >>> brickstat.cmdline + >>> brickstat.cmdline # doctest: +ALLOW_UNICODE '3dBrickStat -min -mask skeleton_mask.nii.gz functional.nii' >>> res = brickstat.run() # doctest: +SKIP @@ -395,7 +395,7 @@ class Bucket(AFNICommand): >>> bucket = afni.Bucket() >>> bucket.inputs.in_file = [('functional.nii',"{2..$}"), ('functional.nii',"{1}")] >>> bucket.inputs.out_file = 'vr_base' - >>> bucket.cmdline + >>> bucket.cmdline # doctest: +ALLOW_UNICODE "3dbucket -prefix vr_base functional.nii'{2..$}' functional.nii'{1}'" >>> res = bucket.run() # doctest: +SKIP @@ -469,7 +469,7 @@ class Calc(AFNICommand): >>> calc.inputs.expr='a*b' >>> calc.inputs.out_file = 'functional_calc.nii.gz' >>> calc.inputs.outputtype = 'NIFTI' - >>> calc.cmdline # doctest: +ELLIPSIS + >>> calc.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE '3dcalc -a functional.nii -b functional2.nii -expr "a*b" -prefix functional_calc.nii.gz' >>> res = calc.run() # doctest: +SKIP @@ -479,7 +479,7 @@ class Calc(AFNICommand): >>> calc.inputs.expr = '1' >>> calc.inputs.out_file = 'rm.epi.all1' >>> calc.inputs.overwrite = True - >>> calc.cmdline + >>> calc.cmdline # doctest: +ALLOW_UNICODE '3dcalc -a functional.nii -expr "1" -prefix rm.epi.all1 -overwrite' >>> res = calc.run() # doctest: +SKIP @@ -574,7 +574,7 @@ class Cat(AFNICommand): >>> cat1d.inputs.sel = "'[0,2]'" >>> cat1d.inputs.in_files = ['f1.1D', 'f2.1D'] >>> cat1d.inputs.out_file = 'catout.1d' - >>> cat1d.cmdline + >>> cat1d.cmdline # doctest: +ALLOW_UNICODE "1dcat -sel '[0,2]' f1.1D f2.1D > catout.1d" >>> res = cat1d.run() # doctest: +SKIP @@ -627,7 +627,7 @@ class CatMatvec(AFNICommand): >>> cmv = afni.CatMatvec() >>> cmv.inputs.in_file = [('structural.BRIK::WARP_DATA','I')] >>> cmv.inputs.out_file = 'warp.anat.Xat.1D' - >>> cmv.cmdline + >>> cmv.cmdline # doctest: +ALLOW_UNICODE 'cat_matvec structural.BRIK::WARP_DATA -I > warp.anat.Xat.1D' >>> res = cmv.run() # doctest: +SKIP @@ -719,7 +719,7 @@ class CenterMass(AFNICommandBase): >>> cm.inputs.in_file = 'structural.nii' >>> cm.inputs.cm_file = 'cm.txt' >>> cm.inputs.roi_vals = [2, 10] - >>> cm.cmdline + >>> cm.cmdline # doctest: +ALLOW_UNICODE '3dCM -roi_vals 2 10 structural.nii > cm.txt' >>> res = 3dcm.run() # doctest: +SKIP """ @@ -766,26 +766,26 @@ class Copy(AFNICommand): >>> from nipype.interfaces import afni >>> copy3d = afni.Copy() >>> copy3d.inputs.in_file = 'functional.nii' - >>> copy3d.cmdline + >>> copy3d.cmdline # doctest: +ALLOW_UNICODE '3dcopy functional.nii functional_copy' >>> res = copy3d.run() # doctest: +SKIP >>> from copy import deepcopy >>> copy3d_2 = deepcopy(copy3d) >>> copy3d_2.inputs.outputtype = 'NIFTI' - >>> copy3d_2.cmdline + >>> copy3d_2.cmdline # doctest: +ALLOW_UNICODE '3dcopy functional.nii functional_copy.nii' >>> res = copy3d_2.run() # doctest: +SKIP >>> copy3d_3 = deepcopy(copy3d) >>> copy3d_3.inputs.outputtype = 'NIFTI_GZ' - >>> copy3d_3.cmdline + >>> copy3d_3.cmdline # doctest: +ALLOW_UNICODE '3dcopy functional.nii functional_copy.nii.gz' >>> res = copy3d_3.run() # doctest: +SKIP >>> copy3d_4 = deepcopy(copy3d) >>> copy3d_4.inputs.out_file = 'new_func.nii' - >>> copy3d_4.cmdline + >>> copy3d_4.cmdline # doctest: +ALLOW_UNICODE '3dcopy functional.nii new_func.nii' >>> res = copy3d_4.run() # doctest: +SKIP @@ -857,7 +857,7 @@ class Dot(AFNICommand): >>> dot.inputs.in_files = ['functional.nii[0]', 'structural.nii'] >>> dot.inputs.dodice = True >>> dot.inputs.out_file = 'out.mask_ae_dice.txt' - >>> dot.cmdline + >>> dot.cmdline # doctest: +ALLOW_UNICODE '3dDot -dodice functional.nii[0] structural.nii |& tee out.mask_ae_dice.txt' >>> res = copy3d.run() # doctest: +SKIP @@ -948,7 +948,7 @@ class Edge3(AFNICommand): >>> edge3.inputs.in_file = 'functional.nii' >>> edge3.inputs.out_file = 'edges.nii' >>> edge3.inputs.datum = 'byte' - >>> edge3.cmdline + >>> edge3.cmdline # doctest: +ALLOW_UNICODE '3dedge3 -input functional.nii -datum byte -prefix edges.nii' >>> res = edge3.run() # doctest: +SKIP @@ -1019,7 +1019,7 @@ class Eval(AFNICommand): >>> eval.inputs.expr = 'a*b' >>> eval.inputs.out1D = True >>> eval.inputs.out_file = 'data_calc.1D' - >>> eval.cmdline + >>> eval.cmdline # doctest: +ALLOW_UNICODE '1deval -a seed.1D -b resp.1D -expr "a*b" -1D -prefix data_calc.1D' >>> res = eval.run() # doctest: +SKIP @@ -1170,7 +1170,7 @@ class FWHMx(AFNICommandBase): >>> from nipype.interfaces import afni >>> fwhm = afni.FWHMx() >>> fwhm.inputs.in_file = 'functional.nii' - >>> fwhm.cmdline + >>> fwhm.cmdline # doctest: +ALLOW_UNICODE '3dFWHMx -input functional.nii -out functional_subbricks.out > functional_fwhmx.out' >>> res = fwhm.run() # doctest: +SKIP @@ -1397,7 +1397,7 @@ class MaskTool(AFNICommand): >>> masktool = afni.MaskTool() >>> masktool.inputs.in_file = 'functional.nii' >>> masktool.inputs.outputtype = 'NIFTI' - >>> masktool.cmdline + >>> masktool.cmdline # doctest: +ALLOW_UNICODE '3dmask_tool -prefix functional_mask.nii -input functional.nii' >>> res = automask.run() # doctest: +SKIP @@ -1446,7 +1446,7 @@ class Merge(AFNICommand): >>> merge.inputs.blurfwhm = 4 >>> merge.inputs.doall = True >>> merge.inputs.out_file = 'e7.nii' - >>> merge.cmdline + >>> merge.cmdline # doctest: +ALLOW_UNICODE '3dmerge -1blur_fwhm 4 -doall -prefix e7.nii functional.nii functional2.nii' >>> res = merge.run() # doctest: +SKIP @@ -1501,7 +1501,7 @@ class Notes(CommandLine): >>> notes.inputs.in_file = 'functional.HEAD' >>> notes.inputs.add = 'This note is added.' >>> notes.inputs.add_history = 'This note is added to history.' - >>> notes.cmdline + >>> notes.cmdline # doctest: +ALLOW_UNICODE '3dNotes -a "This note is added." -h "This note is added to history." functional.HEAD' >>> res = notes.run() # doctest: +SKIP """ @@ -1579,7 +1579,7 @@ class NwarpApply(AFNICommandBase): >>> nwarp.inputs.in_file = 'Fred+orig' >>> nwarp.inputs.master = 'NWARP' >>> nwarp.inputs.warp = "'Fred_WARP+tlrc Fred.Xaff12.1D'" - >>> nwarp.cmdline + >>> nwarp.cmdline # doctest: +ALLOW_UNICODE "3dNwarpApply -source Fred+orig -master NWARP -prefix Fred+orig_Nwarp -nwarp \'Fred_WARP+tlrc Fred.Xaff12.1D\'" >>> res = nwarp.run() # doctest: +SKIP @@ -1766,7 +1766,7 @@ class OneDToolPy(AFNIPythonCommand): >>> odt.inputs.set_nruns = 3 >>> odt.inputs.demean = True >>> odt.inputs.out_file = 'motion_dmean.1D' - >>> odt.cmdline +ELLIPSIS + >>> odt.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS 'python2 ...1d_tool.py -demean -infile f1.1D -write motion_dmean.1D -set_nruns 3' >>> res = odt.run() # doctest: +SKIP """ @@ -1881,14 +1881,14 @@ class Refit(AFNICommandBase): >>> refit = afni.Refit() >>> refit.inputs.in_file = 'structural.nii' >>> refit.inputs.deoblique = True - >>> refit.cmdline + >>> refit.cmdline # doctest: +ALLOW_UNICODE '3drefit -deoblique structural.nii' >>> res = refit.run() # doctest: +SKIP >>> refit_2 = afni.Refit() >>> refit_2.inputs.in_file = 'structural.nii' >>> refit_2.inputs.atrfloat = ("IJK_TO_DICOM_REAL", "'1 0.2 0 0 -0.2 1 0 0 0 0 1 0'") - >>> refit_2.cmdline + >>> refit_2.cmdline # doctest: +ALLOW_UNICODE "3drefit -atrfloat IJK_TO_DICOM_REAL '1 0.2 0 0 -0.2 1 0 0 0 0 1 0' structural.nii" >>> res = refit_2.run() # doctest: +SKIP """ @@ -1948,7 +1948,7 @@ class Resample(AFNICommand): >>> resample.inputs.in_file = 'functional.nii' >>> resample.inputs.orientation= 'RPI' >>> resample.inputs.outputtype = 'NIFTI' - >>> resample.cmdline + >>> resample.cmdline # doctest: +ALLOW_UNICODE '3dresample -orient RPI -prefix functional_resample.nii -inset functional.nii' >>> res = resample.run() # doctest: +SKIP @@ -2001,7 +2001,7 @@ class TCat(AFNICommand): >>> tcat.inputs.in_files = ['functional.nii', 'functional2.nii'] >>> tcat.inputs.out_file= 'functional_tcat.nii' >>> tcat.inputs.rlt = '+' - >>> tcat.cmdline +NORMALIZE_WHITESPACE + >>> tcat.cmdline # doctest: +ALLOW_UNICODE +NORMALIZE_WHITESPACE '3dTcat -rlt+ -prefix functional_tcat.nii functional.nii functional2.nii' >>> res = tcat.run() # doctest: +SKIP @@ -2051,7 +2051,7 @@ class TCatSubBrick(AFNICommand): >>> tcsb.inputs.in_files = [('functional.nii', "'{2..$}'"), ('functional2.nii', "'{2..$}'")] >>> tcsb.inputs.out_file= 'functional_tcat.nii' >>> tcsb.inputs.rlt = '+' - >>> tcsb.cmdline +NORMALIZE_WHITESPACE + >>> tcsb.cmdline # doctest: +ALLOW_UNICODE +NORMALIZE_WHITESPACE "3dTcat -rlt+ -prefix functional_tcat.nii functional.nii'{2..$}' functional2.nii'{2..$}' " >>> res = tcsb.run() # doctest: +SKIP @@ -2102,7 +2102,7 @@ class TStat(AFNICommand): >>> tstat.inputs.in_file = 'functional.nii' >>> tstat.inputs.args = '-mean' >>> tstat.inputs.out_file = 'stats' - >>> tstat.cmdline + >>> tstat.cmdline # doctest: +ALLOW_UNICODE '3dTstat -mean -prefix stats functional.nii' >>> res = tstat.run() # doctest: +SKIP @@ -2164,7 +2164,7 @@ class To3D(AFNICommand): >>> to3d.inputs.in_folder = '.' >>> to3d.inputs.out_file = 'dicomdir.nii' >>> to3d.inputs.filetype = 'anat' - >>> to3d.cmdline # doctest: +ELLIPSIS + >>> to3d.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'to3d -datum float -anat -prefix dicomdir.nii ./*.dcm' >>> res = to3d.run() # doctest: +SKIP @@ -2268,7 +2268,7 @@ class Undump(AFNICommand): >>> unndump = afni.Undump() >>> unndump.inputs.in_file = 'structural.nii' >>> unndump.inputs.out_file = 'structural_undumped.nii' - >>> unndump.cmdline + >>> unndump.cmdline # doctest: +ALLOW_UNICODE '3dUndump -prefix structural_undumped.nii -master structural.nii' >>> res = unndump.run() # doctest: +SKIP @@ -2371,7 +2371,7 @@ class Unifize(AFNICommand): >>> unifize = afni.Unifize() >>> unifize.inputs.in_file = 'structural.nii' >>> unifize.inputs.out_file = 'structural_unifized.nii' - >>> unifize.cmdline + >>> unifize.cmdline # doctest: +ALLOW_UNICODE '3dUnifize -prefix structural_unifized.nii -input structural.nii' >>> res = unifize.run() # doctest: +SKIP @@ -2414,7 +2414,7 @@ class ZCutUp(AFNICommand): >>> zcutup.inputs.in_file = 'functional.nii' >>> zcutup.inputs.out_file = 'functional_zcutup.nii' >>> zcutup.inputs.keep= '0 10' - >>> zcutup.cmdline + >>> zcutup.cmdline # doctest: +ALLOW_UNICODE '3dZcutup -keep 0 10 -prefix functional_zcutup.nii functional.nii' >>> res = zcutup.run() # doctest: +SKIP @@ -2466,7 +2466,7 @@ class GCOR(CommandLine): >>> gcor = afni.GCOR() >>> gcor.inputs.in_file = 'structural.nii' >>> gcor.inputs.nfirst = 4 - >>> gcor.cmdline + >>> gcor.cmdline # doctest: +ALLOW_UNICODE '@compute_gcor -nfirst 4 -input structural.nii' >>> res = gcor.run() # doctest: +SKIP @@ -2538,7 +2538,7 @@ class Axialize(AFNICommand): >>> axial3d = afni.Axialize() >>> axial3d.inputs.in_file = 'functional.nii' >>> axial3d.inputs.out_file = 'axialized.nii' - >>> axial3d.cmdline + >>> axial3d.cmdline # doctest: +ALLOW_UNICODE '3daxialize -prefix axialized.nii functional.nii' >>> res = axial3d.run() # doctest: +SKIP @@ -2600,7 +2600,7 @@ class Zcat(AFNICommand): >>> zcat = afni.Zcat() >>> zcat.inputs.in_files = ['functional2.nii', 'functional3.nii'] >>> zcat.inputs.out_file = 'cat_functional.nii' - >>> zcat.cmdline + >>> zcat.cmdline # doctest: +ALLOW_UNICODE '3dZcat -prefix cat_functional.nii functional2.nii functional3.nii' >>> res = zcat.run() # doctest: +SKIP """ @@ -2702,7 +2702,7 @@ class Zeropad(AFNICommand): >>> zeropad.inputs.P = 10 >>> zeropad.inputs.R = 10 >>> zeropad.inputs.L = 10 - >>> zeropad.cmdline + >>> zeropad.cmdline # doctest: +ALLOW_UNICODE '3dZeropad -A 10 -I 10 -L 10 -P 10 -R 10 -S 10 -prefix pad_functional.nii functional.nii' >>> res = zeropad.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/ants/legacy.py b/nipype/interfaces/ants/legacy.py index 7df1731fa1..f545f3ed08 100644 --- a/nipype/interfaces/ants/legacy.py +++ b/nipype/interfaces/ants/legacy.py @@ -86,7 +86,7 @@ class antsIntroduction(ANTSCommand): >>> warp.inputs.reference_image = 'Template_6.nii' >>> warp.inputs.input_image = 'structural.nii' >>> warp.inputs.max_iterations = [30,90,20] - >>> warp.cmdline + >>> warp.cmdline # doctest: +ALLOW_UNICODE 'antsIntroduction.sh -d 3 -i structural.nii -m 30x90x20 -o ants_ -r Template_6.nii -t GR' """ @@ -204,7 +204,7 @@ class buildtemplateparallel(ANTSCommand): >>> tmpl = buildtemplateparallel() >>> tmpl.inputs.in_files = ['T1.nii', 'structural.nii'] >>> tmpl.inputs.max_iterations = [30, 90, 20] - >>> tmpl.cmdline + >>> tmpl.cmdline # doctest: +ALLOW_UNICODE 'buildtemplateparallel.sh -d 3 -i 4 -m 30x90x20 -o antsTMPL_ -c 0 -t GR T1.nii structural.nii' """ diff --git a/nipype/interfaces/ants/registration.py b/nipype/interfaces/ants/registration.py index 5f2fad1975..0b0e8f581e 100644 --- a/nipype/interfaces/ants/registration.py +++ b/nipype/interfaces/ants/registration.py @@ -119,7 +119,7 @@ class ANTS(ANTSCommand): >>> ants.inputs.regularization_gradient_field_sigma = 3 >>> ants.inputs.regularization_deformation_field_sigma = 0 >>> ants.inputs.number_of_affine_iterations = [10000,10000,10000,10000,10000] - >>> ants.cmdline + >>> ants.cmdline # doctest: +ALLOW_UNICODE 'ANTS 3 --MI-option 32x16000 --image-metric CC[ T1.nii, resting.nii, 1, 5 ] --number-of-affine-iterations \ 10000x10000x10000x10000x10000 --number-of-iterations 50x35x15 --output-naming MY --regularization Gauss[3.0,0.0] \ --transformation-model SyN[0.25] --use-Histogram-Matching 1' @@ -517,7 +517,7 @@ class Registration(ANTSCommand): >>> reg.inputs.use_estimate_learning_rate_once = [True, True] >>> reg.inputs.use_histogram_matching = [True, True] # This is the default >>> reg.inputs.output_warped_image = 'output_warped_image.nii.gz' - >>> reg.cmdline + >>> reg.cmdline # doctest: +ALLOW_UNICODE 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 0 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -533,7 +533,7 @@ class Registration(ANTSCommand): >>> reg.inputs.invert_initial_moving_transform = True >>> reg1 = copy.deepcopy(reg) >>> reg1.inputs.winsorize_lower_quantile = 0.025 - >>> reg1.cmdline + >>> reg1.cmdline # doctest: +ALLOW_UNICODE 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -549,7 +549,7 @@ class Registration(ANTSCommand): >>> reg2 = copy.deepcopy(reg) >>> reg2.inputs.winsorize_upper_quantile = 0.975 - >>> reg2.cmdline + >>> reg2.cmdline # doctest: +ALLOW_UNICODE 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -566,7 +566,7 @@ class Registration(ANTSCommand): >>> reg3 = copy.deepcopy(reg) >>> reg3.inputs.winsorize_lower_quantile = 0.025 >>> reg3.inputs.winsorize_upper_quantile = 0.975 - >>> reg3.cmdline + >>> reg3.cmdline # doctest: +ALLOW_UNICODE 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -580,7 +580,7 @@ class Registration(ANTSCommand): >>> reg3a = copy.deepcopy(reg) >>> reg3a.inputs.float = True - >>> reg3a.cmdline + >>> reg3a.cmdline # doctest: +ALLOW_UNICODE 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --float 1 \ --initial-moving-transform [ trans.mat, 1 ] --initialize-transforms-per-stage 0 --interpolation Linear \ --output [ output_, output_warped_image.nii.gz ] --transform Affine[ 2.0 ] \ @@ -595,7 +595,7 @@ class Registration(ANTSCommand): >>> reg3b = copy.deepcopy(reg) >>> reg3b.inputs.float = False - >>> reg3b.cmdline + >>> reg3b.cmdline # doctest: +ALLOW_UNICODE 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --float 0 \ --initial-moving-transform [ trans.mat, 1 ] --initialize-transforms-per-stage 0 --interpolation Linear \ --output [ output_, output_warped_image.nii.gz ] --transform Affine[ 2.0 ] \ @@ -616,7 +616,7 @@ class Registration(ANTSCommand): >>> reg4.inputs.initialize_transforms_per_stage = True >>> reg4.inputs.collapse_output_transforms = True >>> outputs = reg4._list_outputs() - >>> pprint.pprint(outputs) # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE + >>> pprint.pprint(outputs) # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE +ALLOW_UNICODE {'composite_transform': '.../nipype/testing/data/output_Composite.h5', 'elapsed_time': , 'forward_invert_flags': [], @@ -628,7 +628,7 @@ class Registration(ANTSCommand): 'reverse_transforms': [], 'save_state': '.../nipype/testing/data/trans.mat', 'warped_image': '.../nipype/testing/data/output_warped_image.nii.gz'} - >>> reg4.cmdline + >>> reg4.cmdline # doctest: +ALLOW_UNICODE 'antsRegistration --collapse-output-transforms 1 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 1 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --restore-state trans.mat --save-state trans.mat --transform Affine[ 2.0 ] \ @@ -644,7 +644,7 @@ class Registration(ANTSCommand): >>> reg4b = copy.deepcopy(reg4) >>> reg4b.inputs.write_composite_transform = False >>> outputs = reg4b._list_outputs() - >>> pprint.pprint(outputs) # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE + >>> pprint.pprint(outputs) # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE +ALLOW_UNICODE {'composite_transform': , 'elapsed_time': , 'forward_invert_flags': [False, False], @@ -659,7 +659,7 @@ class Registration(ANTSCommand): 'save_state': '.../nipype/testing/data/trans.mat', 'warped_image': '.../nipype/testing/data/output_warped_image.nii.gz'} >>> reg4b.aggregate_outputs() # doctest: +SKIP - >>> reg4b.cmdline + >>> reg4b.cmdline # doctest: +ALLOW_UNICODE 'antsRegistration --collapse-output-transforms 1 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 1 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --restore-state trans.mat --save-state trans.mat --transform Affine[ 2.0 ] \ @@ -687,7 +687,7 @@ class Registration(ANTSCommand): >>> reg5.inputs.radius_or_number_of_bins = [32, [32, 4] ] >>> reg5.inputs.sampling_strategy = ['Random', None] # use default strategy in second stage >>> reg5.inputs.sampling_percentage = [0.05, [0.05, 0.10]] - >>> reg5.cmdline + >>> reg5.cmdline # doctest: +ALLOW_UNICODE 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -708,7 +708,7 @@ class Registration(ANTSCommand): >>> reg6 = copy.deepcopy(reg5) >>> reg6.inputs.fixed_image = ['fixed1.nii', 'fixed2.nii'] >>> reg6.inputs.moving_image = ['moving1.nii', 'moving2.nii'] - >>> reg6.cmdline + >>> reg6.cmdline # doctest: +ALLOW_UNICODE 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -725,7 +725,7 @@ class Registration(ANTSCommand): >>> reg7a = copy.deepcopy(reg) >>> reg7a.inputs.interpolation = 'BSpline' >>> reg7a.inputs.interpolation_parameters = (3,) - >>> reg7a.cmdline + >>> reg7a.cmdline # doctest: +ALLOW_UNICODE 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation BSpline[ 3 ] --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -739,7 +739,7 @@ class Registration(ANTSCommand): >>> reg7b = copy.deepcopy(reg) >>> reg7b.inputs.interpolation = 'Gaussian' >>> reg7b.inputs.interpolation_parameters = (1.0, 1.0) - >>> reg7b.cmdline + >>> reg7b.cmdline # doctest: +ALLOW_UNICODE 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Gaussian[ 1.0, 1.0 ] \ --output [ output_, output_warped_image.nii.gz ] --transform Affine[ 2.0 ] \ @@ -756,7 +756,7 @@ class Registration(ANTSCommand): >>> reg8 = copy.deepcopy(reg) >>> reg8.inputs.transforms = ['Affine', 'BSplineSyN'] >>> reg8.inputs.transform_parameters = [(2.0,), (0.25, 26, 0, 3)] - >>> reg8.cmdline + >>> reg8.cmdline # doctest: +ALLOW_UNICODE 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -771,7 +771,7 @@ class Registration(ANTSCommand): >>> # Test masking >>> reg9 = copy.deepcopy(reg) >>> reg9.inputs.fixed_image_masks = ['NULL', 'fixed1.nii'] - >>> reg9.cmdline + >>> reg9.cmdline # doctest: +ALLOW_UNICODE 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -790,7 +790,7 @@ class Registration(ANTSCommand): >>> reg10 = copy.deepcopy(reg) >>> reg10.inputs.initial_moving_transform = ['func_to_struct.mat', 'ants_Warp.nii.gz'] >>> reg10.inputs.invert_initial_moving_transform = [False, False] - >>> reg10.cmdline + >>> reg10.cmdline # doctest: +ALLOW_UNICODE 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform \ [ func_to_struct.mat, 0 ] [ ants_Warp.nii.gz, 0 ] --initialize-transforms-per-stage 0 --interpolation Linear \ --output [ output_, output_warped_image.nii.gz ] --transform Affine[ 2.0 ] \ @@ -1290,7 +1290,7 @@ class MeasureImageSimilarity(ANTSCommand): >>> sim.inputs.sampling_percentage = 1.0 >>> sim.inputs.fixed_image_mask = 'mask.nii' >>> sim.inputs.moving_image_mask = 'mask.nii.gz' - >>> sim.cmdline + >>> sim.cmdline # doctest: +ALLOW_UNICODE u'MeasureImageSimilarity --dimensionality 3 --masks ["mask.nii","mask.nii.gz"] \ --metric MI["T1.nii","resting.nii",1.0,5,Regular,1.0]' """ diff --git a/nipype/interfaces/ants/resampling.py b/nipype/interfaces/ants/resampling.py index e268cb43e2..25fe08e52e 100644 --- a/nipype/interfaces/ants/resampling.py +++ b/nipype/interfaces/ants/resampling.py @@ -66,7 +66,7 @@ class WarpTimeSeriesImageMultiTransform(ANTSCommand): >>> wtsimt.inputs.input_image = 'resting.nii' >>> wtsimt.inputs.reference_image = 'ants_deformed.nii.gz' >>> wtsimt.inputs.transformation_series = ['ants_Warp.nii.gz','ants_Affine.txt'] - >>> wtsimt.cmdline + >>> wtsimt.cmdline # doctest: +ALLOW_UNICODE 'WarpTimeSeriesImageMultiTransform 4 resting.nii resting_wtsimt.nii -R ants_deformed.nii.gz ants_Warp.nii.gz \ ants_Affine.txt' @@ -179,7 +179,7 @@ class WarpImageMultiTransform(ANTSCommand): >>> wimt.inputs.input_image = 'structural.nii' >>> wimt.inputs.reference_image = 'ants_deformed.nii.gz' >>> wimt.inputs.transformation_series = ['ants_Warp.nii.gz','ants_Affine.txt'] - >>> wimt.cmdline + >>> wimt.cmdline # doctest: +ALLOW_UNICODE 'WarpImageMultiTransform 3 structural.nii structural_wimt.nii -R ants_deformed.nii.gz ants_Warp.nii.gz \ ants_Affine.txt' @@ -305,7 +305,7 @@ class ApplyTransforms(ANTSCommand): >>> at.inputs.input_image = 'moving1.nii' >>> at.inputs.reference_image = 'fixed1.nii' >>> at.inputs.transforms = 'identity' - >>> at.cmdline + >>> at.cmdline # doctest: +ALLOW_UNICODE 'antsApplyTransforms --default-value 0 --input moving1.nii \ --interpolation Linear --output moving1_trans.nii \ --reference-image fixed1.nii -t identity' @@ -319,7 +319,7 @@ class ApplyTransforms(ANTSCommand): >>> at.inputs.default_value = 0 >>> at.inputs.transforms = ['ants_Warp.nii.gz', 'trans.mat'] >>> at.inputs.invert_transform_flags = [False, False] - >>> at.cmdline + >>> at.cmdline # doctest: +ALLOW_UNICODE 'antsApplyTransforms --default-value 0 --dimensionality 3 --input moving1.nii --interpolation Linear \ --output deformed_moving1.nii --reference-image fixed1.nii --transform [ ants_Warp.nii.gz, 0 ] \ --transform [ trans.mat, 0 ]' @@ -334,7 +334,7 @@ class ApplyTransforms(ANTSCommand): >>> at1.inputs.default_value = 0 >>> at1.inputs.transforms = ['ants_Warp.nii.gz', 'trans.mat'] >>> at1.inputs.invert_transform_flags = [False, False] - >>> at1.cmdline + >>> at1.cmdline # doctest: +ALLOW_UNICODE 'antsApplyTransforms --default-value 0 --dimensionality 3 --input moving1.nii --interpolation BSpline[ 5 ] \ --output deformed_moving1.nii --reference-image fixed1.nii --transform [ ants_Warp.nii.gz, 0 ] \ --transform [ trans.mat, 0 ]' @@ -442,7 +442,7 @@ class ApplyTransformsToPoints(ANTSCommand): >>> at.inputs.input_file = 'moving.csv' >>> at.inputs.transforms = ['trans.mat', 'ants_Warp.nii.gz'] >>> at.inputs.invert_transform_flags = [False, False] - >>> at.cmdline + >>> at.cmdline # doctest: +ALLOW_UNICODE 'antsApplyTransformsToPoints --dimensionality 3 --input moving.csv --output moving_transformed.csv \ --transform [ trans.mat, 0 ] --transform [ ants_Warp.nii.gz, 0 ]' diff --git a/nipype/interfaces/ants/segmentation.py b/nipype/interfaces/ants/segmentation.py index 64ca7205ca..042303227a 100644 --- a/nipype/interfaces/ants/segmentation.py +++ b/nipype/interfaces/ants/segmentation.py @@ -91,7 +91,7 @@ class Atropos(ANTSCommand): >>> at.inputs.posterior_formulation = 'Socrates' >>> at.inputs.use_mixture_model_proportions = True >>> at.inputs.save_posteriors = True - >>> at.cmdline + >>> at.cmdline # doctest: +ALLOW_UNICODE 'Atropos --image-dimensionality 3 --icm [1,1] \ --initialization PriorProbabilityImages[2,priors/priorProbImages%02d.nii,0.8,1e-07] --intensity-image structural.nii \ --likelihood-model Gaussian --mask-image mask.nii --mrf [0.2,1x1x1] --convergence [5,1e-06] \ @@ -209,7 +209,7 @@ class LaplacianThickness(ANTSCommand): >>> cort_thick.inputs.input_wm = 'white_matter.nii.gz' >>> cort_thick.inputs.input_gm = 'gray_matter.nii.gz' >>> cort_thick.inputs.output_image = 'output_thickness.nii.gz' - >>> cort_thick.cmdline + >>> cort_thick.cmdline # doctest: +ALLOW_UNICODE 'LaplacianThickness white_matter.nii.gz gray_matter.nii.gz output_thickness.nii.gz' """ @@ -294,7 +294,7 @@ class N4BiasFieldCorrection(ANTSCommand): >>> n4.inputs.bspline_fitting_distance = 300 >>> n4.inputs.shrink_factor = 3 >>> n4.inputs.n_iterations = [50,50,30,20] - >>> n4.cmdline + >>> n4.cmdline # doctest: +ALLOW_UNICODE 'N4BiasFieldCorrection --bspline-fitting [ 300 ] \ -d 3 --input-image structural.nii \ --convergence [ 50x50x30x20 ] --output structural_corrected.nii \ @@ -302,7 +302,7 @@ class N4BiasFieldCorrection(ANTSCommand): >>> n4_2 = copy.deepcopy(n4) >>> n4_2.inputs.convergence_threshold = 1e-6 - >>> n4_2.cmdline + >>> n4_2.cmdline # doctest: +ALLOW_UNICODE 'N4BiasFieldCorrection --bspline-fitting [ 300 ] \ -d 3 --input-image structural.nii \ --convergence [ 50x50x30x20, 1e-06 ] --output structural_corrected.nii \ @@ -310,7 +310,7 @@ class N4BiasFieldCorrection(ANTSCommand): >>> n4_3 = copy.deepcopy(n4_2) >>> n4_3.inputs.bspline_order = 5 - >>> n4_3.cmdline + >>> n4_3.cmdline # doctest: +ALLOW_UNICODE 'N4BiasFieldCorrection --bspline-fitting [ 300, 5 ] \ -d 3 --input-image structural.nii \ --convergence [ 50x50x30x20, 1e-06 ] --output structural_corrected.nii \ @@ -320,7 +320,7 @@ class N4BiasFieldCorrection(ANTSCommand): >>> n4_4.inputs.input_image = 'structural.nii' >>> n4_4.inputs.save_bias = True >>> n4_4.inputs.dimension = 3 - >>> n4_4.cmdline + >>> n4_4.cmdline # doctest: +ALLOW_UNICODE 'N4BiasFieldCorrection -d 3 --input-image structural.nii \ --output [ structural_corrected.nii, structural_bias.nii ]' """ @@ -530,7 +530,7 @@ class CorticalThickness(ANTSCommand): ... 'BrainSegmentationPrior03.nii.gz', ... 'BrainSegmentationPrior04.nii.gz'] >>> corticalthickness.inputs.t1_registration_template = 'brain_study_template.nii.gz' - >>> corticalthickness.cmdline + >>> corticalthickness.cmdline # doctest: +ALLOW_UNICODE 'antsCorticalThickness.sh -a T1.nii.gz -m ProbabilityMaskOfStudyTemplate.nii.gz -e study_template.nii.gz -d 3 \ -s nii.gz -o antsCT_ -p nipype_priors/BrainSegmentationPrior%02d.nii.gz -t brain_study_template.nii.gz' @@ -709,7 +709,7 @@ class BrainExtraction(ANTSCommand): >>> brainextraction.inputs.anatomical_image ='T1.nii.gz' >>> brainextraction.inputs.brain_template = 'study_template.nii.gz' >>> brainextraction.inputs.brain_probability_mask ='ProbabilityMaskOfStudyTemplate.nii.gz' - >>> brainextraction.cmdline + >>> brainextraction.cmdline # doctest: +ALLOW_UNICODE 'antsBrainExtraction.sh -a T1.nii.gz -m ProbabilityMaskOfStudyTemplate.nii.gz -e study_template.nii.gz -d 3 \ -s nii.gz -o highres001_' """ @@ -900,7 +900,7 @@ class JointFusion(ANTSCommand): ... 'segmentation1.nii.gz', ... 'segmentation1.nii.gz'] >>> at.inputs.target_image = 'T1.nii' - >>> at.cmdline + >>> at.cmdline # doctest: +ALLOW_UNICODE 'jointfusion 3 1 -m Joint[0.1,2] -tg T1.nii -g im1.nii -g im2.nii -g im3.nii -l segmentation0.nii.gz \ -l segmentation1.nii.gz -l segmentation1.nii.gz fusion_labelimage_output.nii' @@ -909,7 +909,7 @@ class JointFusion(ANTSCommand): >>> at.inputs.beta = 1 >>> at.inputs.patch_radius = [3,2,1] >>> at.inputs.search_radius = [1,2,3] - >>> at.cmdline + >>> at.cmdline # doctest: +ALLOW_UNICODE 'jointfusion 3 1 -m Joint[0.5,1] -rp 3x2x1 -rs 1x2x3 -tg T1.nii -g im1.nii -g im2.nii -g im3.nii \ -l segmentation0.nii.gz -l segmentation1.nii.gz -l segmentation1.nii.gz fusion_labelimage_output.nii' """ @@ -986,20 +986,20 @@ class DenoiseImage(ANTSCommand): >>> denoise = DenoiseImage() >>> denoise.inputs.dimension = 3 >>> denoise.inputs.input_image = 'im1.nii' - >>> denoise.cmdline + >>> denoise.cmdline # doctest: +ALLOW_UNICODE 'DenoiseImage -d 3 -i im1.nii -n Gaussian -o im1_noise_corrected.nii -s 1' >>> denoise_2 = copy.deepcopy(denoise) >>> denoise_2.inputs.output_image = 'output_corrected_image.nii.gz' >>> denoise_2.inputs.noise_model = 'Rician' >>> denoise_2.inputs.shrink_factor = 2 - >>> denoise_2.cmdline + >>> denoise_2.cmdline # doctest: +ALLOW_UNICODE 'DenoiseImage -d 3 -i im1.nii -n Rician -o output_corrected_image.nii.gz -s 2' >>> denoise_3 = DenoiseImage() >>> denoise_3.inputs.input_image = 'im1.nii' >>> denoise_3.inputs.save_noise = True - >>> denoise_3.cmdline + >>> denoise_3.cmdline # doctest: +ALLOW_UNICODE 'DenoiseImage -i im1.nii -n Gaussian -o [ im1_noise_corrected.nii, im1_noise.nii ] -s 1' """ input_spec = DenoiseImageInputSpec @@ -1103,12 +1103,12 @@ class AntsJointFusion(ANTSCommand): >>> antsjointfusion.inputs.atlas_image = [ ['rc1s1.nii','rc1s2.nii'] ] >>> antsjointfusion.inputs.atlas_segmentation_image = ['segmentation0.nii.gz'] >>> antsjointfusion.inputs.target_image = ['im1.nii'] - >>> antsjointfusion.cmdline + >>> antsjointfusion.cmdline # doctest: +ALLOW_UNICODE "antsJointFusion -a 0.1 -g ['rc1s1.nii', 'rc1s2.nii'] -l segmentation0.nii.gz \ -b 2.0 -o ants_fusion_label_output.nii -s 3x3x3 -t ['im1.nii']" >>> antsjointfusion.inputs.target_image = [ ['im1.nii', 'im2.nii'] ] - >>> antsjointfusion.cmdline + >>> antsjointfusion.cmdline # doctest: +ALLOW_UNICODE "antsJointFusion -a 0.1 -g ['rc1s1.nii', 'rc1s2.nii'] -l segmentation0.nii.gz \ -b 2.0 -o ants_fusion_label_output.nii -s 3x3x3 -t ['im1.nii', 'im2.nii']" @@ -1116,7 +1116,7 @@ class AntsJointFusion(ANTSCommand): ... ['rc2s1.nii','rc2s2.nii'] ] >>> antsjointfusion.inputs.atlas_segmentation_image = ['segmentation0.nii.gz', ... 'segmentation1.nii.gz'] - >>> antsjointfusion.cmdline + >>> antsjointfusion.cmdline # doctest: +ALLOW_UNICODE "antsJointFusion -a 0.1 -g ['rc1s1.nii', 'rc1s2.nii'] -g ['rc2s1.nii', 'rc2s2.nii'] \ -l segmentation0.nii.gz -l segmentation1.nii.gz -b 2.0 -o ants_fusion_label_output.nii \ -s 3x3x3 -t ['im1.nii', 'im2.nii']" @@ -1126,7 +1126,7 @@ class AntsJointFusion(ANTSCommand): >>> antsjointfusion.inputs.beta = 1.0 >>> antsjointfusion.inputs.patch_radius = [3,2,1] >>> antsjointfusion.inputs.search_radius = [3] - >>> antsjointfusion.cmdline + >>> antsjointfusion.cmdline # doctest: +ALLOW_UNICODE "antsJointFusion -a 0.5 -g ['rc1s1.nii', 'rc1s2.nii'] -g ['rc2s1.nii', 'rc2s2.nii'] \ -l segmentation0.nii.gz -l segmentation1.nii.gz -b 1.0 -d 3 -o ants_fusion_label_output.nii \ -p 3x2x1 -s 3 -t ['im1.nii', 'im2.nii']" @@ -1135,7 +1135,7 @@ class AntsJointFusion(ANTSCommand): >>> antsjointfusion.inputs.verbose = True >>> antsjointfusion.inputs.exclusion_image = ['roi01.nii', 'roi02.nii'] >>> antsjointfusion.inputs.exclusion_image_label = ['1','2'] - >>> antsjointfusion.cmdline + >>> antsjointfusion.cmdline # doctest: +ALLOW_UNICODE "antsJointFusion -a 0.5 -g ['rc1s1.nii', 'rc1s2.nii'] -g ['rc2s1.nii', 'rc2s2.nii'] \ -l segmentation0.nii.gz -l segmentation1.nii.gz -b 1.0 -d 3 -e 1[roi01.nii] -e 2[roi02.nii] \ -o ants_fusion_label_output.nii -p 3x2x1 -s mask.nii -t ['im1.nii', 'im2.nii'] -v" @@ -1144,7 +1144,7 @@ class AntsJointFusion(ANTSCommand): >>> antsjointfusion.inputs.out_intensity_fusion_name_format = 'ants_joint_fusion_intensity_%d.nii.gz' >>> antsjointfusion.inputs.out_label_post_prob_name_format = 'ants_joint_fusion_posterior_%d.nii.gz' >>> antsjointfusion.inputs.out_atlas_voting_weight_name_format = 'ants_joint_fusion_voting_weight_%d.nii.gz' - >>> antsjointfusion.cmdline + >>> antsjointfusion.cmdline # doctest: +ALLOW_UNICODE "antsJointFusion -a 0.5 -g ['rc1s1.nii', 'rc1s2.nii'] -g ['rc2s1.nii', 'rc2s2.nii'] \ -l segmentation0.nii.gz -l segmentation1.nii.gz -b 1.0 -d 3 -e 1[roi01.nii] -e 2[roi02.nii] \ -o [ants_fusion_label_output.nii, ants_joint_fusion_intensity_%d.nii.gz, \ @@ -1323,7 +1323,7 @@ class KellyKapowski(ANTSCommand): >>> #kk.inputs.use_bspline_smoothing = False >>> kk.inputs.number_integration_points = 10 >>> kk.inputs.thickness_prior_estimate = 10 - >>> kk.cmdline + >>> kk.cmdline # doctest: +ALLOW_UNICODE u'KellyKapowski --convergence "[45,0.0,10]" \ --output "[segmentation0_cortical_thickness.nii.gz,segmentation0_warped_white_matter.nii.gz]" \ --image-dimensionality 3 --gradient-step 0.025000 --number-of-integration-points 10 \ diff --git a/nipype/interfaces/ants/utils.py b/nipype/interfaces/ants/utils.py index 0ba918ee27..88d6d219a2 100644 --- a/nipype/interfaces/ants/utils.py +++ b/nipype/interfaces/ants/utils.py @@ -37,7 +37,7 @@ class AverageAffineTransform(ANTSCommand): >>> avg.inputs.dimension = 3 >>> avg.inputs.transforms = ['trans.mat', 'func_to_struct.mat'] >>> avg.inputs.output_affine_transform = 'MYtemplatewarp.mat' - >>> avg.cmdline + >>> avg.cmdline # doctest: +ALLOW_UNICODE 'AverageAffineTransform 3 MYtemplatewarp.mat trans.mat func_to_struct.mat' """ _cmd = 'AverageAffineTransform' @@ -83,7 +83,7 @@ class AverageImages(ANTSCommand): >>> avg.inputs.output_average_image = "average.nii.gz" >>> avg.inputs.normalize = True >>> avg.inputs.images = ['rc1s1.nii', 'rc1s1.nii'] - >>> avg.cmdline + >>> avg.cmdline # doctest: +ALLOW_UNICODE 'AverageImages 3 average.nii.gz 1 rc1s1.nii rc1s1.nii' """ _cmd = 'AverageImages' @@ -126,7 +126,7 @@ class MultiplyImages(ANTSCommand): >>> test.inputs.first_input = 'moving2.nii' >>> test.inputs.second_input = 0.25 >>> test.inputs.output_product_image = "out.nii" - >>> test.cmdline + >>> test.cmdline # doctest: +ALLOW_UNICODE 'MultiplyImages 3 moving2.nii 0.25 out.nii' """ _cmd = 'MultiplyImages' @@ -170,7 +170,7 @@ class CreateJacobianDeterminantImage(ANTSCommand): >>> jacobian.inputs.imageDimension = 3 >>> jacobian.inputs.deformationField = 'ants_Warp.nii.gz' >>> jacobian.inputs.outputImage = 'out_name.nii.gz' - >>> jacobian.cmdline + >>> jacobian.cmdline # doctest: +ALLOW_UNICODE 'CreateJacobianDeterminantImage 3 ants_Warp.nii.gz out_name.nii.gz' """ @@ -223,7 +223,7 @@ class AffineInitializer(ANTSCommand): >>> init = AffineInitializer() >>> init.inputs.fixed_image = 'fixed1.nii' >>> init.inputs.moving_image = 'moving1.nii' - >>> init.cmdline + >>> init.cmdline # doctest: +ALLOW_UNICODE 'antsAffineInitializer 3 fixed1.nii moving1.nii transform.mat 15.000000 0.100000 0 10' """ @@ -261,7 +261,7 @@ class ComposeMultiTransform(ANTSCommand): >>> compose_transform = ComposeMultiTransform() >>> compose_transform.inputs.dimension = 3 >>> compose_transform.inputs.transforms = ['struct_to_template.mat', 'func_to_struct.mat'] - >>> compose_transform.cmdline + >>> compose_transform.cmdline # doctest: +ALLOW_UNICODE 'ComposeMultiTransform 3 struct_to_template_composed struct_to_template.mat func_to_struct.mat' """ diff --git a/nipype/interfaces/ants/visualization.py b/nipype/interfaces/ants/visualization.py index 07cf8af086..ef51914e6c 100644 --- a/nipype/interfaces/ants/visualization.py +++ b/nipype/interfaces/ants/visualization.py @@ -57,7 +57,7 @@ class ConvertScalarImageToRGB(ANTSCommand): >>> converter.inputs.colormap = 'jet' >>> converter.inputs.minimum_input = 0 >>> converter.inputs.maximum_input = 6 - >>> converter.cmdline + >>> converter.cmdline # doctest: +ALLOW_UNICODE 'ConvertScalarImageToRGB 3 T1.nii.gz rgb.nii.gz none jet none 0 6 0 255' """ _cmd = 'ConvertScalarImageToRGB' @@ -143,7 +143,7 @@ class CreateTiledMosaic(ANTSCommand): >>> mosaic_slicer.inputs.direction = 2 >>> mosaic_slicer.inputs.pad_or_crop = '[ -15x -50 , -15x -30 ,0]' >>> mosaic_slicer.inputs.slices = '[2 ,100 ,160]' - >>> mosaic_slicer.cmdline + >>> mosaic_slicer.cmdline # doctest: +ALLOW_UNICODE 'CreateTiledMosaic -a 0.50 -d 2 -i T1.nii.gz -x mask.nii.gz -o output.png -p [ -15x -50 , -15x -30 ,0] \ -r rgb.nii.gz -s [2 ,100 ,160]' """ diff --git a/nipype/interfaces/base.py b/nipype/interfaces/base.py index 1463de1144..f8e845d944 100644 --- a/nipype/interfaces/base.py +++ b/nipype/interfaces/base.py @@ -123,10 +123,10 @@ class Bunch(object): -------- >>> from nipype.interfaces.base import Bunch >>> inputs = Bunch(infile='subj.nii', fwhm=6.0, register_to_mean=True) - >>> inputs + >>> inputs # doctest: +ALLOW_UNICODE Bunch(fwhm=6.0, infile='subj.nii', register_to_mean=True) >>> inputs.register_to_mean = False - >>> inputs + >>> inputs # doctest: +ALLOW_UNICODE Bunch(fwhm=6.0, infile='subj.nii', register_to_mean=False) @@ -1505,18 +1505,18 @@ class must be instantiated with a command argument >>> from nipype.interfaces.base import CommandLine >>> cli = CommandLine(command='ls', environ={'DISPLAY': ':1'}) >>> cli.inputs.args = '-al' - >>> cli.cmdline + >>> cli.cmdline # doctest: +ALLOW_UNICODE 'ls -al' # Use get_traitsfree() to check all inputs set - >>> pprint.pprint(cli.inputs.get_traitsfree()) # doctest: +NORMALIZE_WHITESPACE + >>> pprint.pprint(cli.inputs.get_traitsfree()) # doctest: +NORMALIZE_WHITESPACE +ALLOW_UNICODE {'args': '-al', 'environ': {'DISPLAY': ':1'}, 'ignore_exception': False} - >>> cli.inputs.get_hashval()[0][0] + >>> cli.inputs.get_hashval()[0][0] # doctest: +ALLOW_UNICODE ('args', '-al') - >>> cli.inputs.get_hashval()[1] + >>> cli.inputs.get_hashval()[1] # doctest: +ALLOW_UNICODE '11c37f97649cd61627f4afe5136af8c0' """ @@ -1846,12 +1846,12 @@ class MpiCommandLine(CommandLine): >>> from nipype.interfaces.base import MpiCommandLine >>> mpi_cli = MpiCommandLine(command='my_mpi_prog') >>> mpi_cli.inputs.args = '-v' - >>> mpi_cli.cmdline + >>> mpi_cli.cmdline # doctest: +ALLOW_UNICODE 'my_mpi_prog -v' >>> mpi_cli.inputs.use_mpi = True >>> mpi_cli.inputs.n_procs = 8 - >>> mpi_cli.cmdline + >>> mpi_cli.cmdline # doctest: +ALLOW_UNICODE 'mpiexec -n 8 my_mpi_prog -v' """ input_spec = MpiCommandLineInputSpec @@ -1961,15 +1961,15 @@ class OutputMultiPath(MultiPath): >>> a.foo = '/software/temp/foo.txt' - >>> a.foo + >>> a.foo # doctest: +ALLOW_UNICODE '/software/temp/foo.txt' >>> a.foo = ['/software/temp/foo.txt'] - >>> a.foo + >>> a.foo # doctest: +ALLOW_UNICODE '/software/temp/foo.txt' >>> a.foo = ['/software/temp/foo.txt', '/software/temp/goo.txt'] - >>> a.foo + >>> a.foo # doctest: +ALLOW_UNICODE ['/software/temp/foo.txt', '/software/temp/goo.txt'] """ @@ -2006,15 +2006,15 @@ class InputMultiPath(MultiPath): >>> a.foo = '/software/temp/foo.txt' - >>> a.foo + >>> a.foo # doctest: +ALLOW_UNICODE ['/software/temp/foo.txt'] >>> a.foo = ['/software/temp/foo.txt'] - >>> a.foo + >>> a.foo # doctest: +ALLOW_UNICODE ['/software/temp/foo.txt'] >>> a.foo = ['/software/temp/foo.txt', '/software/temp/goo.txt'] - >>> a.foo + >>> a.foo # doctest: +ALLOW_UNICODE ['/software/temp/foo.txt', '/software/temp/goo.txt'] """ diff --git a/nipype/interfaces/bru2nii.py b/nipype/interfaces/bru2nii.py index 579b5229b9..d469f8bda6 100644 --- a/nipype/interfaces/bru2nii.py +++ b/nipype/interfaces/bru2nii.py @@ -42,7 +42,7 @@ class Bru2(CommandLine): >>> from nipype.interfaces.bru2nii import Bru2 >>> converter = Bru2() >>> converter.inputs.input_dir = "brukerdir" - >>> converter.cmdline # doctest: +ELLIPSIS + >>> converter.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'Bru2 -o .../nipype/testing/data/brukerdir brukerdir' """ input_spec = Bru2InputSpec diff --git a/nipype/interfaces/c3.py b/nipype/interfaces/c3.py index 334500874c..8288ab3b17 100644 --- a/nipype/interfaces/c3.py +++ b/nipype/interfaces/c3.py @@ -38,7 +38,7 @@ class C3dAffineTool(SEMLikeCommandLine): >>> c3.inputs.source_file = 'cmatrix.mat' >>> c3.inputs.itk_transform = 'affine.txt' >>> c3.inputs.fsl2ras = True - >>> c3.cmdline + >>> c3.cmdline # doctest: +ALLOW_UNICODE 'c3d_affine_tool -src cmatrix.mat -fsl2ras -oitk affine.txt' """ input_spec = C3dAffineToolInputSpec diff --git a/nipype/interfaces/dcm2nii.py b/nipype/interfaces/dcm2nii.py index 60c2d33bd1..8379834b81 100644 --- a/nipype/interfaces/dcm2nii.py +++ b/nipype/interfaces/dcm2nii.py @@ -75,7 +75,7 @@ class Dcm2nii(CommandLine): >>> converter.inputs.source_names = ['functional_1.dcm', 'functional_2.dcm'] >>> converter.inputs.gzip_output = True >>> converter.inputs.output_dir = '.' - >>> converter.cmdline + >>> converter.cmdline # doctest: +ALLOW_UNICODE 'dcm2nii -a y -c y -b config.ini -v y -d y -e y -g y -i n -n y -o . -p y -x n -f n functional_1.dcm' """ @@ -250,7 +250,7 @@ class Dcm2niix(CommandLine): 'dcm2niix -b y -z i -x n -t n -m n -f %t%p -o . -s y -v n functional_1.dcm' >>> flags = '-'.join([val.strip() + ' ' for val in sorted(' '.join(converter.cmdline.split()[1:-1]).split('-'))]) - >>> flags + >>> flags # doctest: +ALLOW_UNICODE ' -b y -f %t%p -m n -o . -s y -t n -v n -x n -z i ' """ diff --git a/nipype/interfaces/elastix/registration.py b/nipype/interfaces/elastix/registration.py index 77b868c76c..205346ed80 100644 --- a/nipype/interfaces/elastix/registration.py +++ b/nipype/interfaces/elastix/registration.py @@ -55,7 +55,7 @@ class Registration(CommandLine): >>> reg.inputs.fixed_image = 'fixed1.nii' >>> reg.inputs.moving_image = 'moving1.nii' >>> reg.inputs.parameters = ['elastix.txt'] - >>> reg.cmdline + >>> reg.cmdline # doctest: +ALLOW_UNICODE 'elastix -f fixed1.nii -m moving1.nii -out ./ -p elastix.txt' @@ -147,7 +147,7 @@ class ApplyWarp(CommandLine): >>> reg = ApplyWarp() >>> reg.inputs.moving_image = 'moving1.nii' >>> reg.inputs.transform_file = 'TransformParameters.0.txt' - >>> reg.cmdline + >>> reg.cmdline # doctest: +ALLOW_UNICODE 'transformix -in moving1.nii -out ./ -tp TransformParameters.0.txt' @@ -187,7 +187,7 @@ class AnalyzeWarp(CommandLine): >>> from nipype.interfaces.elastix import AnalyzeWarp >>> reg = AnalyzeWarp() >>> reg.inputs.transform_file = 'TransformParameters.0.txt' - >>> reg.cmdline + >>> reg.cmdline # doctest: +ALLOW_UNICODE 'transformix -def all -jac all -jacmat all -out ./ -tp TransformParameters.0.txt' @@ -228,7 +228,7 @@ class PointsWarp(CommandLine): >>> reg = PointsWarp() >>> reg.inputs.points_file = 'surf1.vtk' >>> reg.inputs.transform_file = 'TransformParameters.0.txt' - >>> reg.cmdline + >>> reg.cmdline # doctest: +ALLOW_UNICODE 'transformix -out ./ -def surf1.vtk -tp TransformParameters.0.txt' diff --git a/nipype/interfaces/freesurfer/longitudinal.py b/nipype/interfaces/freesurfer/longitudinal.py index c5b1872f59..1292109060 100644 --- a/nipype/interfaces/freesurfer/longitudinal.py +++ b/nipype/interfaces/freesurfer/longitudinal.py @@ -98,22 +98,22 @@ class RobustTemplate(FSCommandOpenMP): >>> template.inputs.fixed_timepoint = True >>> template.inputs.no_iteration = True >>> template.inputs.subsample_threshold = 200 - >>> template.cmdline #doctest: +NORMALIZE_WHITESPACE + >>> template.cmdline #doctest: +NORMALIZE_WHITESPACE +ALLOW_UNICODE 'mri_robust_template --satit --average 0 --fixtp --mov structural.nii functional.nii --inittp 1 --noit --template mri_robust_template_out.mgz --subsample 200' >>> template.inputs.out_file = 'T1.nii' - >>> template.cmdline #doctest: +NORMALIZE_WHITESPACE + >>> template.cmdline #doctest: +NORMALIZE_WHITESPACE +ALLOW_UNICODE 'mri_robust_template --satit --average 0 --fixtp --mov structural.nii functional.nii --inittp 1 --noit --template T1.nii --subsample 200' >>> template.inputs.transform_outputs = ['structural.lta', ... 'functional.lta'] >>> template.inputs.scaled_intensity_outputs = ['structural-iscale.txt', ... 'functional-iscale.txt'] - >>> template.cmdline #doctest: +NORMALIZE_WHITESPACE +ELLIPSIS + >>> template.cmdline #doctest: +NORMALIZE_WHITESPACE +ALLOW_UNICODE +ELLIPSIS 'mri_robust_template --satit --average 0 --fixtp --mov structural.nii functional.nii --inittp 1 --noit --template T1.nii --iscaleout .../structural-iscale.txt .../functional-iscale.txt --subsample 200 --lta .../structural.lta .../functional.lta' >>> template.inputs.transform_outputs = True >>> template.inputs.scaled_intensity_outputs = True - >>> template.cmdline #doctest: +NORMALIZE_WHITESPACE +ELLIPSIS + >>> template.cmdline #doctest: +NORMALIZE_WHITESPACE +ALLOW_UNICODE +ELLIPSIS 'mri_robust_template --satit --average 0 --fixtp --mov structural.nii functional.nii --inittp 1 --noit --template T1.nii --iscaleout .../is1.txt .../is2.txt --subsample 200 --lta .../tp1.lta .../tp2.lta' >>> template.run() #doctest: +SKIP @@ -199,7 +199,7 @@ class FuseSegmentations(FSCommand): >>> fuse.inputs.in_segmentations = ['aseg.mgz', 'aseg.mgz'] >>> fuse.inputs.in_segmentations_noCC = ['aseg.mgz', 'aseg.mgz'] >>> fuse.inputs.in_norms = ['norm.mgz', 'norm.mgz', 'norm.mgz'] - >>> fuse.cmdline + >>> fuse.cmdline # doctest: +ALLOW_UNICODE 'mri_fuse_segmentations -n norm.mgz -a aseg.mgz -c aseg.mgz tp.long.A.template tp1 tp2' """ diff --git a/nipype/interfaces/freesurfer/model.py b/nipype/interfaces/freesurfer/model.py index e2eba23196..007d30ac3c 100644 --- a/nipype/interfaces/freesurfer/model.py +++ b/nipype/interfaces/freesurfer/model.py @@ -91,7 +91,7 @@ class MRISPreproc(FSCommand): >>> preproc.inputs.vol_measure_file = [('cont1.nii', 'register.dat'), \ ('cont1a.nii', 'register.dat')] >>> preproc.inputs.out_file = 'concatenated_file.mgz' - >>> preproc.cmdline + >>> preproc.cmdline # doctest: +ALLOW_UNICODE 'mris_preproc --hemi lh --out concatenated_file.mgz --target fsaverage --iv cont1.nii register.dat --iv cont1a.nii register.dat' """ @@ -148,7 +148,7 @@ class MRISPreprocReconAll(MRISPreproc): >>> preproc.inputs.vol_measure_file = [('cont1.nii', 'register.dat'), \ ('cont1a.nii', 'register.dat')] >>> preproc.inputs.out_file = 'concatenated_file.mgz' - >>> preproc.cmdline + >>> preproc.cmdline # doctest: +ALLOW_UNICODE 'mris_preproc --hemi lh --out concatenated_file.mgz --s subject_id --target fsaverage --iv cont1.nii register.dat --iv cont1a.nii register.dat' """ @@ -486,7 +486,7 @@ class Binarize(FSCommand): -------- >>> binvol = Binarize(in_file='structural.nii', min=10, binary_file='foo_out.nii') - >>> binvol.cmdline + >>> binvol.cmdline # doctest: +ALLOW_UNICODE 'mri_binarize --o foo_out.nii --i structural.nii --min 10.000000' """ @@ -595,7 +595,7 @@ class Concatenate(FSCommand): >>> concat = Concatenate() >>> concat.inputs.in_files = ['cont1.nii', 'cont2.nii'] >>> concat.inputs.concatenated_file = 'bar.nii' - >>> concat.cmdline + >>> concat.cmdline # doctest: +ALLOW_UNICODE 'mri_concat --o bar.nii --i cont1.nii --i cont2.nii' """ @@ -719,7 +719,7 @@ class SegStats(FSCommand): >>> ss.inputs.subjects_dir = '.' >>> ss.inputs.avgwf_txt_file = 'avgwf.txt' >>> ss.inputs.summary_file = 'summary.stats' - >>> ss.cmdline + >>> ss.cmdline # doctest: +ALLOW_UNICODE 'mri_segstats --annot PWS04 lh aparc --avgwf ./avgwf.txt --i functional.nii --sum ./summary.stats' """ @@ -841,7 +841,7 @@ class SegStatsReconAll(SegStats): >>> segstatsreconall.inputs.total_gray = True >>> segstatsreconall.inputs.euler = True >>> segstatsreconall.inputs.exclude_id = 0 - >>> segstatsreconall.cmdline + >>> segstatsreconall.cmdline # doctest: +ALLOW_UNICODE 'mri_segstats --annot PWS04 lh aparc --avgwf ./avgwf.txt --brain-vol-from-seg --surf-ctx-vol --empty --etiv --euler --excl-ctxgmwm --excludeid 0 --subcortgray --subject 10335 --supratent --totalgray --surf-wm-vol --sum ./summary.stats' """ input_spec = SegStatsReconAllInputSpec @@ -953,7 +953,7 @@ class Label2Vol(FSCommand): -------- >>> binvol = Label2Vol(label_file='cortex.label', template_file='structural.nii', reg_file='register.dat', fill_thresh=0.5, vol_label_file='foo_out.nii') - >>> binvol.cmdline + >>> binvol.cmdline # doctest: +ALLOW_UNICODE 'mri_label2vol --fillthresh 0 --label cortex.label --reg register.dat --temp structural.nii --o foo_out.nii' """ @@ -1032,7 +1032,7 @@ class MS_LDA(FSCommand): shift=zero_value, vol_synth_file='synth_out.mgz', \ conform=True, use_weights=True, \ images=['FLASH1.mgz', 'FLASH2.mgz', 'FLASH3.mgz']) - >>> optimalWeights.cmdline + >>> optimalWeights.cmdline # doctest: +ALLOW_UNICODE 'mri_ms_LDA -conform -label label.mgz -lda 2 3 -shift 1 -W -synth synth_out.mgz -weight weights.txt FLASH1.mgz FLASH2.mgz FLASH3.mgz' """ @@ -1124,7 +1124,7 @@ class Label2Label(FSCommand): >>> l2l.inputs.source_label = 'lh-pial.stl' >>> l2l.inputs.source_white = 'lh.pial' >>> l2l.inputs.source_sphere_reg = 'lh.pial' - >>> l2l.cmdline + >>> l2l.cmdline # doctest: +ALLOW_UNICODE 'mri_label2label --hemi lh --trglabel lh-pial_converted.stl --regmethod surface --srclabel lh-pial.stl --srcsubject fsaverage --trgsubject 10335' """ @@ -1208,7 +1208,7 @@ class Label2Annot(FSCommand): >>> l2a.inputs.in_labels = ['lh.aparc.label'] >>> l2a.inputs.orig = 'lh.pial' >>> l2a.inputs.out_annot = 'test' - >>> l2a.cmdline + >>> l2a.cmdline # doctest: +ALLOW_UNICODE 'mris_label2annot --hemi lh --l lh.aparc.label --a test --s 10335' """ @@ -1289,7 +1289,7 @@ class SphericalAverage(FSCommand): >>> sphericalavg.inputs.subject_id = '10335' >>> sphericalavg.inputs.erode = 2 >>> sphericalavg.inputs.threshold = 5 - >>> sphericalavg.cmdline + >>> sphericalavg.cmdline # doctest: +ALLOW_UNICODE 'mris_spherical_average -erode 2 -o 10335 -t 5.0 label lh.entorhinal lh pial . test.out' """ diff --git a/nipype/interfaces/freesurfer/preprocess.py b/nipype/interfaces/freesurfer/preprocess.py index 89d2cf4b4b..5f39f1cc94 100644 --- a/nipype/interfaces/freesurfer/preprocess.py +++ b/nipype/interfaces/freesurfer/preprocess.py @@ -67,7 +67,7 @@ class ParseDICOMDir(FSCommand): >>> dcminfo.inputs.dicom_dir = '.' >>> dcminfo.inputs.sortbyrun = True >>> dcminfo.inputs.summarize = True - >>> dcminfo.cmdline + >>> dcminfo.cmdline # doctest: +ALLOW_UNICODE 'mri_parse_sdcmdir --d . --o dicominfo.txt --sortbyrun --summarize' """ @@ -131,7 +131,7 @@ class UnpackSDICOMDir(FSCommand): >>> unpack.inputs.output_dir = '.' >>> unpack.inputs.run_info = (5, 'mprage', 'nii', 'struct') >>> unpack.inputs.dir_structure = 'generic' - >>> unpack.cmdline + >>> unpack.cmdline # doctest: +ALLOW_UNICODE 'unpacksdcmdir -generic -targ . -run 5 mprage nii struct -src .' """ _cmd = 'unpacksdcmdir' @@ -353,7 +353,7 @@ class MRIConvert(FSCommand): >>> mc.inputs.in_file = 'structural.nii' >>> mc.inputs.out_file = 'outfile.mgz' >>> mc.inputs.out_type = 'mgz' - >>> mc.cmdline + >>> mc.cmdline # doctest: +ALLOW_UNICODE 'mri_convert --out_type mgz --input_volume structural.nii --output_volume outfile.mgz' """ @@ -579,7 +579,7 @@ class Resample(FSCommand): >>> resampler.inputs.in_file = 'structural.nii' >>> resampler.inputs.resampled_file = 'resampled.nii' >>> resampler.inputs.voxel_size = (2.1, 2.1, 2.1) - >>> resampler.cmdline + >>> resampler.cmdline # doctest: +ALLOW_UNICODE 'mri_convert -vs 2.10 2.10 2.10 -i structural.nii -o resampled.nii' """ @@ -709,27 +709,27 @@ class ReconAll(CommandLine): >>> reconall.inputs.directive = 'all' >>> reconall.inputs.subjects_dir = '.' >>> reconall.inputs.T1_files = 'structural.nii' - >>> reconall.cmdline + >>> reconall.cmdline # doctest: +ALLOW_UNICODE 'recon-all -all -i structural.nii -subjid foo -sd .' >>> reconall.inputs.flags = "-qcache" - >>> reconall.cmdline + >>> reconall.cmdline # doctest: +ALLOW_UNICODE 'recon-all -all -i structural.nii -qcache -subjid foo -sd .' >>> reconall.inputs.flags = ["-cw256", "-qcache"] - >>> reconall.cmdline + >>> reconall.cmdline # doctest: +ALLOW_UNICODE 'recon-all -all -i structural.nii -cw256 -qcache -subjid foo -sd .' Hemisphere may be specified regardless of directive: >>> reconall.inputs.flags = [] >>> reconall.inputs.hemi = 'lh' - >>> reconall.cmdline + >>> reconall.cmdline # doctest: +ALLOW_UNICODE 'recon-all -all -i structural.nii -hemi lh -subjid foo -sd .' ``-autorecon-hemi`` uses the ``-hemi`` input to specify the hemisphere to operate upon: >>> reconall.inputs.directive = 'autorecon-hemi' - >>> reconall.cmdline + >>> reconall.cmdline # doctest: +ALLOW_UNICODE 'recon-all -autorecon-hemi lh -i structural.nii -subjid foo -sd .' Hippocampal subfields can accept T1 and T2 images: @@ -740,14 +740,14 @@ class ReconAll(CommandLine): >>> reconall_subfields.inputs.subjects_dir = '.' >>> reconall_subfields.inputs.T1_files = 'structural.nii' >>> reconall_subfields.inputs.hippocampal_subfields_T1 = True - >>> reconall_subfields.cmdline + >>> reconall_subfields.cmdline # doctest: +ALLOW_UNICODE 'recon-all -all -i structural.nii -hippocampal-subfields-T1 -subjid foo -sd .' >>> reconall_subfields.inputs.hippocampal_subfields_T2 = ( ... 'structural.nii', 'test') - >>> reconall_subfields.cmdline + >>> reconall_subfields.cmdline # doctest: +ALLOW_UNICODE 'recon-all -all -i structural.nii -hippocampal-subfields-T1T2 structural.nii test -subjid foo -sd .' >>> reconall_subfields.inputs.hippocampal_subfields_T1 = False - >>> reconall_subfields.cmdline + >>> reconall_subfields.cmdline # doctest: +ALLOW_UNICODE 'recon-all -all -i structural.nii -hippocampal-subfields-T2 structural.nii test -subjid foo -sd .' """ @@ -1193,7 +1193,7 @@ class BBRegister(FSCommand): >>> from nipype.interfaces.freesurfer import BBRegister >>> bbreg = BBRegister(subject_id='me', source_file='structural.nii', init='header', contrast_type='t2') - >>> bbreg.cmdline + >>> bbreg.cmdline # doctest: +ALLOW_UNICODE 'bbregister --t2 --init-header --reg structural_bbreg_me.dat --mov structural.nii --s me' """ @@ -1351,7 +1351,7 @@ class ApplyVolTransform(FSCommand): >>> applyreg.inputs.reg_file = 'register.dat' >>> applyreg.inputs.transformed_file = 'struct_warped.nii' >>> applyreg.inputs.fs_target = True - >>> applyreg.cmdline + >>> applyreg.cmdline # doctest: +ALLOW_UNICODE 'mri_vol2vol --fstarg --reg register.dat --mov structural.nii --o struct_warped.nii' """ @@ -1431,7 +1431,7 @@ class Smooth(FSCommand): >>> from nipype.interfaces.freesurfer import Smooth >>> smoothvol = Smooth(in_file='functional.nii', smoothed_file = 'foo_out.nii', reg_file='register.dat', surface_fwhm=10, vol_fwhm=6) - >>> smoothvol.cmdline + >>> smoothvol.cmdline # doctest: +ALLOW_UNICODE 'mris_volsmooth --i functional.nii --reg register.dat --o foo_out.nii --fwhm 10.000000 --vol-fwhm 6.000000' """ @@ -1562,7 +1562,7 @@ class RobustRegister(FSCommand): >>> reg.inputs.target_file = 'T1.nii' >>> reg.inputs.auto_sens = True >>> reg.inputs.init_orient = True - >>> reg.cmdline +ELLIPSIS + >>> reg.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS 'mri_robust_register --satit --initorient --lta .../structural_robustreg.lta --mov structural.nii --dst T1.nii' References @@ -1639,7 +1639,7 @@ class FitMSParams(FSCommand): >>> msfit = FitMSParams() >>> msfit.inputs.in_files = ['flash_05.mgz', 'flash_30.mgz'] >>> msfit.inputs.out_dir = 'flash_parameters' - >>> msfit.cmdline + >>> msfit.cmdline # doctest: +ALLOW_UNICODE 'mri_ms_fitparms flash_05.mgz flash_30.mgz flash_parameters' """ @@ -1712,7 +1712,7 @@ class SynthesizeFLASH(FSCommand): >>> syn.inputs.t1_image = 'T1.mgz' >>> syn.inputs.pd_image = 'PD.mgz' >>> syn.inputs.out_file = 'flash_30syn.mgz' - >>> syn.cmdline + >>> syn.cmdline # doctest: +ALLOW_UNICODE 'mri_synthesize 20.00 30.00 3.000 T1.mgz PD.mgz flash_30syn.mgz' """ @@ -1785,7 +1785,7 @@ class MNIBiasCorrection(FSCommand): >>> correct.inputs.iterations = 6 >>> correct.inputs.protocol_iterations = 1000 >>> correct.inputs.distance = 50 - >>> correct.cmdline + >>> correct.cmdline # doctest: +ALLOW_UNICODE 'mri_nu_correct.mni --distance 50 --i norm.mgz --n 6 --o norm_output.mgz --proto-iters 1000' References: @@ -1842,7 +1842,7 @@ class WatershedSkullStrip(FSCommand): >>> skullstrip.inputs.t1 = True >>> skullstrip.inputs.transform = "transforms/talairach_with_skull.lta" >>> skullstrip.inputs.out_file = "brainmask.auto.mgz" - >>> skullstrip.cmdline + >>> skullstrip.cmdline # doctest: +ALLOW_UNICODE 'mri_watershed -T1 transforms/talairach_with_skull.lta T1.mgz brainmask.auto.mgz' """ _cmd = 'mri_watershed' @@ -1890,7 +1890,7 @@ class Normalize(FSCommand): >>> normalize = freesurfer.Normalize() >>> normalize.inputs.in_file = "T1.mgz" >>> normalize.inputs.gradient = 1 - >>> normalize.cmdline + >>> normalize.cmdline # doctest: +ALLOW_UNICODE 'mri_normalize -g 1 T1.mgz T1_norm.mgz' """ _cmd = "mri_normalize" @@ -1942,7 +1942,7 @@ class CANormalize(FSCommand): >>> ca_normalize.inputs.in_file = "T1.mgz" >>> ca_normalize.inputs.atlas = "atlas.nii.gz" # in practice use .gca atlases >>> ca_normalize.inputs.transform = "trans.mat" # in practice use .lta transforms - >>> ca_normalize.cmdline + >>> ca_normalize.cmdline # doctest: +ALLOW_UNICODE 'mri_ca_normalize T1.mgz atlas.nii.gz trans.mat T1_norm.mgz' """ _cmd = "mri_ca_normalize" @@ -2000,7 +2000,7 @@ class CARegister(FSCommandOpenMP): >>> ca_register = freesurfer.CARegister() >>> ca_register.inputs.in_file = "norm.mgz" >>> ca_register.inputs.out_file = "talairach.m3z" - >>> ca_register.cmdline + >>> ca_register.cmdline # doctest: +ALLOW_UNICODE 'mri_ca_register norm.mgz talairach.m3z' """ _cmd = "mri_ca_register" @@ -2071,7 +2071,7 @@ class CALabel(FSCommandOpenMP): >>> ca_label.inputs.out_file = "out.mgz" >>> ca_label.inputs.transform = "trans.mat" >>> ca_label.inputs.template = "Template_6.nii" # in practice use .gcs extension - >>> ca_label.cmdline + >>> ca_label.cmdline # doctest: +ALLOW_UNICODE 'mri_ca_label norm.mgz trans.mat Template_6.nii out.mgz' """ _cmd = "mri_ca_label" @@ -2145,7 +2145,7 @@ class MRIsCALabel(FSCommandOpenMP): >>> ca_label.inputs.sulc = "lh.pial" >>> ca_label.inputs.classifier = "im1.nii" # in pracice, use .gcs extension >>> ca_label.inputs.smoothwm = "lh.pial" - >>> ca_label.cmdline + >>> ca_label.cmdline # doctest: +ALLOW_UNICODE 'mris_ca_label test lh lh.pial im1.nii lh.aparc.annot' """ _cmd = "mris_ca_label" @@ -2231,7 +2231,7 @@ class SegmentCC(FSCommand): >>> SegmentCC_node.inputs.in_norm = "norm.mgz" >>> SegmentCC_node.inputs.out_rotation = "cc.lta" >>> SegmentCC_node.inputs.subject_id = "test" - >>> SegmentCC_node.cmdline + >>> SegmentCC_node.cmdline # doctest: +ALLOW_UNICODE 'mri_cc -aseg aseg.mgz -o aseg.auto.mgz -lta cc.lta test' """ @@ -2322,7 +2322,7 @@ class SegmentWM(FSCommand): >>> SegmentWM_node = freesurfer.SegmentWM() >>> SegmentWM_node.inputs.in_file = "norm.mgz" >>> SegmentWM_node.inputs.out_file = "wm.seg.mgz" - >>> SegmentWM_node.cmdline + >>> SegmentWM_node.cmdline # doctest: +ALLOW_UNICODE 'mri_segment norm.mgz wm.seg.mgz' """ @@ -2366,7 +2366,7 @@ class EditWMwithAseg(FSCommand): >>> editwm.inputs.seg_file = "aseg.mgz" >>> editwm.inputs.out_file = "wm.asegedit.mgz" >>> editwm.inputs.keep_in = True - >>> editwm.cmdline + >>> editwm.cmdline # doctest: +ALLOW_UNICODE 'mri_edit_wm_with_aseg -keep-in T1.mgz norm.mgz aseg.mgz wm.asegedit.mgz' """ _cmd = 'mri_edit_wm_with_aseg' @@ -2433,7 +2433,7 @@ class ConcatenateLTA(FSCommand): >>> conc_lta = ConcatenateLTA() >>> conc_lta.inputs.in_lta1 = 'lta1.lta' >>> conc_lta.inputs.in_lta2 = 'lta2.lta' - >>> conc_lta.cmdline + >>> conc_lta.cmdline # doctest: +ALLOW_UNICODE 'mri_concatenate_lta lta1.lta lta2.lta lta1_concat.lta' You can use 'identity.nofile' as the filename for in_lta2, e.g.: @@ -2441,13 +2441,13 @@ class ConcatenateLTA(FSCommand): >>> conc_lta.inputs.in_lta2 = 'identity.nofile' >>> conc_lta.inputs.invert_1 = True >>> conc_lta.inputs.out_file = 'inv1.lta' - >>> conc_lta.cmdline + >>> conc_lta.cmdline # doctest: +ALLOW_UNICODE 'mri_concatenate_lta -invert1 lta1.lta identity.nofile inv1.lta' To create a RAS2RAS transform: >>> conc_lta.inputs.out_type = 'RAS2RAS' - >>> conc_lta.cmdline + >>> conc_lta.cmdline # doctest: +ALLOW_UNICODE 'mri_concatenate_lta -invert1 -out_type 1 lta1.lta identity.nofile inv1.lta' """ diff --git a/nipype/interfaces/freesurfer/registration.py b/nipype/interfaces/freesurfer/registration.py index 0c431ce460..72a3fdb0ee 100644 --- a/nipype/interfaces/freesurfer/registration.py +++ b/nipype/interfaces/freesurfer/registration.py @@ -204,7 +204,7 @@ class EMRegister(FSCommandOpenMP): >>> register.inputs.out_file = 'norm_transform.lta' >>> register.inputs.skull = True >>> register.inputs.nbrspacing = 9 - >>> register.cmdline + >>> register.cmdline # doctest: +ALLOW_UNICODE 'mri_em_register -uns 9 -skull norm.mgz aseg.mgz norm_transform.lta' """ _cmd = 'mri_em_register' @@ -254,7 +254,7 @@ class Register(FSCommand): >>> register.inputs.target = 'aseg.mgz' >>> register.inputs.out_file = 'lh.pial.reg' >>> register.inputs.curv = True - >>> register.cmdline + >>> register.cmdline # doctest: +ALLOW_UNICODE 'mris_register -curv lh.pial aseg.mgz lh.pial.reg' """ @@ -320,7 +320,7 @@ class Paint(FSCommand): >>> paint.inputs.template = 'aseg.mgz' >>> paint.inputs.averages = 5 >>> paint.inputs.out_file = 'lh.avg_curv' - >>> paint.cmdline + >>> paint.cmdline # doctest: +ALLOW_UNICODE 'mrisp_paint -a 5 aseg.mgz lh.pial lh.avg_curv' """ @@ -437,7 +437,7 @@ class MRICoreg(FSCommand): >>> coreg.inputs.source_file = 'moving1.nii' >>> coreg.inputs.reference_file = 'fixed1.nii' >>> coreg.inputs.subjects_dir = '.' - >>> coreg.cmdline +ELLIPSIS + >>> coreg.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS 'mri_coreg --lta .../registration.lta --ref fixed1.nii --mov moving1.nii --sd .' If passing a subject ID, the reference mask may be disabled: @@ -447,17 +447,17 @@ class MRICoreg(FSCommand): >>> coreg.inputs.subjects_dir = '.' >>> coreg.inputs.subject_id = 'fsaverage' >>> coreg.inputs.reference_mask = False - >>> coreg.cmdline +ELLIPSIS + >>> coreg.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS 'mri_coreg --s fsaverage --no-ref-mask --lta .../registration.lta --mov moving1.nii --sd .' Spatial scales may be specified as a list of one or two separations: >>> coreg.inputs.sep = [4] - >>> coreg.cmdline +ELLIPSIS + >>> coreg.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS 'mri_coreg --s fsaverage --no-ref-mask --lta .../registration.lta --sep 4 --mov moving1.nii --sd .' >>> coreg.inputs.sep = [4, 5] - >>> coreg.cmdline +ELLIPSIS + >>> coreg.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS 'mri_coreg --s fsaverage --no-ref-mask --lta .../registration.lta --sep 4 --sep 5 --mov moving1.nii --sd .' """ diff --git a/nipype/interfaces/freesurfer/utils.py b/nipype/interfaces/freesurfer/utils.py index b5cd404b30..e71edb3e5c 100644 --- a/nipype/interfaces/freesurfer/utils.py +++ b/nipype/interfaces/freesurfer/utils.py @@ -196,7 +196,7 @@ class SampleToSurface(FSCommand): >>> sampler.inputs.sampling_method = "average" >>> sampler.inputs.sampling_range = 1 >>> sampler.inputs.sampling_units = "frac" - >>> sampler.cmdline # doctest: +ELLIPSIS + >>> sampler.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'mri_vol2surf --hemi lh --o ...lh.cope1.mgz --reg register.dat --projfrac-avg 1.000 --mov cope1.nii.gz' >>> res = sampler.run() # doctest: +SKIP @@ -326,7 +326,7 @@ class SurfaceSmooth(FSCommand): >>> smoother.inputs.subject_id = "subj_1" >>> smoother.inputs.hemi = "lh" >>> smoother.inputs.fwhm = 5 - >>> smoother.cmdline # doctest: +ELLIPSIS + >>> smoother.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'mri_surf2surf --cortex --fwhm 5.0000 --hemi lh --sval lh.cope1.mgz --tval ...lh.cope1_smooth5.mgz --s subj_1' >>> smoother.run() # doctest: +SKIP @@ -518,7 +518,7 @@ class Surface2VolTransform(FSCommand): >>> xfm2vol.inputs.hemi = 'lh' >>> xfm2vol.inputs.template_file = 'cope1.nii.gz' >>> xfm2vol.inputs.subjects_dir = '.' - >>> xfm2vol.cmdline + >>> xfm2vol.cmdline # doctest: +ALLOW_UNICODE 'mri_surf2vol --hemi lh --volreg register.mat --surfval lh.cope1.mgz --sd . --template cope1.nii.gz --outvol lh.cope1_asVol.nii --vtxvol lh.cope1_asVol_vertex.nii' >>> res = xfm2vol.run()# doctest: +SKIP @@ -995,7 +995,7 @@ class MRIsCombine(FSSurfaceCommand): >>> mris = fs.MRIsCombine() >>> mris.inputs.in_files = ['lh.pial', 'rh.pial'] >>> mris.inputs.out_file = 'bh.pial' - >>> mris.cmdline + >>> mris.cmdline # doctest: +ALLOW_UNICODE 'mris_convert --combinesurfs lh.pial rh.pial bh.pial' >>> mris.run() # doctest: +SKIP """ @@ -1124,7 +1124,7 @@ class MRIPretess(FSCommand): >>> pretess.inputs.in_filled = 'wm.mgz' >>> pretess.inputs.in_norm = 'norm.mgz' >>> pretess.inputs.nocorners = True - >>> pretess.cmdline + >>> pretess.cmdline # doctest: +ALLOW_UNICODE 'mri_pretess -nocorners wm.mgz wm norm.mgz wm_pretesswm.mgz' >>> pretess.run() # doctest: +SKIP @@ -1294,7 +1294,7 @@ class MakeAverageSubject(FSCommand): >>> from nipype.interfaces.freesurfer import MakeAverageSubject >>> avg = MakeAverageSubject(subjects_ids=['s1', 's2']) - >>> avg.cmdline + >>> avg.cmdline # doctest: +ALLOW_UNICODE 'make_average_subject --out average --subjects s1 s2' """ @@ -1329,7 +1329,7 @@ class ExtractMainComponent(CommandLine): >>> from nipype.interfaces.freesurfer import ExtractMainComponent >>> mcmp = ExtractMainComponent(in_file='lh.pial') - >>> mcmp.cmdline + >>> mcmp.cmdline # doctest: +ALLOW_UNICODE 'mris_extract_main_component lh.pial lh.maincmp' """ @@ -1404,7 +1404,7 @@ class Tkregister2(FSCommand): >>> tk2.inputs.moving_image = 'T1.mgz' >>> tk2.inputs.target_image = 'structural.nii' >>> tk2.inputs.reg_header = True - >>> tk2.cmdline + >>> tk2.cmdline # doctest: +ALLOW_UNICODE 'tkregister2 --mov T1.mgz --noedit --reg T1_to_native.dat --regheader \ --targ structural.nii' >>> tk2.run() # doctest: +SKIP @@ -1417,7 +1417,7 @@ class Tkregister2(FSCommand): >>> tk2 = Tkregister2() >>> tk2.inputs.moving_image = 'epi.nii' >>> tk2.inputs.fsl_in_matrix = 'flirt.mat' - >>> tk2.cmdline + >>> tk2.cmdline # doctest: +ALLOW_UNICODE 'tkregister2 --fsl flirt.mat --mov epi.nii --noedit --reg register.dat' >>> tk2.run() # doctest: +SKIP """ @@ -1494,11 +1494,11 @@ class AddXFormToHeader(FSCommand): >>> adder = AddXFormToHeader() >>> adder.inputs.in_file = 'norm.mgz' >>> adder.inputs.transform = 'trans.mat' - >>> adder.cmdline + >>> adder.cmdline # doctest: +ALLOW_UNICODE 'mri_add_xform_to_header trans.mat norm.mgz output.mgz' >>> adder.inputs.copy_name = True - >>> adder.cmdline + >>> adder.cmdline # doctest: +ALLOW_UNICODE 'mri_add_xform_to_header -c trans.mat norm.mgz output.mgz' >>> adder.run() # doctest: +SKIP @@ -1552,7 +1552,7 @@ class CheckTalairachAlignment(FSCommand): >>> checker.inputs.in_file = 'trans.mat' >>> checker.inputs.threshold = 0.005 - >>> checker.cmdline + >>> checker.cmdline # doctest: +ALLOW_UNICODE 'talairach_afd -T 0.005 -xfm trans.mat' >>> checker.run() # doctest: +SKIP @@ -1601,7 +1601,7 @@ class TalairachAVI(FSCommand): >>> example = TalairachAVI() >>> example.inputs.in_file = 'norm.mgz' >>> example.inputs.out_file = 'trans.mat' - >>> example.cmdline + >>> example.cmdline # doctest: +ALLOW_UNICODE 'talairach_avi --i norm.mgz --xfm trans.mat' >>> example.run() # doctest: +SKIP @@ -1632,7 +1632,7 @@ class TalairachQC(FSScriptCommand): >>> from nipype.interfaces.freesurfer import TalairachQC >>> qc = TalairachQC() >>> qc.inputs.log_file = 'dirs.txt' - >>> qc.cmdline + >>> qc.cmdline # doctest: +ALLOW_UNICODE 'tal_QC_AZS dirs.txt' """ _cmd = "tal_QC_AZS" @@ -1671,7 +1671,7 @@ class RemoveNeck(FSCommand): >>> remove_neck.inputs.in_file = 'norm.mgz' >>> remove_neck.inputs.transform = 'trans.mat' >>> remove_neck.inputs.template = 'trans.mat' - >>> remove_neck.cmdline + >>> remove_neck.cmdline # doctest: +ALLOW_UNICODE 'mri_remove_neck norm.mgz trans.mat trans.mat norm_noneck.mgz' """ _cmd = "mri_remove_neck" @@ -1811,7 +1811,7 @@ class Sphere(FSCommandOpenMP): >>> from nipype.interfaces.freesurfer import Sphere >>> sphere = Sphere() >>> sphere.inputs.in_file = 'lh.pial' - >>> sphere.cmdline + >>> sphere.cmdline # doctest: +ALLOW_UNICODE 'mris_sphere lh.pial lh.sphere' """ _cmd = 'mris_sphere' @@ -1935,7 +1935,7 @@ class EulerNumber(FSCommand): >>> from nipype.interfaces.freesurfer import EulerNumber >>> ft = EulerNumber() >>> ft.inputs.in_file = 'lh.pial' - >>> ft.cmdline + >>> ft.cmdline # doctest: +ALLOW_UNICODE 'mris_euler_number lh.pial' """ _cmd = 'mris_euler_number' @@ -1971,7 +1971,7 @@ class RemoveIntersection(FSCommand): >>> from nipype.interfaces.freesurfer import RemoveIntersection >>> ri = RemoveIntersection() >>> ri.inputs.in_file = 'lh.pial' - >>> ri.cmdline + >>> ri.cmdline # doctest: +ALLOW_UNICODE 'mris_remove_intersection lh.pial lh.pial' """ @@ -2067,7 +2067,7 @@ class MakeSurfaces(FSCommand): >>> makesurfaces.inputs.in_label = 'aparc+aseg.nii' >>> makesurfaces.inputs.in_T1 = 'T1.mgz' >>> makesurfaces.inputs.orig_pial = 'lh.pial' - >>> makesurfaces.cmdline + >>> makesurfaces.cmdline # doctest: +ALLOW_UNICODE 'mris_make_surfaces -T1 T1.mgz -orig pial -orig_pial pial 10335 lh' """ @@ -2200,7 +2200,7 @@ class Curvature(FSCommand): >>> curv = Curvature() >>> curv.inputs.in_file = 'lh.pial' >>> curv.inputs.save = True - >>> curv.cmdline + >>> curv.cmdline # doctest: +ALLOW_UNICODE 'mris_curvature -w lh.pial' """ @@ -2294,7 +2294,7 @@ class CurvatureStats(FSCommand): >>> curvstats.inputs.values = True >>> curvstats.inputs.min_max = True >>> curvstats.inputs.write = True - >>> curvstats.cmdline + >>> curvstats.cmdline # doctest: +ALLOW_UNICODE 'mris_curvature_stats -m -o lh.curv.stats -F pial -G --writeCurvatureFiles subject_id lh pial pial' """ @@ -2351,7 +2351,7 @@ class Jacobian(FSCommand): >>> jacobian = Jacobian() >>> jacobian.inputs.in_origsurf = 'lh.pial' >>> jacobian.inputs.in_mappedsurf = 'lh.pial' - >>> jacobian.cmdline + >>> jacobian.cmdline # doctest: +ALLOW_UNICODE 'mris_jacobian lh.pial lh.pial lh.jacobian' """ @@ -2488,7 +2488,7 @@ class VolumeMask(FSCommand): >>> volmask.inputs.rh_white = 'lh.pial' >>> volmask.inputs.subject_id = '10335' >>> volmask.inputs.save_ribbon = True - >>> volmask.cmdline + >>> volmask.cmdline # doctest: +ALLOW_UNICODE 'mris_volmask --label_left_ribbon 3 --label_left_white 2 --label_right_ribbon 42 --label_right_white 41 --save_ribbon 10335' """ @@ -2828,7 +2828,7 @@ class RelabelHypointensities(FSCommand): >>> relabelhypos.inputs.rh_white = 'lh.pial' >>> relabelhypos.inputs.surf_directory = '.' >>> relabelhypos.inputs.aseg = 'aseg.mgz' - >>> relabelhypos.cmdline + >>> relabelhypos.cmdline # doctest: +ALLOW_UNICODE 'mri_relabel_hypointensities aseg.mgz . aseg.hypos.mgz' """ @@ -2999,7 +2999,7 @@ class Apas2Aseg(FSCommand): >>> apas2aseg = Apas2Aseg() >>> apas2aseg.inputs.in_file = 'aseg.mgz' >>> apas2aseg.inputs.out_file = 'output.mgz' - >>> apas2aseg.cmdline + >>> apas2aseg.cmdline # doctest: +ALLOW_UNICODE 'apas2aseg --i aseg.mgz --o output.mgz' """ @@ -3081,10 +3081,10 @@ class MRIsExpand(FSSurfaceCommand): >>> from nipype.interfaces.freesurfer import MRIsExpand >>> mris_expand = MRIsExpand(thickness=True, distance=0.5) >>> mris_expand.inputs.in_file = 'lh.white' - >>> mris_expand.cmdline + >>> mris_expand.cmdline # doctest: +ALLOW_UNICODE 'mris_expand -thickness lh.white 0.5 expanded' >>> mris_expand.inputs.out_name = 'graymid' - >>> mris_expand.cmdline + >>> mris_expand.cmdline # doctest: +ALLOW_UNICODE 'mris_expand -thickness lh.white 0.5 graymid' """ _cmd = 'mris_expand' diff --git a/nipype/interfaces/fsl/aroma.py b/nipype/interfaces/fsl/aroma.py index fb8dc82bd8..02df37d9a2 100644 --- a/nipype/interfaces/fsl/aroma.py +++ b/nipype/interfaces/fsl/aroma.py @@ -95,7 +95,7 @@ class ICA_AROMA(CommandLine): >>> AROMA_obj.inputs.mask = 'mask.nii.gz' >>> AROMA_obj.inputs.denoise_type = 'both' >>> AROMA_obj.inputs.out_dir = 'ICA_testout' - >>> AROMA_obj.cmdline + >>> AROMA_obj.cmdline # doctest: +ALLOW_UNICODE 'ICA_AROMA.py -den both -warp warpfield.nii -i functional.nii -m mask.nii.gz -affmat func_to_struct.mat -mc fsl_mcflirt_movpar.txt -o ICA_testout' """ _cmd = 'ICA_AROMA.py' diff --git a/nipype/interfaces/fsl/dti.py b/nipype/interfaces/fsl/dti.py index 812515fcda..9d74a3fafe 100644 --- a/nipype/interfaces/fsl/dti.py +++ b/nipype/interfaces/fsl/dti.py @@ -85,7 +85,7 @@ class DTIFit(FSLCommand): >>> dti.inputs.bvals = 'bvals' >>> dti.inputs.base_name = 'TP' >>> dti.inputs.mask = 'mask.nii' - >>> dti.cmdline + >>> dti.cmdline # doctest: +ALLOW_UNICODE 'dtifit -k diffusion.nii -o TP -m mask.nii -r bvecs -b bvals' """ @@ -327,7 +327,7 @@ class BEDPOSTX5(FSLXCommand): >>> from nipype.interfaces import fsl >>> bedp = fsl.BEDPOSTX5(bvecs='bvecs', bvals='bvals', dwi='diffusion.nii', ... mask='mask.nii', n_fibres=1) - >>> bedp.cmdline + >>> bedp.cmdline # doctest: +ALLOW_UNICODE 'bedpostx bedpostx --forcedir -n 1' """ @@ -583,7 +583,7 @@ class ProbTrackX(FSLCommand): target_masks = ['targets_MASK1.nii', 'targets_MASK2.nii'], \ thsamples='merged_thsamples.nii', fsamples='merged_fsamples.nii', phsamples='merged_phsamples.nii', \ out_dir='.') - >>> pbx.cmdline + >>> pbx.cmdline # doctest: +ALLOW_UNICODE 'probtrackx --forcedir -m mask.nii --mode=seedmask --nsamples=3 --nsteps=10 --opd --os2t --dir=. --samples=merged --seed=MASK_average_thal_right.nii --targetmasks=targets.txt --xfm=trans.mat' """ @@ -780,7 +780,7 @@ class ProbTrackX2(ProbTrackX): >>> pbx2.inputs.out_dir = '.' >>> pbx2.inputs.n_samples = 3 >>> pbx2.inputs.n_steps = 10 - >>> pbx2.cmdline + >>> pbx2.cmdline # doctest: +ALLOW_UNICODE 'probtrackx2 --forcedir -m nodif_brain_mask.nii.gz --nsamples=3 --nsteps=10 --opd --dir=. --samples=merged --seed=seed_source.nii.gz' """ _cmd = 'probtrackx2' @@ -871,7 +871,7 @@ class VecReg(FSLCommand): affine_mat='trans.mat', \ ref_vol='mni.nii', \ out_file='diffusion_vreg.nii') - >>> vreg.cmdline + >>> vreg.cmdline # doctest: +ALLOW_UNICODE 'vecreg -t trans.mat -i diffusion.nii -o diffusion_vreg.nii -r mni.nii' """ @@ -932,7 +932,7 @@ class ProjThresh(FSLCommand): >>> from nipype.interfaces import fsl >>> ldir = ['seeds_to_M1.nii', 'seeds_to_M2.nii'] >>> pThresh = fsl.ProjThresh(in_files=ldir, threshold=3) - >>> pThresh.cmdline + >>> pThresh.cmdline # doctest: +ALLOW_UNICODE 'proj_thresh seeds_to_M1.nii seeds_to_M2.nii 3' """ @@ -980,7 +980,7 @@ class FindTheBiggest(FSLCommand): >>> from nipype.interfaces import fsl >>> ldir = ['seeds_to_M1.nii', 'seeds_to_M2.nii'] >>> fBig = fsl.FindTheBiggest(in_files=ldir, out_file='biggestSegmentation') - >>> fBig.cmdline + >>> fBig.cmdline # doctest: +ALLOW_UNICODE 'find_the_biggest seeds_to_M1.nii seeds_to_M2.nii biggestSegmentation' """ diff --git a/nipype/interfaces/fsl/epi.py b/nipype/interfaces/fsl/epi.py index 0beb60b3c0..5978ee492d 100644 --- a/nipype/interfaces/fsl/epi.py +++ b/nipype/interfaces/fsl/epi.py @@ -71,7 +71,7 @@ class PrepareFieldmap(FSLCommand): >>> prepare.inputs.in_phase = "phase.nii" >>> prepare.inputs.in_magnitude = "magnitude.nii" >>> prepare.inputs.output_type = "NIFTI_GZ" - >>> prepare.cmdline # doctest: +ELLIPSIS + >>> prepare.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'fsl_prepare_fieldmap SIEMENS phase.nii magnitude.nii \ .../phase_fslprepared.nii.gz 2.460000' >>> res = prepare.run() # doctest: +SKIP @@ -247,7 +247,7 @@ class TOPUP(FSLCommand): >>> topup.inputs.in_file = "b0_b0rev.nii" >>> topup.inputs.encoding_file = "topup_encoding.txt" >>> topup.inputs.output_type = "NIFTI_GZ" - >>> topup.cmdline # doctest: +ELLIPSIS + >>> topup.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'topup --config=b02b0.cnf --datain=topup_encoding.txt \ --imain=b0_b0rev.nii --out=b0_b0rev_base --iout=b0_b0rev_corrected.nii.gz \ --fout=b0_b0rev_field.nii.gz --jacout=jac --logout=b0_b0rev_topup.log \ @@ -389,7 +389,7 @@ class ApplyTOPUP(FSLCommand): >>> applytopup.inputs.in_topup_fieldcoef = "topup_fieldcoef.nii.gz" >>> applytopup.inputs.in_topup_movpar = "topup_movpar.txt" >>> applytopup.inputs.output_type = "NIFTI_GZ" - >>> applytopup.cmdline # doctest: +ELLIPSIS + >>> applytopup.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'applytopup --datain=topup_encoding.txt --imain=epi.nii,epi_rev.nii \ --inindex=1,2 --topup=topup --out=epi_corrected.nii.gz' >>> res = applytopup.run() # doctest: +SKIP @@ -545,12 +545,12 @@ class Eddy(FSLCommand): >>> eddy.inputs.in_bvec = 'bvecs.scheme' >>> eddy.inputs.in_bval = 'bvals.scheme' >>> eddy.inputs.use_cuda = True - >>> eddy.cmdline # doctest: +ELLIPSIS + >>> eddy.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'eddy_cuda --acqp=epi_acqp.txt --bvals=bvals.scheme --bvecs=bvecs.scheme \ --imain=epi.nii --index=epi_index.txt --mask=epi_mask.nii \ --out=.../eddy_corrected' >>> eddy.inputs.use_cuda = False - >>> eddy.cmdline # doctest: +ELLIPSIS + >>> eddy.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'eddy_openmp --acqp=epi_acqp.txt --bvals=bvals.scheme \ --bvecs=bvecs.scheme --imain=epi.nii --index=epi_index.txt \ --mask=epi_mask.nii --out=.../eddy_corrected' @@ -679,7 +679,7 @@ class SigLoss(FSLCommand): >>> sigloss.inputs.in_file = "phase.nii" >>> sigloss.inputs.echo_time = 0.03 >>> sigloss.inputs.output_type = "NIFTI_GZ" - >>> sigloss.cmdline # doctest: +ELLIPSIS + >>> sigloss.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'sigloss --te=0.030000 -i phase.nii -s .../phase_sigloss.nii.gz' >>> res = sigloss.run() # doctest: +SKIP @@ -784,7 +784,7 @@ class EpiReg(FSLCommand): >>> epireg.inputs.fmapmagbrain='fieldmap_mag_brain.nii' >>> epireg.inputs.echospacing=0.00067 >>> epireg.inputs.pedir='y' - >>> epireg.cmdline # doctest: +ELLIPSIS + >>> epireg.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'epi_reg --echospacing=0.000670 --fmap=fieldmap_phase_fslprepared.nii \ --fmapmag=fieldmap_mag.nii --fmapmagbrain=fieldmap_mag_brain.nii --noclean \ --pedir=y --epi=epi.nii --t1=T1.nii --t1brain=T1_brain.nii --out=epi2struct' @@ -895,7 +895,7 @@ class EPIDeWarp(FSLCommand): >>> dewarp.inputs.mag_file = "magnitude.nii" >>> dewarp.inputs.dph_file = "phase.nii" >>> dewarp.inputs.output_type = "NIFTI_GZ" - >>> dewarp.cmdline # doctest: +ELLIPSIS + >>> dewarp.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'epidewarp.fsl --mag magnitude.nii --dph phase.nii --epi functional.nii \ --esp 0.58 --exfdw .../exfdw.nii.gz --nocleanup --sigma 2 --tediff 2.46 \ --tmpdir .../temp --vsm .../vsm.nii.gz' @@ -988,7 +988,7 @@ class EddyCorrect(FSLCommand): >>> from nipype.interfaces.fsl import EddyCorrect >>> eddyc = EddyCorrect(in_file='diffusion.nii', ... out_file="diffusion_edc.nii", ref_num=0) - >>> eddyc.cmdline + >>> eddyc.cmdline # doctest: +ALLOW_UNICODE 'eddy_correct diffusion.nii diffusion_edc.nii 0' """ diff --git a/nipype/interfaces/fsl/maths.py b/nipype/interfaces/fsl/maths.py index f403c5c402..588f7caf95 100644 --- a/nipype/interfaces/fsl/maths.py +++ b/nipype/interfaces/fsl/maths.py @@ -439,7 +439,7 @@ class MultiImageMaths(MathsCommand): >>> maths.inputs.op_string = "-add %s -mul -1 -div %s" >>> maths.inputs.operand_files = ["functional2.nii", "functional3.nii"] >>> maths.inputs.out_file = "functional4.nii" - >>> maths.cmdline + >>> maths.cmdline # doctest: +ALLOW_UNICODE 'fslmaths functional.nii -add functional2.nii -mul -1 -div functional3.nii functional4.nii' """ diff --git a/nipype/interfaces/fsl/model.py b/nipype/interfaces/fsl/model.py index 701ee757db..b4d3fb56f8 100644 --- a/nipype/interfaces/fsl/model.py +++ b/nipype/interfaces/fsl/model.py @@ -934,7 +934,7 @@ class FLAMEO(FSLCommand): >>> flameo.inputs.t_con_file = 'design.con' >>> flameo.inputs.mask_file = 'mask.nii' >>> flameo.inputs.run_mode = 'fe' - >>> flameo.cmdline + >>> flameo.cmdline # doctest: +ALLOW_UNICODE 'flameo --copefile=cope.nii.gz --covsplitfile=cov_split.mat --designfile=design.mat --ld=stats --maskfile=mask.nii --runmode=fe --tcontrastsfile=design.con --varcopefile=varcope.nii.gz' """ @@ -1601,7 +1601,7 @@ class MELODIC(FSLCommand): >>> melodic_setup.inputs.s_des = 'subjectDesign.mat' >>> melodic_setup.inputs.s_con = 'subjectDesign.con' >>> melodic_setup.inputs.out_dir = 'groupICA.out' - >>> melodic_setup.cmdline + >>> melodic_setup.cmdline # doctest: +ALLOW_UNICODE 'melodic -i functional.nii,functional2.nii,functional3.nii -a tica --bgthreshold=10.000000 --mmthresh=0.500000 --nobet -o groupICA.out --Ostats --Scon=subjectDesign.con --Sdes=subjectDesign.mat --Tcon=timeDesign.con --Tdes=timeDesign.mat --tr=1.500000' >>> melodic_setup.run() # doctest: +SKIP @@ -1657,7 +1657,7 @@ class SmoothEstimate(FSLCommand): >>> est = SmoothEstimate() >>> est.inputs.zstat_file = 'zstat1.nii.gz' >>> est.inputs.mask_file = 'mask.nii' - >>> est.cmdline + >>> est.cmdline # doctest: +ALLOW_UNICODE 'smoothest --mask=mask.nii --zstat=zstat1.nii.gz' """ @@ -1773,7 +1773,7 @@ class Cluster(FSLCommand): >>> cl.inputs.in_file = 'zstat1.nii.gz' >>> cl.inputs.out_localmax_txt_file = 'stats.txt' >>> cl.inputs.use_mm = True - >>> cl.cmdline + >>> cl.cmdline # doctest: +ALLOW_UNICODE 'cluster --in=zstat1.nii.gz --olmax=stats.txt --thresh=2.3000000000 --mm' """ @@ -1859,7 +1859,7 @@ class DualRegression(FSLCommand): >>> dual_regression.inputs.one_sample_group_mean = True >>> dual_regression.inputs.n_perm = 10 >>> dual_regression.inputs.out_dir = "my_output_directory" - >>> dual_regression.cmdline + >>> dual_regression.cmdline # doctest: +ALLOW_UNICODE u'dual_regression allFA.nii 0 -1 10 my_output_directory functional.nii functional2.nii functional3.nii' >>> dual_regression.run() # doctest: +SKIP @@ -1977,7 +1977,7 @@ class Randomise(FSLCommand): ------- >>> import nipype.interfaces.fsl as fsl >>> rand = fsl.Randomise(in_file='allFA.nii', mask = 'mask.nii', tcon='design.con', design_mat='design.mat') - >>> rand.cmdline + >>> rand.cmdline # doctest: +ALLOW_UNICODE 'randomise -i allFA.nii -o "tbss_" -d design.mat -t design.con -m mask.nii' """ @@ -2122,7 +2122,7 @@ class GLM(FSLCommand): ------- >>> import nipype.interfaces.fsl as fsl >>> glm = fsl.GLM(in_file='functional.nii', design='maps.nii', output_type='NIFTI') - >>> glm.cmdline + >>> glm.cmdline # doctest: +ALLOW_UNICODE 'fsl_glm -i functional.nii -d maps.nii -o functional_glm.nii' """ diff --git a/nipype/interfaces/fsl/possum.py b/nipype/interfaces/fsl/possum.py index 1c2b10e1d2..20efefbf2c 100644 --- a/nipype/interfaces/fsl/possum.py +++ b/nipype/interfaces/fsl/possum.py @@ -80,7 +80,7 @@ class B0Calc(FSLCommand): >>> b0calc.inputs.in_file = 'tissue+air_map.nii' >>> b0calc.inputs.z_b0 = 3.0 >>> b0calc.inputs.output_type = "NIFTI_GZ" - >>> b0calc.cmdline + >>> b0calc.cmdline # doctest: +ALLOW_UNICODE 'b0calc -i tissue+air_map.nii -o tissue+air_map_b0field.nii.gz --b0=3.00' """ diff --git a/nipype/interfaces/fsl/preprocess.py b/nipype/interfaces/fsl/preprocess.py index 4ffeead842..b96c0b6acd 100644 --- a/nipype/interfaces/fsl/preprocess.py +++ b/nipype/interfaces/fsl/preprocess.py @@ -127,7 +127,7 @@ class BET(FSLCommand): >>> btr.inputs.in_file = 'structural.nii' >>> btr.inputs.frac = 0.7 >>> btr.inputs.out_file = 'brain_anat.nii' - >>> btr.cmdline + >>> btr.cmdline # doctest: +ALLOW_UNICODE 'bet structural.nii brain_anat.nii -f 0.70' >>> res = btr.run() # doctest: +SKIP @@ -298,7 +298,7 @@ class FAST(FSLCommand): >>> fastr = fsl.FAST() >>> fastr.inputs.in_files = 'structural.nii' >>> fastr.inputs.out_basename = 'fast_' - >>> fastr.cmdline + >>> fastr.cmdline # doctest: +ALLOW_UNICODE 'fast -o fast_ -S 1 structural.nii' >>> out = fastr.run() # doctest: +SKIP @@ -541,7 +541,7 @@ class FLIRT(FSLCommand): >>> flt.inputs.in_file = 'structural.nii' >>> flt.inputs.reference = 'mni.nii' >>> flt.inputs.output_type = "NIFTI_GZ" - >>> flt.cmdline # doctest: +ELLIPSIS + >>> flt.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'flirt -in structural.nii -ref mni.nii -out structural_flirt.nii.gz -omat structural_flirt.mat -bins 640 -searchcost mutualinfo' >>> res = flt.run() #doctest: +SKIP @@ -674,7 +674,7 @@ class MCFLIRT(FSLCommand): >>> mcflt.inputs.in_file = 'functional.nii' >>> mcflt.inputs.cost = 'mutualinfo' >>> mcflt.inputs.out_file = 'moco.nii' - >>> mcflt.cmdline + >>> mcflt.cmdline # doctest: +ALLOW_UNICODE 'mcflirt -in functional.nii -cost mutualinfo -out moco.nii' >>> res = mcflt.run() # doctest: +SKIP @@ -1397,7 +1397,7 @@ class FUGUE(FSLCommand): >>> fugue.inputs.shift_in_file = 'vsm.nii' # Previously computed with fugue as well >>> fugue.inputs.unwarp_direction = 'y' >>> fugue.inputs.output_type = "NIFTI_GZ" - >>> fugue.cmdline # doctest: +ELLIPSIS + >>> fugue.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'fugue --in=epi.nii --mask=epi_mask.nii --loadshift=vsm.nii --unwarpdir=y --unwarp=epi_unwarped.nii.gz' >>> fugue.run() #doctest: +SKIP @@ -1412,7 +1412,7 @@ class FUGUE(FSLCommand): >>> fugue.inputs.shift_in_file = 'vsm.nii' # Previously computed with fugue as well >>> fugue.inputs.unwarp_direction = 'y' >>> fugue.inputs.output_type = "NIFTI_GZ" - >>> fugue.cmdline # doctest: +ELLIPSIS + >>> fugue.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'fugue --in=epi.nii --mask=epi_mask.nii --loadshift=vsm.nii --unwarpdir=y --warp=epi_warped.nii.gz' >>> fugue.run() #doctest: +SKIP @@ -1427,7 +1427,7 @@ class FUGUE(FSLCommand): >>> fugue.inputs.unwarp_direction = 'y' >>> fugue.inputs.save_shift = True >>> fugue.inputs.output_type = "NIFTI_GZ" - >>> fugue.cmdline # doctest: +ELLIPSIS + >>> fugue.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'fugue --dwelltoasym=0.9390243902 --mask=epi_mask.nii --phasemap=epi_phasediff.nii --saveshift=epi_phasediff_vsm.nii.gz --unwarpdir=y' >>> fugue.run() #doctest: +SKIP diff --git a/nipype/interfaces/fsl/utils.py b/nipype/interfaces/fsl/utils.py index b28a4df425..072895a719 100644 --- a/nipype/interfaces/fsl/utils.py +++ b/nipype/interfaces/fsl/utils.py @@ -191,7 +191,7 @@ class Smooth(FSLCommand): >>> sm.inputs.output_type = 'NIFTI_GZ' >>> sm.inputs.in_file = 'functional2.nii' >>> sm.inputs.sigma = 8.0 - >>> sm.cmdline # doctest: +ELLIPSIS + >>> sm.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'fslmaths functional2.nii -kernel gauss 8.000 -fmean functional2_smooth.nii.gz' Setting the kernel width using fwhm: @@ -200,7 +200,7 @@ class Smooth(FSLCommand): >>> sm.inputs.output_type = 'NIFTI_GZ' >>> sm.inputs.in_file = 'functional2.nii' >>> sm.inputs.fwhm = 8.0 - >>> sm.cmdline # doctest: +ELLIPSIS + >>> sm.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'fslmaths functional2.nii -kernel gauss 3.397 -fmean functional2_smooth.nii.gz' One of sigma or fwhm must be set: @@ -263,10 +263,10 @@ class Merge(FSLCommand): >>> merger.inputs.in_files = ['functional2.nii', 'functional3.nii'] >>> merger.inputs.dimension = 't' >>> merger.inputs.output_type = 'NIFTI_GZ' - >>> merger.cmdline + >>> merger.cmdline # doctest: +ALLOW_UNICODE 'fslmerge -t functional2_merged.nii.gz functional2.nii functional3.nii' >>> merger.inputs.tr = 2.25 - >>> merger.cmdline + >>> merger.cmdline # doctest: +ALLOW_UNICODE 'fslmerge -tr functional2_merged.nii.gz functional2.nii functional3.nii 2.25' @@ -1187,7 +1187,7 @@ class ConvertXFM(FSLCommand): >>> invt.inputs.in_file = "flirt.mat" >>> invt.inputs.invert_xfm = True >>> invt.inputs.out_file = 'flirt_inv.mat' - >>> invt.cmdline + >>> invt.cmdline # doctest: +ALLOW_UNICODE 'convert_xfm -omat flirt_inv.mat -inverse flirt.mat' @@ -1492,7 +1492,7 @@ class InvWarp(FSLCommand): >>> invwarp.inputs.warp = "struct2mni.nii" >>> invwarp.inputs.reference = "anatomical.nii" >>> invwarp.inputs.output_type = "NIFTI_GZ" - >>> invwarp.cmdline + >>> invwarp.cmdline # doctest: +ALLOW_UNICODE 'invwarp --out=struct2mni_inverse.nii.gz --ref=anatomical.nii --warp=struct2mni.nii' >>> res = invwarp.run() # doctest: +SKIP @@ -1728,7 +1728,7 @@ class WarpUtils(FSLCommand): >>> warputils.inputs.out_format = 'spline' >>> warputils.inputs.warp_resolution = (10,10,10) >>> warputils.inputs.output_type = "NIFTI_GZ" - >>> warputils.cmdline # doctest: +ELLIPSIS + >>> warputils.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'fnirtfileutils --in=warpfield.nii --outformat=spline --ref=T1.nii --warpres=10.0000,10.0000,10.0000 --out=warpfield_coeffs.nii.gz' >>> res = invwarp.run() # doctest: +SKIP @@ -1880,7 +1880,7 @@ class ConvertWarp(FSLCommand): >>> warputils.inputs.reference = "T1.nii" >>> warputils.inputs.relwarp = True >>> warputils.inputs.output_type = "NIFTI_GZ" - >>> warputils.cmdline # doctest: +ELLIPSIS + >>> warputils.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'convertwarp --ref=T1.nii --rel --warp1=warpfield.nii --out=T1_concatwarp.nii.gz' >>> res = warputils.run() # doctest: +SKIP @@ -1940,7 +1940,7 @@ class WarpPoints(CommandLine): >>> warppoints.inputs.dest_file = 'T1.nii' >>> warppoints.inputs.warp_file = 'warpfield.nii' >>> warppoints.inputs.coord_mm = True - >>> warppoints.cmdline # doctest: +ELLIPSIS + >>> warppoints.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'img2imgcoord -mm -dest T1.nii -src epi.nii -warp warpfield.nii surf.txt' >>> res = warppoints.run() # doctest: +SKIP @@ -2100,7 +2100,7 @@ class WarpPointsToStd(WarpPoints): >>> warppoints.inputs.std_file = 'mni.nii' >>> warppoints.inputs.warp_file = 'warpfield.nii' >>> warppoints.inputs.coord_mm = True - >>> warppoints.cmdline # doctest: +ELLIPSIS + >>> warppoints.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'img2stdcoord -mm -img T1.nii -std mni.nii -warp warpfield.nii surf.txt' >>> res = warppoints.run() # doctest: +SKIP @@ -2148,7 +2148,7 @@ class WarpPointsFromStd(CommandLine): >>> warppoints.inputs.std_file = 'mni.nii' >>> warppoints.inputs.warp_file = 'warpfield.nii' >>> warppoints.inputs.coord_mm = True - >>> warppoints.cmdline # doctest: +ELLIPSIS + >>> warppoints.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'std2imgcoord -mm -img T1.nii -std mni.nii -warp warpfield.nii surf.txt' >>> res = warppoints.run() # doctest: +SKIP @@ -2217,7 +2217,7 @@ class MotionOutliers(FSLCommand): >>> from nipype.interfaces.fsl import MotionOutliers >>> mo = MotionOutliers() >>> mo.inputs.in_file = "epi.nii" - >>> mo.cmdline # doctest: +ELLIPSIS + >>> mo.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'fsl_motion_outliers -i epi.nii -o epi_outliers.txt -p epi_metrics.png -s epi_metrics.txt' >>> res = mo.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/io.py b/nipype/interfaces/io.py index aef7dfbb1b..4d3220b044 100644 --- a/nipype/interfaces/io.py +++ b/nipype/interfaces/io.py @@ -1222,7 +1222,7 @@ class SelectFiles(IOBase): ... "epi": "{subject_id}/func/f[0, 1].nii"} >>> dg = Node(SelectFiles(templates), "selectfiles") >>> dg.inputs.subject_id = "subj1" - >>> pprint.pprint(dg.outputs.get()) # doctest: +NORMALIZE_WHITESPACE + >>> pprint.pprint(dg.outputs.get()) # doctest: +NORMALIZE_WHITESPACE +ALLOW_UNICODE {'T1': , 'epi': } The same thing with dynamic grabbing of specific files: @@ -2482,11 +2482,11 @@ class JSONFileGrabber(IOBase): >>> jsonSource = JSONFileGrabber() >>> jsonSource.inputs.defaults = {'param1': 'overrideMe', 'param3': 1.0} >>> res = jsonSource.run() - >>> pprint.pprint(res.outputs.get()) + >>> pprint.pprint(res.outputs.get()) # doctest: +ALLOW_UNICODE {'param1': 'overrideMe', 'param3': 1.0} >>> jsonSource.inputs.in_file = 'jsongrabber.txt' >>> res = jsonSource.run() - >>> pprint.pprint(res.outputs.get()) # doctest: +NORMALIZE_WHITESPACE, +ELLIPSIS + >>> pprint.pprint(res.outputs.get()) # doctest: +NORMALIZE_WHITESPACE, +ELLIPSIS +ALLOW_UNICODE {'param1': 'exampleStr', 'param2': 4, 'param3': 1.0} diff --git a/nipype/interfaces/meshfix.py b/nipype/interfaces/meshfix.py index 466190468a..6ae1859459 100644 --- a/nipype/interfaces/meshfix.py +++ b/nipype/interfaces/meshfix.py @@ -105,7 +105,7 @@ class MeshFix(CommandLine): >>> fix.inputs.in_file1 = 'lh-pial.stl' >>> fix.inputs.in_file2 = 'rh-pial.stl' >>> fix.run() # doctest: +SKIP - >>> fix.cmdline + >>> fix.cmdline # doctest: +ALLOW_UNICODE 'meshfix lh-pial.stl rh-pial.stl -o lh-pial_fixed.off' """ _cmd = 'meshfix' diff --git a/nipype/interfaces/minc/base.py b/nipype/interfaces/minc/base.py index e4b8592adf..6348e4ee0f 100644 --- a/nipype/interfaces/minc/base.py +++ b/nipype/interfaces/minc/base.py @@ -109,11 +109,11 @@ def aggregate_filename(files, new_suffix): >>> from nipype.interfaces.minc.base import aggregate_filename >>> f = aggregate_filename(['/tmp/foo1.mnc', '/tmp/foo2.mnc', '/tmp/foo3.mnc'], 'averaged') - >>> os.path.split(f)[1] # This has a full path, so just check the filename. + >>> os.path.split(f)[1] # This has a full path, so just check the filename. # doctest: +ALLOW_UNICODE 'foo_averaged.mnc' >>> f = aggregate_filename(['/tmp/foo1.mnc', '/tmp/blah1.mnc'], 'averaged') - >>> os.path.split(f)[1] # This has a full path, so just check the filename. + >>> os.path.split(f)[1] # This has a full path, so just check the filename. # doctest: +ALLOW_UNICODE 'foo1_averaged.mnc' """ diff --git a/nipype/interfaces/mne/base.py b/nipype/interfaces/mne/base.py index 5196ddf5be..f2f3a70641 100644 --- a/nipype/interfaces/mne/base.py +++ b/nipype/interfaces/mne/base.py @@ -55,7 +55,7 @@ class WatershedBEM(FSCommand): >>> bem = WatershedBEM() >>> bem.inputs.subject_id = 'subj1' >>> bem.inputs.subjects_dir = '.' - >>> bem.cmdline + >>> bem.cmdline # doctest: +ALLOW_UNICODE 'mne_watershed_bem --overwrite --subject subj1 --volume T1' >>> bem.run() # doctest: +SKIP diff --git a/nipype/interfaces/mrtrix/preprocess.py b/nipype/interfaces/mrtrix/preprocess.py index becee5088f..7ca6abd1fb 100644 --- a/nipype/interfaces/mrtrix/preprocess.py +++ b/nipype/interfaces/mrtrix/preprocess.py @@ -144,7 +144,7 @@ class DWI2Tensor(CommandLine): >>> dwi2tensor = mrt.DWI2Tensor() >>> dwi2tensor.inputs.in_file = 'dwi.mif' >>> dwi2tensor.inputs.encoding_file = 'encoding.txt' - >>> dwi2tensor.cmdline + >>> dwi2tensor.cmdline # doctest: +ALLOW_UNICODE 'dwi2tensor -grad encoding.txt dwi.mif dwi_tensor.mif' >>> dwi2tensor.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/mrtrix/tracking.py b/nipype/interfaces/mrtrix/tracking.py index 5570a9b8d1..5fa39d38d3 100644 --- a/nipype/interfaces/mrtrix/tracking.py +++ b/nipype/interfaces/mrtrix/tracking.py @@ -210,7 +210,7 @@ class StreamlineTrack(CommandLine): >>> strack.inputs.in_file = 'data.Bfloat' >>> strack.inputs.seed_file = 'seed_mask.nii' >>> strack.inputs.mask_file = 'mask.nii' - >>> strack.cmdline + >>> strack.cmdline # doctest: +ALLOW_UNICODE 'streamtrack -mask mask.nii -seed seed_mask.nii SD_PROB data.Bfloat data_tracked.tck' >>> strack.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/mrtrix3/connectivity.py b/nipype/interfaces/mrtrix3/connectivity.py index caa510e6e1..a2e7db355d 100644 --- a/nipype/interfaces/mrtrix3/connectivity.py +++ b/nipype/interfaces/mrtrix3/connectivity.py @@ -96,7 +96,7 @@ class BuildConnectome(MRTrix3Base): >>> mat = mrt.BuildConnectome() >>> mat.inputs.in_file = 'tracks.tck' >>> mat.inputs.in_parc = 'aparc+aseg.nii' - >>> mat.cmdline # doctest: +ELLIPSIS + >>> mat.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'tck2connectome tracks.tck aparc+aseg.nii connectome.csv' >>> mat.run() # doctest: +SKIP """ @@ -155,7 +155,7 @@ class LabelConfig(MRTrix3Base): >>> labels = mrt.LabelConfig() >>> labels.inputs.in_file = 'aparc+aseg.nii' >>> labels.inputs.in_config = 'mrtrix3_labelconfig.txt' - >>> labels.cmdline # doctest: +ELLIPSIS + >>> labels.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'labelconfig aparc+aseg.nii mrtrix3_labelconfig.txt parcellation.mif' >>> labels.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/mrtrix3/preprocess.py b/nipype/interfaces/mrtrix3/preprocess.py index 141325e25b..91ec44d1f0 100644 --- a/nipype/interfaces/mrtrix3/preprocess.py +++ b/nipype/interfaces/mrtrix3/preprocess.py @@ -96,7 +96,7 @@ class ResponseSD(MRTrix3Base): >>> resp.inputs.in_file = 'dwi.mif' >>> resp.inputs.in_mask = 'mask.nii.gz' >>> resp.inputs.grad_fsl = ('bvecs', 'bvals') - >>> resp.cmdline # doctest: +ELLIPSIS + >>> resp.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'dwi2response -fslgrad bvecs bvals -mask mask.nii.gz dwi.mif response.txt' >>> resp.run() # doctest: +SKIP """ @@ -139,7 +139,7 @@ class ACTPrepareFSL(CommandLine): >>> import nipype.interfaces.mrtrix3 as mrt >>> prep = mrt.ACTPrepareFSL() >>> prep.inputs.in_file = 'T1.nii.gz' - >>> prep.cmdline # doctest: +ELLIPSIS + >>> prep.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'act_anat_prepare_fsl T1.nii.gz act_5tt.mif' >>> prep.run() # doctest: +SKIP """ @@ -185,7 +185,7 @@ class ReplaceFSwithFIRST(CommandLine): >>> prep.inputs.in_file = 'aparc+aseg.nii' >>> prep.inputs.in_t1w = 'T1.nii.gz' >>> prep.inputs.in_config = 'mrtrix3_labelconfig.txt' - >>> prep.cmdline # doctest: +ELLIPSIS + >>> prep.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'fs_parc_replace_sgm_first aparc+aseg.nii T1.nii.gz \ mrtrix3_labelconfig.txt aparc+first.mif' >>> prep.run() # doctest: +SKIP diff --git a/nipype/interfaces/mrtrix3/reconst.py b/nipype/interfaces/mrtrix3/reconst.py index b608c5514c..b1f71dd572 100644 --- a/nipype/interfaces/mrtrix3/reconst.py +++ b/nipype/interfaces/mrtrix3/reconst.py @@ -58,7 +58,7 @@ class FitTensor(MRTrix3Base): >>> tsr.inputs.in_file = 'dwi.mif' >>> tsr.inputs.in_mask = 'mask.nii.gz' >>> tsr.inputs.grad_fsl = ('bvecs', 'bvals') - >>> tsr.cmdline # doctest: +ELLIPSIS + >>> tsr.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'dwi2tensor -fslgrad bvecs bvals -mask mask.nii.gz dwi.mif dti.mif' >>> tsr.run() # doctest: +SKIP """ @@ -173,7 +173,7 @@ class EstimateFOD(MRTrix3Base): >>> fod.inputs.response = 'response.txt' >>> fod.inputs.in_mask = 'mask.nii.gz' >>> fod.inputs.grad_fsl = ('bvecs', 'bvals') - >>> fod.cmdline # doctest: +ELLIPSIS + >>> fod.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'dwi2fod -fslgrad bvecs bvals -mask mask.nii.gz dwi.mif response.txt\ fods.mif' >>> fod.run() # doctest: +SKIP diff --git a/nipype/interfaces/mrtrix3/tracking.py b/nipype/interfaces/mrtrix3/tracking.py index f2cc9c7c75..82c7294cfc 100644 --- a/nipype/interfaces/mrtrix3/tracking.py +++ b/nipype/interfaces/mrtrix3/tracking.py @@ -227,7 +227,7 @@ class Tractography(MRTrix3Base): >>> tk.inputs.in_file = 'fods.mif' >>> tk.inputs.roi_mask = 'mask.nii.gz' >>> tk.inputs.seed_sphere = (80, 100, 70, 10) - >>> tk.cmdline # doctest: +ELLIPSIS + >>> tk.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'tckgen -algorithm iFOD2 -mask mask.nii.gz -seed_sphere \ 80.000000,100.000000,70.000000,10.000000 fods.mif tracked.tck' >>> tk.run() # doctest: +SKIP diff --git a/nipype/interfaces/mrtrix3/utils.py b/nipype/interfaces/mrtrix3/utils.py index 42f3d0c6fd..99f308bd18 100644 --- a/nipype/interfaces/mrtrix3/utils.py +++ b/nipype/interfaces/mrtrix3/utils.py @@ -46,7 +46,7 @@ class BrainMask(CommandLine): >>> import nipype.interfaces.mrtrix3 as mrt >>> bmsk = mrt.BrainMask() >>> bmsk.inputs.in_file = 'dwi.mif' - >>> bmsk.cmdline # doctest: +ELLIPSIS + >>> bmsk.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'dwi2mask dwi.mif brainmask.mif' >>> bmsk.run() # doctest: +SKIP """ @@ -93,7 +93,7 @@ class Mesh2PVE(CommandLine): >>> m2p.inputs.in_file = 'surf1.vtk' >>> m2p.inputs.reference = 'dwi.mif' >>> m2p.inputs.in_first = 'T1.nii.gz' - >>> m2p.cmdline # doctest: +ELLIPSIS + >>> m2p.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'mesh2pve -first T1.nii.gz surf1.vtk dwi.mif mesh2volume.nii.gz' >>> m2p.run() # doctest: +SKIP """ @@ -139,7 +139,7 @@ class Generate5tt(CommandLine): >>> seg.inputs.in_fast = ['tpm_00.nii.gz', ... 'tpm_01.nii.gz', 'tpm_02.nii.gz'] >>> seg.inputs.in_first = 'first_merged.nii.gz' - >>> seg.cmdline # doctest: +ELLIPSIS + >>> seg.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE '5ttgen tpm_00.nii.gz tpm_01.nii.gz tpm_02.nii.gz first_merged.nii.gz\ act-5tt.mif' >>> seg.run() # doctest: +SKIP @@ -197,7 +197,7 @@ class TensorMetrics(CommandLine): >>> comp = mrt.TensorMetrics() >>> comp.inputs.in_file = 'dti.mif' >>> comp.inputs.out_fa = 'fa.mif' - >>> comp.cmdline # doctest: +ELLIPSIS + >>> comp.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'tensor2metric -fa fa.mif dti.mif' >>> comp.run() # doctest: +SKIP """ @@ -337,7 +337,7 @@ class ComputeTDI(MRTrix3Base): >>> import nipype.interfaces.mrtrix3 as mrt >>> tdi = mrt.ComputeTDI() >>> tdi.inputs.in_file = 'dti.mif' - >>> tdi.cmdline # doctest: +ELLIPSIS + >>> tdi.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'tckmap dti.mif tdi.mif' >>> tdi.run() # doctest: +SKIP """ @@ -388,7 +388,7 @@ class TCK2VTK(MRTrix3Base): >>> vtk = mrt.TCK2VTK() >>> vtk.inputs.in_file = 'tracks.tck' >>> vtk.inputs.reference = 'b0.nii' - >>> vtk.cmdline # doctest: +ELLIPSIS + >>> vtk.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'tck2vtk -image b0.nii tracks.tck tracks.vtk' >>> vtk.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/niftyfit/asl.py b/nipype/interfaces/niftyfit/asl.py index 366f9a6eca..f0cc8bc19b 100644 --- a/nipype/interfaces/niftyfit/asl.py +++ b/nipype/interfaces/niftyfit/asl.py @@ -147,7 +147,7 @@ class FitAsl(NiftyFitCommand): >>> from nipype.interfaces import niftyfit >>> node = niftyfit.FitAsl() >>> node.inputs.source_file = 'asl.nii.gz' - >>> node.cmdline + >>> node.cmdline # doctest: +ALLOW_UNICODE 'fit_asl -source asl.nii.gz -cbf asl_cbf.nii.gz -error asl_error.nii.gz \ -syn asl_syn.nii.gz' diff --git a/nipype/interfaces/niftyfit/dwi.py b/nipype/interfaces/niftyfit/dwi.py index 67c5444bbe..e368726656 100644 --- a/nipype/interfaces/niftyfit/dwi.py +++ b/nipype/interfaces/niftyfit/dwi.py @@ -248,7 +248,7 @@ class FitDwi(NiftyFitCommand): >>> fit_dwi.inputs.bvec_file = 'bvecs' >>> fit_dwi.inputs.bval_file = 'bvals' >>> fit_dwi.inputs.rgbmap_file = 'rgb.nii.gz' - >>> fit_dwi.cmdline + >>> fit_dwi.cmdline # doctest: +ALLOW_UNICODE 'fit_dwi -source dwi.nii.gz -bval bvals -bvec bvecs -dti \ -error dwi_error.nii.gz -famap dwi_famap.nii.gz -mcmap dwi_mcmap.nii.gz \ -mcout dwi_mcout.txt -mdmap dwi_mdmap.nii.gz -nodiff dwi_no_diff.nii.gz \ @@ -427,7 +427,7 @@ class DwiTool(NiftyFitCommand): >>> dwi_tool.inputs.mask_file = 'mask.nii.gz' >>> dwi_tool.inputs.b0_file = 'b0.nii.gz' >>> dwi_tool.inputs.rgbmap_file = 'rgb_map.nii.gz' - >>> dwi_tool.cmdline + >>> dwi_tool.cmdline # doctest: +ALLOW_UNICODE 'dwi_tool -source dwi.nii.gz -bval bvals -bvec bvecs -b0 b0.nii.gz \ -mask mask.nii.gz -dti -famap dwi_famap.nii.gz -logdti2 dwi_logdti2.nii.gz \ -mcmap dwi_mcmap.nii.gz -mdmap dwi_mdmap.nii.gz -rgbmap rgb_map.nii.gz \ diff --git a/nipype/interfaces/niftyfit/qt1.py b/nipype/interfaces/niftyfit/qt1.py index b5ccfed88b..6cb0cf7da1 100644 --- a/nipype/interfaces/niftyfit/qt1.py +++ b/nipype/interfaces/niftyfit/qt1.py @@ -165,7 +165,7 @@ class FitQt1(NiftyFitCommand): >>> from nipype.interfaces.niftyfit import FitQt1 >>> fit_qt1 = FitQt1() >>> fit_qt1.inputs.source_file = 'TI4D.nii.gz' - >>> fit_qt1.cmdline + >>> fit_qt1.cmdline # doctest: +ALLOW_UNICODE 'fit_qt1 -source TI4D.nii.gz -comp TI4D_comp.nii.gz \ -error TI4D_error.nii.gz -m0map TI4D_m0map.nii.gz -mcmap TI4D_mcmap.nii.gz \ -res TI4D_res.nii.gz -syn TI4D_syn.nii.gz -t1map TI4D_t1map.nii.gz' diff --git a/nipype/interfaces/niftyreg/reg.py b/nipype/interfaces/niftyreg/reg.py index fa4a1701ee..e8ad87e3ee 100644 --- a/nipype/interfaces/niftyreg/reg.py +++ b/nipype/interfaces/niftyreg/reg.py @@ -156,7 +156,7 @@ class RegAladin(NiftyRegCommand): >>> node.inputs.flo_file = 'im2.nii' >>> node.inputs.rmask_file = 'mask.nii' >>> node.inputs.omp_core_val = 4 - >>> node.cmdline + >>> node.cmdline # doctest: +ALLOW_UNICODE 'reg_aladin -aff im2_aff.txt -flo im2.nii -omp 4 -ref im1.nii \ -res im2_res.nii.gz -rmask mask.nii' @@ -367,7 +367,7 @@ class RegF3D(NiftyRegCommand): >>> node.inputs.flo_file = 'im2.nii' >>> node.inputs.rmask_file = 'mask.nii' >>> node.inputs.omp_core_val = 4 - >>> node.cmdline + >>> node.cmdline # doctest: +ALLOW_UNICODE 'reg_f3d -cpp im2_cpp.nii.gz -flo im2.nii -omp 4 -ref im1.nii \ -res im2_res.nii.gz -rmask mask.nii' diff --git a/nipype/interfaces/niftyreg/regutils.py b/nipype/interfaces/niftyreg/regutils.py index 9e42a55126..9c2ddc055d 100644 --- a/nipype/interfaces/niftyreg/regutils.py +++ b/nipype/interfaces/niftyreg/regutils.py @@ -106,7 +106,7 @@ class RegResample(NiftyRegCommand): >>> node.inputs.trans_file = 'warpfield.nii' >>> node.inputs.inter_val = 'LIN' >>> node.inputs.omp_core_val = 4 - >>> node.cmdline + >>> node.cmdline # doctest: +ALLOW_UNICODE 'reg_resample -flo im2.nii -inter 1 -omp 4 -ref im1.nii -trans \ warpfield.nii -res im2_res.nii.gz' @@ -173,7 +173,7 @@ class RegJacobian(NiftyRegCommand): >>> node.inputs.ref_file = 'im1.nii' >>> node.inputs.trans_file = 'warpfield.nii' >>> node.inputs.omp_core_val = 4 - >>> node.cmdline + >>> node.cmdline # doctest: +ALLOW_UNICODE 'reg_jacobian -omp 4 -ref im1.nii -trans warpfield.nii -jac \ warpfield_jac.nii.gz' @@ -289,7 +289,7 @@ class RegTools(NiftyRegCommand): >>> node.inputs.in_file = 'im1.nii' >>> node.inputs.mul_val = 4 >>> node.inputs.omp_core_val = 4 - >>> node.cmdline + >>> node.cmdline # doctest: +ALLOW_UNICODE 'reg_tools -in im1.nii -mul 4.0 -omp 4 -out im1_tools.nii.gz' """ @@ -397,7 +397,7 @@ class RegAverage(NiftyRegCommand): >>> two_file = 'im2.nii' >>> three_file = 'im3.nii' >>> node.inputs.avg_files = [one_file, two_file, three_file] - >>> node.cmdline # doctest: +ELLIPSIS + >>> node.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'reg_average --cmd_file .../reg_average_cmd' """ @@ -602,7 +602,7 @@ class RegTransform(NiftyRegCommand): >>> node = niftyreg.RegTransform() >>> node.inputs.def_input = 'warpfield.nii' >>> node.inputs.omp_core_val = 4 - >>> node.cmdline # doctest: +ELLIPSIS + >>> node.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE 'reg_transform -omp 4 -def warpfield.nii .../warpfield_trans.nii.gz' """ @@ -714,7 +714,7 @@ class RegMeasure(NiftyRegCommand): >>> node.inputs.flo_file = 'im2.nii' >>> node.inputs.measure_type = 'lncc' >>> node.inputs.omp_core_val = 4 - >>> node.cmdline + >>> node.cmdline # doctest: +ALLOW_UNICODE 'reg_measure -flo im2.nii -lncc -omp 4 -out im2_lncc.txt -ref im1.nii' """ diff --git a/nipype/interfaces/niftyseg/em.py b/nipype/interfaces/niftyseg/em.py index f2e7359677..be39f7775b 100644 --- a/nipype/interfaces/niftyseg/em.py +++ b/nipype/interfaces/niftyseg/em.py @@ -127,7 +127,7 @@ class EM(NiftySegCommand): >>> node = niftyseg.EM() >>> node.inputs.in_file = 'im1.nii' >>> node.inputs.no_prior = 4 - >>> node.cmdline + >>> node.cmdline # doctest: +ALLOW_UNICODE 'seg_EM -in im1.nii -nopriors 4 -bc_out im1_bc_em.nii.gz -out im1_em.nii.gz -out_outlier im1_outlier_em.nii.gz' """ diff --git a/nipype/interfaces/niftyseg/label_fusion.py b/nipype/interfaces/niftyseg/label_fusion.py index c1637cb258..82b19d1f3b 100644 --- a/nipype/interfaces/niftyseg/label_fusion.py +++ b/nipype/interfaces/niftyseg/label_fusion.py @@ -147,7 +147,7 @@ class LabelFusion(NiftySegCommand): >>> node.inputs.template_file = 'im3.nii' >>> node.inputs.template_num = 2 >>> node.inputs.classifier_type = 'STEPS' - >>> node.cmdline + >>> node.cmdline # doctest: +ALLOW_UNICODE 'seg_LabFusion -in im1.nii -STEPS 2.000000 2 im2.nii im3.nii -out im1_steps.nii' """ @@ -298,7 +298,7 @@ class CalcTopNCC(NiftySegCommand): >>> node.inputs.num_templates = 2 >>> node.inputs.in_templates = ['im2.nii', 'im3.nii'] >>> node.inputs.top_templates = 1 - >>> node.cmdline + >>> node.cmdline # doctest: +ALLOW_UNICODE 'seg_CalcTopNCC -target im1.nii -templates 2 im2.nii im3.nii -n 1' """ diff --git a/nipype/interfaces/niftyseg/lesions.py b/nipype/interfaces/niftyseg/lesions.py index 489837e6dd..d531b5c464 100644 --- a/nipype/interfaces/niftyseg/lesions.py +++ b/nipype/interfaces/niftyseg/lesions.py @@ -109,7 +109,7 @@ class FillLesions(NiftySegCommand): >>> node = niftyseg.FillLesions() >>> node.inputs.in_file = 'im1.nii' >>> node.inputs.lesion_mask = 'im2.nii' - >>> node.cmdline + >>> node.cmdline # doctest: +ALLOW_UNICODE 'seg_FillLesions -i im1.nii -l im2.nii -o im1_lesions_filled.nii.gz' """ diff --git a/nipype/interfaces/niftyseg/maths.py b/nipype/interfaces/niftyseg/maths.py index b8a5c0a1b8..bd05ab5df3 100644 --- a/nipype/interfaces/niftyseg/maths.py +++ b/nipype/interfaces/niftyseg/maths.py @@ -169,31 +169,31 @@ class UnaryMaths(MathsCommand): >>> # Test sqrt operation >>> unary_sqrt = copy.deepcopy(unary) >>> unary_sqrt.inputs.operation = 'sqrt' - >>> unary_sqrt.cmdline + >>> unary_sqrt.cmdline # doctest: +ALLOW_UNICODE 'seg_maths im1.nii -sqrt -odt float im1_sqrt.nii' >>> unary_sqrt.run() # doctest: +SKIP >>> # Test sqrt operation >>> unary_abs = copy.deepcopy(unary) >>> unary_abs.inputs.operation = 'abs' - >>> unary_abs.cmdline + >>> unary_abs.cmdline # doctest: +ALLOW_UNICODE 'seg_maths im1.nii -abs -odt float im1_abs.nii' >>> unary_abs.run() # doctest: +SKIP >>> # Test bin operation >>> unary_bin = copy.deepcopy(unary) >>> unary_bin.inputs.operation = 'bin' - >>> unary_bin.cmdline + >>> unary_bin.cmdline # doctest: +ALLOW_UNICODE 'seg_maths im1.nii -bin -odt float im1_bin.nii' >>> unary_bin.run() # doctest: +SKIP >>> # Test otsu operation >>> unary_otsu = copy.deepcopy(unary) >>> unary_otsu.inputs.operation = 'otsu' - >>> unary_otsu.cmdline + >>> unary_otsu.cmdline # doctest: +ALLOW_UNICODE 'seg_maths im1.nii -otsu -odt float im1_otsu.nii' >>> unary_otsu.run() # doctest: +SKIP >>> # Test isnan operation >>> unary_isnan = copy.deepcopy(unary) >>> unary_isnan.inputs.operation = 'isnan' - >>> unary_isnan.cmdline + >>> unary_isnan.cmdline # doctest: +ALLOW_UNICODE 'seg_maths im1.nii -isnan -odt float im1_isnan.nii' >>> unary_isnan.run() # doctest: +SKIP @@ -302,28 +302,28 @@ class BinaryMaths(MathsCommand): >>> binary_sub = copy.deepcopy(binary) >>> binary_sub.inputs.operation = 'sub' >>> binary_sub.inputs.operand_file = 'im2.nii' - >>> binary_sub.cmdline + >>> binary_sub.cmdline # doctest: +ALLOW_UNICODE 'seg_maths im1.nii -sub im2.nii -odt float im1_sub.nii' >>> binary_sub.run() # doctest: +SKIP >>> # Test mul operation >>> binary_mul = copy.deepcopy(binary) >>> binary_mul.inputs.operation = 'mul' >>> binary_mul.inputs.operand_value = 2.0 - >>> binary_mul.cmdline + >>> binary_mul.cmdline # doctest: +ALLOW_UNICODE 'seg_maths im1.nii -mul 2.00000000 -odt float im1_mul.nii' >>> binary_mul.run() # doctest: +SKIP >>> # Test llsnorm operation >>> binary_llsnorm = copy.deepcopy(binary) >>> binary_llsnorm.inputs.operation = 'llsnorm' >>> binary_llsnorm.inputs.operand_file = 'im2.nii' - >>> binary_llsnorm.cmdline + >>> binary_llsnorm.cmdline # doctest: +ALLOW_UNICODE 'seg_maths im1.nii -llsnorm im2.nii -odt float im1_llsnorm.nii' >>> binary_llsnorm.run() # doctest: +SKIP >>> # Test splitinter operation >>> binary_splitinter = copy.deepcopy(binary) >>> binary_splitinter.inputs.operation = 'splitinter' >>> binary_splitinter.inputs.operand_str = 'z' - >>> binary_splitinter.cmdline + >>> binary_splitinter.cmdline # doctest: +ALLOW_UNICODE 'seg_maths im1.nii -splitinter z -odt float im1_splitinter.nii' >>> binary_splitinter.run() # doctest: +SKIP @@ -419,21 +419,21 @@ class BinaryMathsInteger(MathsCommand): >>> binaryi_dil = copy.deepcopy(binaryi) >>> binaryi_dil.inputs.operation = 'dil' >>> binaryi_dil.inputs.operand_value = 2 - >>> binaryi_dil.cmdline + >>> binaryi_dil.cmdline # doctest: +ALLOW_UNICODE 'seg_maths im1.nii -dil 2 -odt float im1_dil.nii' >>> binaryi_dil.run() # doctest: +SKIP >>> # Test dil operation >>> binaryi_ero = copy.deepcopy(binaryi) >>> binaryi_ero.inputs.operation = 'ero' >>> binaryi_ero.inputs.operand_value = 1 - >>> binaryi_ero.cmdline + >>> binaryi_ero.cmdline # doctest: +ALLOW_UNICODE 'seg_maths im1.nii -ero 1 -odt float im1_ero.nii' >>> binaryi_ero.run() # doctest: +SKIP >>> # Test pad operation >>> binaryi_pad = copy.deepcopy(binaryi) >>> binaryi_pad.inputs.operation = 'pad' >>> binaryi_pad.inputs.operand_value = 4 - >>> binaryi_pad.cmdline + >>> binaryi_pad.cmdline # doctest: +ALLOW_UNICODE 'seg_maths im1.nii -pad 4 -odt float im1_pad.nii' >>> binaryi_pad.run() # doctest: +SKIP @@ -512,7 +512,7 @@ class TupleMaths(MathsCommand): >>> tuple_lncc.inputs.operation = 'lncc' >>> tuple_lncc.inputs.operand_file1 = 'im2.nii' >>> tuple_lncc.inputs.operand_value2 = 2.0 - >>> tuple_lncc.cmdline + >>> tuple_lncc.cmdline # doctest: +ALLOW_UNICODE 'seg_maths im1.nii -lncc im2.nii 2.00000000 -odt float im1_lncc.nii' >>> tuple_lncc.run() # doctest: +SKIP @@ -521,7 +521,7 @@ class TupleMaths(MathsCommand): >>> tuple_lssd.inputs.operation = 'lssd' >>> tuple_lssd.inputs.operand_file1 = 'im2.nii' >>> tuple_lssd.inputs.operand_value2 = 1.0 - >>> tuple_lssd.cmdline + >>> tuple_lssd.cmdline # doctest: +ALLOW_UNICODE 'seg_maths im1.nii -lssd im2.nii 1.00000000 -odt float im1_lssd.nii' >>> tuple_lssd.run() # doctest: +SKIP @@ -530,7 +530,7 @@ class TupleMaths(MathsCommand): >>> tuple_lltsnorm.inputs.operation = 'lltsnorm' >>> tuple_lltsnorm.inputs.operand_file1 = 'im2.nii' >>> tuple_lltsnorm.inputs.operand_value2 = 0.01 - >>> tuple_lltsnorm.cmdline + >>> tuple_lltsnorm.cmdline # doctest: +ALLOW_UNICODE 'seg_maths im1.nii -lltsnorm im2.nii 0.01000000 -odt float \ im1_lltsnorm.nii' >>> tuple_lltsnorm.run() # doctest: +SKIP @@ -575,7 +575,7 @@ class Merge(MathsCommand): >>> node.inputs.merge_files = files >>> node.inputs.dimension = 2 >>> node.inputs.output_datatype = 'float' - >>> node.cmdline + >>> node.cmdline # doctest: +ALLOW_UNICODE 'seg_maths im1.nii -merge 2 2 im2.nii im3.nii -odt float im1_merged.nii' """ diff --git a/nipype/interfaces/niftyseg/patchmatch.py b/nipype/interfaces/niftyseg/patchmatch.py index 207764f086..d598a08928 100644 --- a/nipype/interfaces/niftyseg/patchmatch.py +++ b/nipype/interfaces/niftyseg/patchmatch.py @@ -102,7 +102,7 @@ class PatchMatch(NiftySegCommand): >>> node.inputs.in_file = 'im1.nii' >>> node.inputs.mask_file = 'im2.nii' >>> node.inputs.database_file = 'db.xml' - >>> node.cmdline + >>> node.cmdline # doctest: +ALLOW_UNICODE 'seg_PatchMatch -i im1.nii -m im2.nii -db db.xml -o im1_pm.nii.gz' """ diff --git a/nipype/interfaces/niftyseg/stats.py b/nipype/interfaces/niftyseg/stats.py index cef03b6177..e2e7781aa6 100644 --- a/nipype/interfaces/niftyseg/stats.py +++ b/nipype/interfaces/niftyseg/stats.py @@ -154,19 +154,19 @@ class UnaryStats(StatsCommand): >>> # Test v operation >>> unary_v = copy.deepcopy(unary) >>> unary_v.inputs.operation = 'v' - >>> unary_v.cmdline + >>> unary_v.cmdline # doctest: +ALLOW_UNICODE 'seg_stats im1.nii -v' >>> unary_v.run() # doctest: +SKIP >>> # Test vl operation >>> unary_vl = copy.deepcopy(unary) >>> unary_vl.inputs.operation = 'vl' - >>> unary_vl.cmdline + >>> unary_vl.cmdline # doctest: +ALLOW_UNICODE 'seg_stats im1.nii -vl' >>> unary_vl.run() # doctest: +SKIP >>> # Test x operation >>> unary_x = copy.deepcopy(unary) >>> unary_x.inputs.operation = 'x' - >>> unary_x.cmdline + >>> unary_x.cmdline # doctest: +ALLOW_UNICODE 'seg_stats im1.nii -x' >>> unary_x.run() # doctest: +SKIP @@ -243,21 +243,21 @@ class BinaryStats(StatsCommand): >>> binary_sa = copy.deepcopy(binary) >>> binary_sa.inputs.operation = 'sa' >>> binary_sa.inputs.operand_value = 2.0 - >>> binary_sa.cmdline + >>> binary_sa.cmdline # doctest: +ALLOW_UNICODE 'seg_stats im1.nii -sa 2.00000000' >>> binary_sa.run() # doctest: +SKIP >>> # Test ncc operation >>> binary_ncc = copy.deepcopy(binary) >>> binary_ncc.inputs.operation = 'ncc' >>> binary_ncc.inputs.operand_file = 'im2.nii' - >>> binary_ncc.cmdline + >>> binary_ncc.cmdline # doctest: +ALLOW_UNICODE 'seg_stats im1.nii -ncc im2.nii' >>> binary_ncc.run() # doctest: +SKIP >>> # Test Nl operation >>> binary_nl = copy.deepcopy(binary) >>> binary_nl.inputs.operation = 'Nl' >>> binary_nl.inputs.operand_file = 'output.csv' - >>> binary_nl.cmdline + >>> binary_nl.cmdline # doctest: +ALLOW_UNICODE 'seg_stats im1.nii -Nl output.csv' >>> binary_nl.run() # doctest: +SKIP diff --git a/nipype/interfaces/quickshear.py b/nipype/interfaces/quickshear.py index a0e9c79a1c..d1782d5755 100644 --- a/nipype/interfaces/quickshear.py +++ b/nipype/interfaces/quickshear.py @@ -40,7 +40,7 @@ class Quickshear(CommandLine): >>> from nipype.interfaces.quickshear import Quickshear >>> qs = Quickshear(in_file='T1.nii', mask_file='brain_mask.nii') - >>> qs.cmdline + >>> qs.cmdline # doctest: +ALLOW_UNICODE 'quickshear T1.nii brain_mask.nii T1_defaced.nii' In the absence of a precomputed mask, a simple pipeline can be generated diff --git a/nipype/interfaces/slicer/generate_classes.py b/nipype/interfaces/slicer/generate_classes.py index f0bc8274bb..77a633f5f8 100644 --- a/nipype/interfaces/slicer/generate_classes.py +++ b/nipype/interfaces/slicer/generate_classes.py @@ -18,9 +18,9 @@ def force_to_valid_python_variable_name(old_name): """ Valid c++ names are not always valid in python, so provide alternate naming - >>> force_to_valid_python_variable_name('lambda') + >>> force_to_valid_python_variable_name('lambda') # doctest: +ALLOW_UNICODE 'opt_lambda' - >>> force_to_valid_python_variable_name('inputVolume') + >>> force_to_valid_python_variable_name('inputVolume') # doctest: +ALLOW_UNICODE 'inputVolume' """ new_name = old_name diff --git a/nipype/interfaces/utility/base.py b/nipype/interfaces/utility/base.py index 179bfd7c20..60e4c4aa3f 100644 --- a/nipype/interfaces/utility/base.py +++ b/nipype/interfaces/utility/base.py @@ -47,7 +47,7 @@ class IdentityInterface(IOBase): >>> out = ii.run() - >>> out.outputs.a + >>> out.outputs.a # doctest: +ALLOW_UNICODE 'foo' >>> ii2 = IdentityInterface(fields=['a', 'b'], mandatory_inputs=True) diff --git a/nipype/interfaces/vista/vista.py b/nipype/interfaces/vista/vista.py index e8928ae24a..e898956d65 100644 --- a/nipype/interfaces/vista/vista.py +++ b/nipype/interfaces/vista/vista.py @@ -34,7 +34,7 @@ class Vnifti2Image(CommandLine): >>> vimage = Vnifti2Image() >>> vimage.inputs.in_file = 'image.nii' - >>> vimage.cmdline + >>> vimage.cmdline # doctest: +ALLOW_UNICODE 'vnifti2image -in image.nii -out image.v' >>> vimage.run() # doctest: +SKIP """ @@ -63,7 +63,7 @@ class VtoMat(CommandLine): >>> vimage = VtoMat() >>> vimage.inputs.in_file = 'image.v' - >>> vimage.cmdline + >>> vimage.cmdline # doctest: +ALLOW_UNICODE 'vtomat -in image.v -out image.mat' >>> vimage.run() # doctest: +SKIP """ diff --git a/nipype/pipeline/engine/nodes.py b/nipype/pipeline/engine/nodes.py index 36d3ba1b40..f7f83f578a 100644 --- a/nipype/pipeline/engine/nodes.py +++ b/nipype/pipeline/engine/nodes.py @@ -887,7 +887,7 @@ def _add_join_item_fields(self): ... name='inputspec'), >>> join = JoinNode(IdentityInterface(fields=['images', 'mask']), ... joinsource='inputspec', joinfield='images', name='join') - >>> join._add_join_item_fields() + >>> join._add_join_item_fields() # doctest: +ALLOW_UNICODE {'images': 'imagesJ1'} Return the {base field: slot field} dictionary diff --git a/nipype/pipeline/plugins/sge.py b/nipype/pipeline/plugins/sge.py index 42aa4bc915..6d448df3df 100644 --- a/nipype/pipeline/plugins/sge.py +++ b/nipype/pipeline/plugins/sge.py @@ -313,9 +313,9 @@ def qsub_sanitize_job_name(testjobname): Numbers and punctuation are not allowed. - >>> qsub_sanitize_job_name('01') + >>> qsub_sanitize_job_name('01') # doctest: +ALLOW_UNICODE 'J01' - >>> qsub_sanitize_job_name('a01') + >>> qsub_sanitize_job_name('a01') # doctest: +ALLOW_UNICODE 'a01' """ if testjobname[0].isalpha(): diff --git a/nipype/utils/filemanip.py b/nipype/utils/filemanip.py index be71424a5a..e8a9ea22b8 100644 --- a/nipype/utils/filemanip.py +++ b/nipype/utils/filemanip.py @@ -64,13 +64,13 @@ def split_filename(fname): -------- >>> from nipype.utils.filemanip import split_filename >>> pth, fname, ext = split_filename('/home/data/subject.nii.gz') - >>> pth + >>> pth # doctest: +ALLOW_UNICODE '/home/data' - >>> fname + >>> fname # doctest: +ALLOW_UNICODE 'subject' - >>> ext + >>> ext # doctest: +ALLOW_UNICODE '.nii.gz' """ @@ -171,7 +171,7 @@ def fname_presuffix(fname, prefix='', suffix='', newpath=None, use_ext=True): >>> from nipype.utils.filemanip import fname_presuffix >>> fname = 'foo.nii.gz' - >>> fname_presuffix(fname,'pre','post','/tmp') + >>> fname_presuffix(fname,'pre','post','/tmp') # doctest: +ALLOW_UNICODE '/tmp/prefoopost.nii.gz' """ @@ -603,7 +603,7 @@ def read_stream(stream, logger=None, encoding=None): Robustly reads a stream, sending a warning to a logger if some decoding error was raised. - >>> read_stream(bytearray([65, 0xc7, 65, 10, 66])) # doctest: +ELLIPSIS + >>> read_stream(bytearray([65, 0xc7, 65, 10, 66])) # doctest: +ELLIPSIS +ALLOW_UNICODE ['A...A', 'B'] diff --git a/pytest.ini b/pytest.ini index 1e1b23e962..6247b04cca 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,4 +1,3 @@ [pytest] norecursedirs = .git build dist doc nipype/external tools examples src -addopts = --doctest-modules -doctest_optionflags = ALLOW_UNICODE \ No newline at end of file +addopts = --doctest-modules \ No newline at end of file diff --git a/tools/apigen.py b/tools/apigen.py index c594042f71..d3a732d881 100644 --- a/tools/apigen.py +++ b/tools/apigen.py @@ -103,11 +103,11 @@ def set_package_name(self, package_name): def _get_object_name(self, line): ''' Get second token in line >>> docwriter = ApiDocWriter('sphinx') - >>> docwriter._get_object_name(" def func(): ") + >>> docwriter._get_object_name(" def func(): ") # doctest: +ALLOW_UNICODE u'func' - >>> docwriter._get_object_name(" class Klass(object): ") + >>> docwriter._get_object_name(" class Klass(object): ") # doctest: +ALLOW_UNICODE 'Klass' - >>> docwriter._get_object_name(" class Klass: ") + >>> docwriter._get_object_name(" class Klass: ") # doctest: +ALLOW_UNICODE 'Klass' ''' name = line.split()[1].split('(')[0].strip() diff --git a/tools/interfacedocgen.py b/tools/interfacedocgen.py index 80356d3ded..3eb7467c4b 100644 --- a/tools/interfacedocgen.py +++ b/tools/interfacedocgen.py @@ -124,11 +124,11 @@ def set_package_name(self, package_name): def _get_object_name(self, line): ''' Get second token in line >>> docwriter = ApiDocWriter('sphinx') - >>> docwriter._get_object_name(" def func(): ") + >>> docwriter._get_object_name(" def func(): ") # doctest: +ALLOW_UNICODE u'func' - >>> docwriter._get_object_name(" class Klass(object): ") + >>> docwriter._get_object_name(" class Klass(object): ") # doctest: +ALLOW_UNICODE 'Klass' - >>> docwriter._get_object_name(" class Klass: ") + >>> docwriter._get_object_name(" class Klass: ") # doctest: +ALLOW_UNICODE 'Klass' ''' name = line.split()[1].split('(')[0].strip() From ce13ade04a496a56322d2c03eb9a2c73bdfec2ed Mon Sep 17 00:00:00 2001 From: Dorota Jarecka Date: Fri, 27 Oct 2017 10:59:38 -0400 Subject: [PATCH 07/16] moving doctest ALLOW_UNICODE and NORMALIZE_WHITESPACE to pytest.ini, so doesnt have to be included in the docstrings --- nipype/interfaces/afni/model.py | 6 +- nipype/interfaces/afni/preprocess.py | 86 ++++++++++---------- nipype/interfaces/afni/utils.py | 74 ++++++++--------- nipype/interfaces/ants/legacy.py | 4 +- nipype/interfaces/ants/registration.py | 38 ++++----- nipype/interfaces/ants/resampling.py | 12 +-- nipype/interfaces/ants/segmentation.py | 40 ++++----- nipype/interfaces/ants/utils.py | 12 +-- nipype/interfaces/ants/visualization.py | 4 +- nipype/interfaces/base.py | 28 +++---- nipype/interfaces/bru2nii.py | 2 +- nipype/interfaces/c3.py | 2 +- nipype/interfaces/dcm2nii.py | 4 +- nipype/interfaces/elastix/registration.py | 8 +- nipype/interfaces/freesurfer/longitudinal.py | 10 +-- nipype/interfaces/freesurfer/model.py | 22 ++--- nipype/interfaces/freesurfer/preprocess.py | 62 +++++++------- nipype/interfaces/freesurfer/registration.py | 14 ++-- nipype/interfaces/freesurfer/utils.py | 54 ++++++------ nipype/interfaces/fsl/aroma.py | 2 +- nipype/interfaces/fsl/dti.py | 14 ++-- nipype/interfaces/fsl/epi.py | 18 ++-- nipype/interfaces/fsl/maths.py | 2 +- nipype/interfaces/fsl/model.py | 14 ++-- nipype/interfaces/fsl/possum.py | 2 +- nipype/interfaces/fsl/preprocess.py | 14 ++-- nipype/interfaces/fsl/utils.py | 24 +++--- nipype/interfaces/io.py | 6 +- nipype/interfaces/meshfix.py | 2 +- nipype/interfaces/minc/base.py | 4 +- nipype/interfaces/mne/base.py | 2 +- nipype/interfaces/mrtrix/preprocess.py | 2 +- nipype/interfaces/mrtrix/tracking.py | 2 +- nipype/interfaces/mrtrix3/connectivity.py | 4 +- nipype/interfaces/mrtrix3/preprocess.py | 6 +- nipype/interfaces/mrtrix3/reconst.py | 4 +- nipype/interfaces/mrtrix3/tracking.py | 2 +- nipype/interfaces/mrtrix3/utils.py | 12 +-- nipype/interfaces/niftyfit/asl.py | 2 +- nipype/interfaces/niftyfit/dwi.py | 4 +- nipype/interfaces/niftyfit/qt1.py | 2 +- nipype/interfaces/niftyreg/reg.py | 4 +- nipype/interfaces/niftyreg/regutils.py | 12 +-- nipype/interfaces/niftyseg/em.py | 2 +- nipype/interfaces/niftyseg/label_fusion.py | 4 +- nipype/interfaces/niftyseg/lesions.py | 2 +- nipype/interfaces/niftyseg/maths.py | 32 ++++---- nipype/interfaces/niftyseg/patchmatch.py | 2 +- nipype/interfaces/niftyseg/stats.py | 12 +-- nipype/interfaces/quickshear.py | 2 +- nipype/interfaces/slicer/generate_classes.py | 4 +- nipype/interfaces/utility/base.py | 2 +- nipype/interfaces/vista/vista.py | 4 +- nipype/pipeline/engine/nodes.py | 2 +- nipype/pipeline/plugins/sge.py | 4 +- nipype/utils/filemanip.py | 10 +-- pytest.ini | 3 +- tools/apigen.py | 6 +- tools/interfacedocgen.py | 6 +- 59 files changed, 370 insertions(+), 369 deletions(-) diff --git a/nipype/interfaces/afni/model.py b/nipype/interfaces/afni/model.py index 4fdc533a1b..d5730d15f9 100644 --- a/nipype/interfaces/afni/model.py +++ b/nipype/interfaces/afni/model.py @@ -260,7 +260,7 @@ class Deconvolve(AFNICommand): >>> deconvolve.inputs.stim_label = [(1, 'Houses')] >>> deconvolve.inputs.gltsym = ['SYM: +Houses'] >>> deconvolve.inputs.glt_label = [(1, 'Houses')] - >>> deconvolve.cmdline # doctest: +ALLOW_UNICODE + >>> deconvolve.cmdline "3dDeconvolve -input functional.nii functional2.nii -bucket output.nii -x1D output.1D -num_stimts 1 -stim_times 1 timeseries.txt 'SPMG1(4)' -stim_label 1 Houses -num_glt 1 -gltsym 'SYM: +Houses' -glt_label 1 Houses" >>> res = deconvolve.run() # doctest: +SKIP """ @@ -574,7 +574,7 @@ class Remlfit(AFNICommand): >>> remlfit.inputs.out_file = 'output.nii' >>> remlfit.inputs.matrix = 'output.1D' >>> remlfit.inputs.gltsym = [('SYM: +Lab1 -Lab2', 'TestSYM'), ('timeseries.txt', 'TestFile')] - >>> remlfit.cmdline # doctest: +ALLOW_UNICODE + >>> remlfit.cmdline '3dREMLfit -gltsym "SYM: +Lab1 -Lab2" TestSYM -gltsym "timeseries.txt" TestFile -input "functional.nii functional2.nii" -matrix output.1D -Rbuck output.nii' >>> res = remlfit.run() # doctest: +SKIP """ @@ -660,7 +660,7 @@ class Synthesize(AFNICommand): >>> synthesize.inputs.cbucket = 'functional.nii' >>> synthesize.inputs.matrix = 'output.1D' >>> synthesize.inputs.select = ['baseline'] - >>> synthesize.cmdline # doctest: +ALLOW_UNICODE + >>> synthesize.cmdline '3dSynthesize -cbucket functional.nii -matrix output.1D -select baseline' >>> syn = synthesize.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/afni/preprocess.py b/nipype/interfaces/afni/preprocess.py index a769811df1..e46c9689c2 100644 --- a/nipype/interfaces/afni/preprocess.py +++ b/nipype/interfaces/afni/preprocess.py @@ -169,7 +169,7 @@ class AlignEpiAnatPy(AFNIPythonCommand): >>> al_ea.inputs.volreg = 'off' >>> al_ea.inputs.tshift = 'off' >>> al_ea.inputs.save_skullstrip = True - >>> al_ea.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS + >>> al_ea.cmdline # doctest: +ELLIPSIS 'python2 ...align_epi_anat.py -anat structural.nii -epi_base 0 -epi_strip 3dAutomask -epi functional.nii -save_skullstrip -suffix _al -tshift off -volreg off' >>> res = allineate.run() # doctest: +SKIP """ @@ -462,7 +462,7 @@ class Allineate(AFNICommand): >>> allineate.inputs.in_file = 'functional.nii' >>> allineate.inputs.out_file = 'functional_allineate.nii' >>> allineate.inputs.in_matrix = 'cmatrix.mat' - >>> allineate.cmdline # doctest: +ALLOW_UNICODE + >>> allineate.cmdline '3dAllineate -source functional.nii -prefix functional_allineate.nii -1Dmatrix_apply cmatrix.mat' >>> res = allineate.run() # doctest: +SKIP @@ -471,7 +471,7 @@ class Allineate(AFNICommand): >>> allineate.inputs.in_file = 'functional.nii' >>> allineate.inputs.reference = 'structural.nii' >>> allineate.inputs.allcostx = 'out.allcostX.txt' - >>> allineate.cmdline # doctest: +ALLOW_UNICODE + >>> allineate.cmdline '3dAllineate -source functional.nii -base structural.nii -allcostx |& tee out.allcostX.txt' >>> res = allineate.run() # doctest: +SKIP """ @@ -574,7 +574,7 @@ class AutoTcorrelate(AFNICommand): >>> corr.inputs.eta2 = True >>> corr.inputs.mask = 'mask.nii' >>> corr.inputs.mask_only_targets = True - >>> corr.cmdline # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE +ALLOW_UNICODE + >>> corr.cmdline # doctest: +ELLIPSIS '3dAutoTcorrelate -eta2 -mask mask.nii -mask_only_targets -prefix functional_similarity_matrix.1D -polort -1 functional.nii' >>> res = corr.run() # doctest: +SKIP """ @@ -643,7 +643,7 @@ class Automask(AFNICommand): >>> automask.inputs.in_file = 'functional.nii' >>> automask.inputs.dilate = 1 >>> automask.inputs.outputtype = 'NIFTI' - >>> automask.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> automask.cmdline # doctest: +ELLIPSIS '3dAutomask -apply_prefix functional_masked.nii -dilate 1 -prefix functional_mask.nii functional.nii' >>> res = automask.run() # doctest: +SKIP @@ -737,7 +737,7 @@ class AutoTLRC(AFNICommand): >>> autoTLRC.inputs.in_file = 'structural.nii' >>> autoTLRC.inputs.no_ss = True >>> autoTLRC.inputs.base = "TT_N27+tlrc" - >>> autoTLRC.cmdline # doctest: +ALLOW_UNICODE + >>> autoTLRC.cmdline '@auto_tlrc -base TT_N27+tlrc -input structural.nii -no_ss' >>> res = autoTLRC.run() # doctest: +SKIP @@ -849,7 +849,7 @@ class Bandpass(AFNICommand): >>> bandpass.inputs.in_file = 'functional.nii' >>> bandpass.inputs.highpass = 0.005 >>> bandpass.inputs.lowpass = 0.1 - >>> bandpass.cmdline # doctest: +ALLOW_UNICODE + >>> bandpass.cmdline '3dBandpass -prefix functional_bp 0.005000 0.100000 functional.nii' >>> res = bandpass.run() # doctest: +SKIP @@ -917,7 +917,7 @@ class BlurInMask(AFNICommand): >>> bim.inputs.in_file = 'functional.nii' >>> bim.inputs.mask = 'mask.nii' >>> bim.inputs.fwhm = 5.0 - >>> bim.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> bim.cmdline # doctest: +ELLIPSIS '3dBlurInMask -input functional.nii -FWHM 5.000000 -mask mask.nii -prefix functional_blur' >>> res = bim.run() # doctest: +SKIP @@ -968,7 +968,7 @@ class BlurToFWHM(AFNICommand): >>> blur = afni.preprocess.BlurToFWHM() >>> blur.inputs.in_file = 'epi.nii' >>> blur.inputs.fwhm = 2.5 - >>> blur.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> blur.cmdline # doctest: +ELLIPSIS '3dBlurToFWHM -FWHM 2.500000 -input epi.nii -prefix epi_afni' >>> res = blur.run() # doctest: +SKIP @@ -1019,7 +1019,7 @@ class ClipLevel(AFNICommandBase): >>> from nipype.interfaces.afni import preprocess >>> cliplevel = preprocess.ClipLevel() >>> cliplevel.inputs.in_file = 'anatomical.nii' - >>> cliplevel.cmdline # doctest: +ALLOW_UNICODE + >>> cliplevel.cmdline '3dClipLevel anatomical.nii' >>> res = cliplevel.run() # doctest: +SKIP @@ -1102,7 +1102,7 @@ class DegreeCentrality(AFNICommand): >>> degree.inputs.mask = 'mask.nii' >>> degree.inputs.sparsity = 1 # keep the top one percent of connections >>> degree.inputs.out_file = 'out.nii' - >>> degree.cmdline # doctest: +ALLOW_UNICODE + >>> degree.cmdline '3dDegreeCentrality -mask mask.nii -prefix out.nii -sparsity 1.000000 functional.nii' >>> res = degree.run() # doctest: +SKIP @@ -1152,7 +1152,7 @@ class Despike(AFNICommand): >>> from nipype.interfaces import afni >>> despike = afni.Despike() >>> despike.inputs.in_file = 'functional.nii' - >>> despike.cmdline # doctest: +ALLOW_UNICODE + >>> despike.cmdline '3dDespike -prefix functional_despike functional.nii' >>> res = despike.run() # doctest: +SKIP @@ -1193,7 +1193,7 @@ class Detrend(AFNICommand): >>> detrend.inputs.in_file = 'functional.nii' >>> detrend.inputs.args = '-polort 2' >>> detrend.inputs.outputtype = 'AFNI' - >>> detrend.cmdline # doctest: +ALLOW_UNICODE + >>> detrend.cmdline '3dDetrend -polort 2 -prefix functional_detrend functional.nii' >>> res = detrend.run() # doctest: +SKIP @@ -1265,7 +1265,7 @@ class ECM(AFNICommand): >>> ecm.inputs.mask = 'mask.nii' >>> ecm.inputs.sparsity = 0.1 # keep top 0.1% of connections >>> ecm.inputs.out_file = 'out.nii' - >>> ecm.cmdline # doctest: +ALLOW_UNICODE + >>> ecm.cmdline '3dECM -mask mask.nii -prefix out.nii -sparsity 0.100000 functional.nii' >>> res = ecm.run() # doctest: +SKIP @@ -1322,7 +1322,7 @@ class Fim(AFNICommand): >>> fim.inputs.out_file = 'functional_corr.nii' >>> fim.inputs.out = 'Correlation' >>> fim.inputs.fim_thr = 0.0009 - >>> fim.cmdline # doctest: +ALLOW_UNICODE + >>> fim.cmdline '3dfim+ -input functional.nii -ideal_file seed.1D -fim_thr 0.000900 -out Correlation -bucket functional_corr.nii' >>> res = fim.run() # doctest: +SKIP @@ -1376,7 +1376,7 @@ class Fourier(AFNICommand): >>> fourier.inputs.retrend = True >>> fourier.inputs.highpass = 0.005 >>> fourier.inputs.lowpass = 0.1 - >>> fourier.cmdline # doctest: +ALLOW_UNICODE + >>> fourier.cmdline '3dFourier -highpass 0.005000 -lowpass 0.100000 -prefix functional_fourier -retrend functional.nii' >>> res = fourier.run() # doctest: +SKIP @@ -1449,7 +1449,7 @@ class Hist(AFNICommandBase): >>> from nipype.interfaces import afni >>> hist = afni.Hist() >>> hist.inputs.in_file = 'functional.nii' - >>> hist.cmdline # doctest: +ALLOW_UNICODE + >>> hist.cmdline '3dHist -input functional.nii -prefix functional_hist' >>> res = hist.run() # doctest: +SKIP @@ -1513,7 +1513,7 @@ class LFCD(AFNICommand): >>> lfcd.inputs.mask = 'mask.nii' >>> lfcd.inputs.thresh = 0.8 # keep all connections with corr >= 0.8 >>> lfcd.inputs.out_file = 'out.nii' - >>> lfcd.cmdline # doctest: +ALLOW_UNICODE + >>> lfcd.cmdline '3dLFCD -mask mask.nii -prefix out.nii -thresh 0.800000 functional.nii' >>> res = lfcd.run() # doctest: +SKIP """ @@ -1564,7 +1564,7 @@ class Maskave(AFNICommand): >>> maskave.inputs.in_file = 'functional.nii' >>> maskave.inputs.mask= 'seed_mask.nii' >>> maskave.inputs.quiet= True - >>> maskave.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> maskave.cmdline # doctest: +ELLIPSIS '3dmaskave -mask seed_mask.nii -quiet functional.nii > functional_maskave.1D' >>> res = maskave.run() # doctest: +SKIP @@ -1635,7 +1635,7 @@ class Means(AFNICommand): >>> means.inputs.in_file_a = 'im1.nii' >>> means.inputs.in_file_b = 'im2.nii' >>> means.inputs.out_file = 'output.nii' - >>> means.cmdline # doctest: +ALLOW_UNICODE + >>> means.cmdline '3dMean -prefix output.nii im1.nii im2.nii' >>> res = means.run() # doctest: +SKIP @@ -1644,7 +1644,7 @@ class Means(AFNICommand): >>> means.inputs.in_file_a = 'im1.nii' >>> means.inputs.out_file = 'output.nii' >>> means.inputs.datum = 'short' - >>> means.cmdline # doctest: +ALLOW_UNICODE + >>> means.cmdline '3dMean -datum short -prefix output.nii im1.nii' >>> res = means.run() # doctest: +SKIP @@ -1742,7 +1742,7 @@ class OutlierCount(CommandLine): >>> from nipype.interfaces import afni >>> toutcount = afni.OutlierCount() >>> toutcount.inputs.in_file = 'functional.nii' - >>> toutcount.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> toutcount.cmdline # doctest: +ELLIPSIS '3dToutcount functional.nii' >>> res = toutcount.run() # doctest: +SKIP @@ -1855,7 +1855,7 @@ class QualityIndex(CommandLine): >>> from nipype.interfaces import afni >>> tqual = afni.QualityIndex() >>> tqual.inputs.in_file = 'functional.nii' - >>> tqual.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> tqual.cmdline # doctest: +ELLIPSIS '3dTqual functional.nii > functional_tqual' >>> res = tqual.run() # doctest: +SKIP @@ -1912,7 +1912,7 @@ class ROIStats(AFNICommandBase): >>> roistats.inputs.in_file = 'functional.nii' >>> roistats.inputs.mask = 'skeleton_mask.nii.gz' >>> roistats.inputs.quiet = True - >>> roistats.cmdline # doctest: +ALLOW_UNICODE + >>> roistats.cmdline '3dROIstats -quiet -mask skeleton_mask.nii.gz functional.nii' >>> res = roistats.run() # doctest: +SKIP @@ -2007,7 +2007,7 @@ class Retroicor(AFNICommand): >>> ret.inputs.card = 'mask.1D' >>> ret.inputs.resp = 'resp.1D' >>> ret.inputs.outputtype = 'NIFTI' - >>> ret.cmdline # doctest: +ALLOW_UNICODE + >>> ret.cmdline '3dretroicor -prefix functional_retroicor.nii -resp resp.1D -card mask.1D functional.nii' >>> res = ret.run() # doctest: +SKIP @@ -2090,7 +2090,7 @@ class Seg(AFNICommandBase): >>> seg = preprocess.Seg() >>> seg.inputs.in_file = 'structural.nii' >>> seg.inputs.mask = 'AUTO' - >>> seg.cmdline # doctest: +ALLOW_UNICODE + >>> seg.cmdline '3dSeg -mask AUTO -anat structural.nii' >>> res = seg.run() # doctest: +SKIP @@ -2146,7 +2146,7 @@ class SkullStrip(AFNICommand): >>> skullstrip = afni.SkullStrip() >>> skullstrip.inputs.in_file = 'functional.nii' >>> skullstrip.inputs.args = '-o_ply' - >>> skullstrip.cmdline # doctest: +ALLOW_UNICODE + >>> skullstrip.cmdline '3dSkullStrip -input functional.nii -o_ply -prefix functional_skullstrip' >>> res = skullstrip.run() # doctest: +SKIP @@ -2225,7 +2225,7 @@ class TCorr1D(AFNICommand): >>> tcorr1D = afni.TCorr1D() >>> tcorr1D.inputs.xset= 'u_rc1s1_Template.nii' >>> tcorr1D.inputs.y_1d = 'seed.1D' - >>> tcorr1D.cmdline # doctest: +ALLOW_UNICODE + >>> tcorr1D.cmdline '3dTcorr1D -prefix u_rc1s1_Template_correlation.nii.gz u_rc1s1_Template.nii seed.1D' >>> res = tcorr1D.run() # doctest: +SKIP @@ -2367,7 +2367,7 @@ class TCorrMap(AFNICommand): >>> tcm.inputs.in_file = 'functional.nii' >>> tcm.inputs.mask = 'mask.nii' >>> tcm.mean_file = 'functional_meancorr.nii' - >>> tcm.cmdline # doctest: +ALLOW_UNICODE +SKIP + >>> tcm.cmdline # doctest: +SKIP '3dTcorrMap -input functional.nii -mask mask.nii -Mean functional_meancorr.nii' >>> res = tcm.run() # doctest: +SKIP @@ -2435,7 +2435,7 @@ class TCorrelate(AFNICommand): >>> tcorrelate.inputs.out_file = 'functional_tcorrelate.nii.gz' >>> tcorrelate.inputs.polort = -1 >>> tcorrelate.inputs.pearson = True - >>> tcorrelate.cmdline # doctest: +ALLOW_UNICODE + >>> tcorrelate.cmdline '3dTcorrelate -prefix functional_tcorrelate.nii.gz -pearson -polort -1 u_rc1s1_Template.nii u_rc1s2_Template.nii' >>> res = tcarrelate.run() # doctest: +SKIP @@ -2497,7 +2497,7 @@ class TNorm(AFNICommand): >>> tnorm.inputs.in_file = 'functional.nii' >>> tnorm.inputs.norm2 = True >>> tnorm.inputs.out_file = 'rm.errts.unit errts+tlrc' - >>> tnorm.cmdline # doctest: +ALLOW_UNICODE + >>> tnorm.cmdline '3dTnorm -norm2 -prefix rm.errts.unit errts+tlrc functional.nii' >>> res = tshift.run() # doctest: +SKIP @@ -2567,7 +2567,7 @@ class TShift(AFNICommand): >>> tshift.inputs.in_file = 'functional.nii' >>> tshift.inputs.tpattern = 'alt+z' >>> tshift.inputs.tzero = 0.0 - >>> tshift.cmdline # doctest: +ALLOW_UNICODE + >>> tshift.cmdline '3dTshift -prefix functional_tshift -tpattern alt+z -tzero 0.0 functional.nii' >>> res = tshift.run() # doctest: +SKIP @@ -2663,7 +2663,7 @@ class Volreg(AFNICommand): >>> volreg.inputs.args = '-Fourier -twopass' >>> volreg.inputs.zpad = 4 >>> volreg.inputs.outputtype = 'NIFTI' - >>> volreg.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> volreg.cmdline # doctest: +ELLIPSIS '3dvolreg -Fourier -twopass -1Dfile functional.1D -1Dmatrix_save functional.aff12.1D -prefix functional_volreg.nii -zpad 4 -maxdisp1D functional_md.1D functional.nii' >>> res = volreg.run() # doctest: +SKIP @@ -2677,7 +2677,7 @@ class Volreg(AFNICommand): >>> volreg.inputs.out_file = 'rm.epi.volreg.r1' >>> volreg.inputs.oned_file = 'dfile.r1.1D' >>> volreg.inputs.oned_matrix_save = 'mat.r1.tshift+orig.1D' - >>> volreg.cmdline # doctest: +ALLOW_UNICODE + >>> volreg.cmdline '3dvolreg -cubic -1Dfile dfile.r1.1D -1Dmatrix_save mat.r1.tshift+orig.1D -prefix rm.epi.volreg.r1 -verbose -base functional.nii -zpad 1 -maxdisp1D functional_md.1D functional.nii' >>> res = volreg.run() # doctest: +SKIP @@ -2752,7 +2752,7 @@ class Warp(AFNICommand): >>> warp.inputs.in_file = 'structural.nii' >>> warp.inputs.deoblique = True >>> warp.inputs.out_file = 'trans.nii.gz' - >>> warp.cmdline # doctest: +ALLOW_UNICODE + >>> warp.cmdline '3dWarp -deoblique -prefix trans.nii.gz structural.nii' >>> res = warp.run() # doctest: +SKIP @@ -2760,7 +2760,7 @@ class Warp(AFNICommand): >>> warp_2.inputs.in_file = 'structural.nii' >>> warp_2.inputs.newgrid = 1.0 >>> warp_2.inputs.out_file = 'trans.nii.gz' - >>> warp_2.cmdline # doctest: +ALLOW_UNICODE + >>> warp_2.cmdline '3dWarp -newgrid 1.000000 -prefix trans.nii.gz structural.nii' >>> res = warp_2.run() # doctest: +SKIP @@ -2854,7 +2854,7 @@ class QwarpPlusMinus(CommandLine): >>> qwarp.inputs.source_file = 'sub-01_dir-LR_epi.nii.gz' >>> qwarp.inputs.nopadWARP = True >>> qwarp.inputs.base_file = 'sub-01_dir-RL_epi.nii.gz' - >>> qwarp.cmdline # doctest: +ALLOW_UNICODE + >>> qwarp.cmdline '3dQwarp -prefix Qwarp.nii.gz -plusminus -base sub-01_dir-RL_epi.nii.gz -nopadWARP -source sub-01_dir-LR_epi.nii.gz' >>> res = warp.run() # doctest: +SKIP @@ -3426,7 +3426,7 @@ class Qwarp(AFNICommand): >>> qwarp.inputs.nopadWARP = True >>> qwarp.inputs.base_file = 'sub-01_dir-RL_epi.nii.gz' >>> qwarp.inputs.plusminus = True - >>> qwarp.cmdline # doctest: +ALLOW_UNICODE + >>> qwarp.cmdline '3dQwarp -base sub-01_dir-RL_epi.nii.gz -source sub-01_dir-LR_epi.nii.gz -nopadWARP -prefix sub-01_dir-LR_epi_QW -plusminus' >>> res = qwarp.run() # doctest: +SKIP @@ -3435,7 +3435,7 @@ class Qwarp(AFNICommand): >>> qwarp.inputs.in_file = 'structural.nii' >>> qwarp.inputs.base_file = 'mni.nii' >>> qwarp.inputs.resample = True - >>> qwarp.cmdline # doctest: +ALLOW_UNICODE + >>> qwarp.cmdline '3dQwarp -base mni.nii -source structural.nii -prefix structural_QW -resample' >>> res = qwarp.run() # doctest: +SKIP @@ -3449,7 +3449,7 @@ class Qwarp(AFNICommand): >>> qwarp.inputs.verb = True >>> qwarp.inputs.iwarp = True >>> qwarp.inputs.blur = [0,3] - >>> qwarp.cmdline # doctest: +ALLOW_UNICODE + >>> qwarp.cmdline '3dQwarp -base epi.nii -blur 0.0 3.0 -source structural.nii -iwarp -prefix anatSSQ.nii.gz -resample -verb -lpc' >>> res = qwarp.run() # doctest: +SKIP @@ -3459,7 +3459,7 @@ class Qwarp(AFNICommand): >>> qwarp.inputs.base_file = 'mni.nii' >>> qwarp.inputs.duplo = True >>> qwarp.inputs.blur = [0,3] - >>> qwarp.cmdline # doctest: +ALLOW_UNICODE + >>> qwarp.cmdline '3dQwarp -base mni.nii -blur 0.0 3.0 -duplo -source structural.nii -prefix structural_QW' >>> res = qwarp.run() # doctest: +SKIP @@ -3471,7 +3471,7 @@ class Qwarp(AFNICommand): >>> qwarp.inputs.minpatch = 25 >>> qwarp.inputs.blur = [0,3] >>> qwarp.inputs.out_file = 'Q25' - >>> qwarp.cmdline # doctest: +ALLOW_UNICODE + >>> qwarp.cmdline '3dQwarp -base mni.nii -blur 0.0 3.0 -duplo -source structural.nii -minpatch 25 -prefix Q25' >>> res = qwarp.run() # doctest: +SKIP >>> qwarp2 = afni.Qwarp() @@ -3481,7 +3481,7 @@ class Qwarp(AFNICommand): >>> qwarp2.inputs.out_file = 'Q11' >>> qwarp2.inputs.inilev = 7 >>> qwarp2.inputs.iniwarp = ['Q25_warp+tlrc.HEAD'] - >>> qwarp2.cmdline # doctest: +ALLOW_UNICODE + >>> qwarp2.cmdline '3dQwarp -base mni.nii -blur 0.0 2.0 -source structural.nii -inilev 7 -iniwarp Q25_warp+tlrc.HEAD -prefix Q11' >>> res2 = qwarp2.run() # doctest: +SKIP >>> res2 = qwarp2.run() # doctest: +SKIP diff --git a/nipype/interfaces/afni/utils.py b/nipype/interfaces/afni/utils.py index 8245578780..4c1da45b50 100644 --- a/nipype/interfaces/afni/utils.py +++ b/nipype/interfaces/afni/utils.py @@ -74,7 +74,7 @@ class ABoverlap(AFNICommand): >>> aboverlap.inputs.in_file_a = 'functional.nii' >>> aboverlap.inputs.in_file_b = 'structural.nii' >>> aboverlap.inputs.out_file = 'out.mask_ae_overlap.txt' - >>> aboverlap.cmdline # doctest: +ALLOW_UNICODE + >>> aboverlap.cmdline '3dABoverlap functional.nii structural.nii |& tee out.mask_ae_overlap.txt' >>> res = aboverlap.run() # doctest: +SKIP @@ -139,7 +139,7 @@ class AFNItoNIFTI(AFNICommand): >>> a2n = afni.AFNItoNIFTI() >>> a2n.inputs.in_file = 'afni_output.3D' >>> a2n.inputs.out_file = 'afni_output.nii' - >>> a2n.cmdline # doctest: +ALLOW_UNICODE + >>> a2n.cmdline '3dAFNItoNIFTI -prefix afni_output.nii afni_output.3D' >>> res = a2n.run() # doctest: +SKIP @@ -207,7 +207,7 @@ class Autobox(AFNICommand): >>> abox = afni.Autobox() >>> abox.inputs.in_file = 'structural.nii' >>> abox.inputs.padding = 5 - >>> abox.cmdline # doctest: +ALLOW_UNICODE + >>> abox.cmdline '3dAutobox -input structural.nii -prefix structural_autobox -npad 5' >>> res = abox.run() # doctest: +SKIP @@ -288,7 +288,7 @@ class BrickStat(AFNICommandBase): >>> brickstat.inputs.in_file = 'functional.nii' >>> brickstat.inputs.mask = 'skeleton_mask.nii.gz' >>> brickstat.inputs.min = True - >>> brickstat.cmdline # doctest: +ALLOW_UNICODE + >>> brickstat.cmdline '3dBrickStat -min -mask skeleton_mask.nii.gz functional.nii' >>> res = brickstat.run() # doctest: +SKIP @@ -395,7 +395,7 @@ class Bucket(AFNICommand): >>> bucket = afni.Bucket() >>> bucket.inputs.in_file = [('functional.nii',"{2..$}"), ('functional.nii',"{1}")] >>> bucket.inputs.out_file = 'vr_base' - >>> bucket.cmdline # doctest: +ALLOW_UNICODE + >>> bucket.cmdline "3dbucket -prefix vr_base functional.nii'{2..$}' functional.nii'{1}'" >>> res = bucket.run() # doctest: +SKIP @@ -469,7 +469,7 @@ class Calc(AFNICommand): >>> calc.inputs.expr='a*b' >>> calc.inputs.out_file = 'functional_calc.nii.gz' >>> calc.inputs.outputtype = 'NIFTI' - >>> calc.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> calc.cmdline # doctest: +ELLIPSIS '3dcalc -a functional.nii -b functional2.nii -expr "a*b" -prefix functional_calc.nii.gz' >>> res = calc.run() # doctest: +SKIP @@ -479,7 +479,7 @@ class Calc(AFNICommand): >>> calc.inputs.expr = '1' >>> calc.inputs.out_file = 'rm.epi.all1' >>> calc.inputs.overwrite = True - >>> calc.cmdline # doctest: +ALLOW_UNICODE + >>> calc.cmdline '3dcalc -a functional.nii -expr "1" -prefix rm.epi.all1 -overwrite' >>> res = calc.run() # doctest: +SKIP @@ -574,7 +574,7 @@ class Cat(AFNICommand): >>> cat1d.inputs.sel = "'[0,2]'" >>> cat1d.inputs.in_files = ['f1.1D', 'f2.1D'] >>> cat1d.inputs.out_file = 'catout.1d' - >>> cat1d.cmdline # doctest: +ALLOW_UNICODE + >>> cat1d.cmdline "1dcat -sel '[0,2]' f1.1D f2.1D > catout.1d" >>> res = cat1d.run() # doctest: +SKIP @@ -627,7 +627,7 @@ class CatMatvec(AFNICommand): >>> cmv = afni.CatMatvec() >>> cmv.inputs.in_file = [('structural.BRIK::WARP_DATA','I')] >>> cmv.inputs.out_file = 'warp.anat.Xat.1D' - >>> cmv.cmdline # doctest: +ALLOW_UNICODE + >>> cmv.cmdline 'cat_matvec structural.BRIK::WARP_DATA -I > warp.anat.Xat.1D' >>> res = cmv.run() # doctest: +SKIP @@ -719,7 +719,7 @@ class CenterMass(AFNICommandBase): >>> cm.inputs.in_file = 'structural.nii' >>> cm.inputs.cm_file = 'cm.txt' >>> cm.inputs.roi_vals = [2, 10] - >>> cm.cmdline # doctest: +ALLOW_UNICODE + >>> cm.cmdline '3dCM -roi_vals 2 10 structural.nii > cm.txt' >>> res = 3dcm.run() # doctest: +SKIP """ @@ -766,26 +766,26 @@ class Copy(AFNICommand): >>> from nipype.interfaces import afni >>> copy3d = afni.Copy() >>> copy3d.inputs.in_file = 'functional.nii' - >>> copy3d.cmdline # doctest: +ALLOW_UNICODE + >>> copy3d.cmdline '3dcopy functional.nii functional_copy' >>> res = copy3d.run() # doctest: +SKIP >>> from copy import deepcopy >>> copy3d_2 = deepcopy(copy3d) >>> copy3d_2.inputs.outputtype = 'NIFTI' - >>> copy3d_2.cmdline # doctest: +ALLOW_UNICODE + >>> copy3d_2.cmdline '3dcopy functional.nii functional_copy.nii' >>> res = copy3d_2.run() # doctest: +SKIP >>> copy3d_3 = deepcopy(copy3d) >>> copy3d_3.inputs.outputtype = 'NIFTI_GZ' - >>> copy3d_3.cmdline # doctest: +ALLOW_UNICODE + >>> copy3d_3.cmdline '3dcopy functional.nii functional_copy.nii.gz' >>> res = copy3d_3.run() # doctest: +SKIP >>> copy3d_4 = deepcopy(copy3d) >>> copy3d_4.inputs.out_file = 'new_func.nii' - >>> copy3d_4.cmdline # doctest: +ALLOW_UNICODE + >>> copy3d_4.cmdline '3dcopy functional.nii new_func.nii' >>> res = copy3d_4.run() # doctest: +SKIP @@ -857,7 +857,7 @@ class Dot(AFNICommand): >>> dot.inputs.in_files = ['functional.nii[0]', 'structural.nii'] >>> dot.inputs.dodice = True >>> dot.inputs.out_file = 'out.mask_ae_dice.txt' - >>> dot.cmdline # doctest: +ALLOW_UNICODE + >>> dot.cmdline '3dDot -dodice functional.nii[0] structural.nii |& tee out.mask_ae_dice.txt' >>> res = copy3d.run() # doctest: +SKIP @@ -948,7 +948,7 @@ class Edge3(AFNICommand): >>> edge3.inputs.in_file = 'functional.nii' >>> edge3.inputs.out_file = 'edges.nii' >>> edge3.inputs.datum = 'byte' - >>> edge3.cmdline # doctest: +ALLOW_UNICODE + >>> edge3.cmdline '3dedge3 -input functional.nii -datum byte -prefix edges.nii' >>> res = edge3.run() # doctest: +SKIP @@ -1019,7 +1019,7 @@ class Eval(AFNICommand): >>> eval.inputs.expr = 'a*b' >>> eval.inputs.out1D = True >>> eval.inputs.out_file = 'data_calc.1D' - >>> eval.cmdline # doctest: +ALLOW_UNICODE + >>> eval.cmdline '1deval -a seed.1D -b resp.1D -expr "a*b" -1D -prefix data_calc.1D' >>> res = eval.run() # doctest: +SKIP @@ -1170,7 +1170,7 @@ class FWHMx(AFNICommandBase): >>> from nipype.interfaces import afni >>> fwhm = afni.FWHMx() >>> fwhm.inputs.in_file = 'functional.nii' - >>> fwhm.cmdline # doctest: +ALLOW_UNICODE + >>> fwhm.cmdline '3dFWHMx -input functional.nii -out functional_subbricks.out > functional_fwhmx.out' >>> res = fwhm.run() # doctest: +SKIP @@ -1397,7 +1397,7 @@ class MaskTool(AFNICommand): >>> masktool = afni.MaskTool() >>> masktool.inputs.in_file = 'functional.nii' >>> masktool.inputs.outputtype = 'NIFTI' - >>> masktool.cmdline # doctest: +ALLOW_UNICODE + >>> masktool.cmdline '3dmask_tool -prefix functional_mask.nii -input functional.nii' >>> res = automask.run() # doctest: +SKIP @@ -1446,7 +1446,7 @@ class Merge(AFNICommand): >>> merge.inputs.blurfwhm = 4 >>> merge.inputs.doall = True >>> merge.inputs.out_file = 'e7.nii' - >>> merge.cmdline # doctest: +ALLOW_UNICODE + >>> merge.cmdline '3dmerge -1blur_fwhm 4 -doall -prefix e7.nii functional.nii functional2.nii' >>> res = merge.run() # doctest: +SKIP @@ -1501,7 +1501,7 @@ class Notes(CommandLine): >>> notes.inputs.in_file = 'functional.HEAD' >>> notes.inputs.add = 'This note is added.' >>> notes.inputs.add_history = 'This note is added to history.' - >>> notes.cmdline # doctest: +ALLOW_UNICODE + >>> notes.cmdline '3dNotes -a "This note is added." -h "This note is added to history." functional.HEAD' >>> res = notes.run() # doctest: +SKIP """ @@ -1579,7 +1579,7 @@ class NwarpApply(AFNICommandBase): >>> nwarp.inputs.in_file = 'Fred+orig' >>> nwarp.inputs.master = 'NWARP' >>> nwarp.inputs.warp = "'Fred_WARP+tlrc Fred.Xaff12.1D'" - >>> nwarp.cmdline # doctest: +ALLOW_UNICODE + >>> nwarp.cmdline "3dNwarpApply -source Fred+orig -master NWARP -prefix Fred+orig_Nwarp -nwarp \'Fred_WARP+tlrc Fred.Xaff12.1D\'" >>> res = nwarp.run() # doctest: +SKIP @@ -1766,7 +1766,7 @@ class OneDToolPy(AFNIPythonCommand): >>> odt.inputs.set_nruns = 3 >>> odt.inputs.demean = True >>> odt.inputs.out_file = 'motion_dmean.1D' - >>> odt.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS + >>> odt.cmdline # doctest: +ELLIPSIS 'python2 ...1d_tool.py -demean -infile f1.1D -write motion_dmean.1D -set_nruns 3' >>> res = odt.run() # doctest: +SKIP """ @@ -1881,14 +1881,14 @@ class Refit(AFNICommandBase): >>> refit = afni.Refit() >>> refit.inputs.in_file = 'structural.nii' >>> refit.inputs.deoblique = True - >>> refit.cmdline # doctest: +ALLOW_UNICODE + >>> refit.cmdline '3drefit -deoblique structural.nii' >>> res = refit.run() # doctest: +SKIP >>> refit_2 = afni.Refit() >>> refit_2.inputs.in_file = 'structural.nii' >>> refit_2.inputs.atrfloat = ("IJK_TO_DICOM_REAL", "'1 0.2 0 0 -0.2 1 0 0 0 0 1 0'") - >>> refit_2.cmdline # doctest: +ALLOW_UNICODE + >>> refit_2.cmdline "3drefit -atrfloat IJK_TO_DICOM_REAL '1 0.2 0 0 -0.2 1 0 0 0 0 1 0' structural.nii" >>> res = refit_2.run() # doctest: +SKIP """ @@ -1948,7 +1948,7 @@ class Resample(AFNICommand): >>> resample.inputs.in_file = 'functional.nii' >>> resample.inputs.orientation= 'RPI' >>> resample.inputs.outputtype = 'NIFTI' - >>> resample.cmdline # doctest: +ALLOW_UNICODE + >>> resample.cmdline '3dresample -orient RPI -prefix functional_resample.nii -inset functional.nii' >>> res = resample.run() # doctest: +SKIP @@ -2001,7 +2001,7 @@ class TCat(AFNICommand): >>> tcat.inputs.in_files = ['functional.nii', 'functional2.nii'] >>> tcat.inputs.out_file= 'functional_tcat.nii' >>> tcat.inputs.rlt = '+' - >>> tcat.cmdline # doctest: +ALLOW_UNICODE +NORMALIZE_WHITESPACE + >>> tcat.cmdline '3dTcat -rlt+ -prefix functional_tcat.nii functional.nii functional2.nii' >>> res = tcat.run() # doctest: +SKIP @@ -2051,7 +2051,7 @@ class TCatSubBrick(AFNICommand): >>> tcsb.inputs.in_files = [('functional.nii', "'{2..$}'"), ('functional2.nii', "'{2..$}'")] >>> tcsb.inputs.out_file= 'functional_tcat.nii' >>> tcsb.inputs.rlt = '+' - >>> tcsb.cmdline # doctest: +ALLOW_UNICODE +NORMALIZE_WHITESPACE + >>> tcsb.cmdline "3dTcat -rlt+ -prefix functional_tcat.nii functional.nii'{2..$}' functional2.nii'{2..$}' " >>> res = tcsb.run() # doctest: +SKIP @@ -2102,7 +2102,7 @@ class TStat(AFNICommand): >>> tstat.inputs.in_file = 'functional.nii' >>> tstat.inputs.args = '-mean' >>> tstat.inputs.out_file = 'stats' - >>> tstat.cmdline # doctest: +ALLOW_UNICODE + >>> tstat.cmdline '3dTstat -mean -prefix stats functional.nii' >>> res = tstat.run() # doctest: +SKIP @@ -2164,7 +2164,7 @@ class To3D(AFNICommand): >>> to3d.inputs.in_folder = '.' >>> to3d.inputs.out_file = 'dicomdir.nii' >>> to3d.inputs.filetype = 'anat' - >>> to3d.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> to3d.cmdline # doctest: +ELLIPSIS 'to3d -datum float -anat -prefix dicomdir.nii ./*.dcm' >>> res = to3d.run() # doctest: +SKIP @@ -2268,7 +2268,7 @@ class Undump(AFNICommand): >>> unndump = afni.Undump() >>> unndump.inputs.in_file = 'structural.nii' >>> unndump.inputs.out_file = 'structural_undumped.nii' - >>> unndump.cmdline # doctest: +ALLOW_UNICODE + >>> unndump.cmdline '3dUndump -prefix structural_undumped.nii -master structural.nii' >>> res = unndump.run() # doctest: +SKIP @@ -2371,7 +2371,7 @@ class Unifize(AFNICommand): >>> unifize = afni.Unifize() >>> unifize.inputs.in_file = 'structural.nii' >>> unifize.inputs.out_file = 'structural_unifized.nii' - >>> unifize.cmdline # doctest: +ALLOW_UNICODE + >>> unifize.cmdline '3dUnifize -prefix structural_unifized.nii -input structural.nii' >>> res = unifize.run() # doctest: +SKIP @@ -2414,7 +2414,7 @@ class ZCutUp(AFNICommand): >>> zcutup.inputs.in_file = 'functional.nii' >>> zcutup.inputs.out_file = 'functional_zcutup.nii' >>> zcutup.inputs.keep= '0 10' - >>> zcutup.cmdline # doctest: +ALLOW_UNICODE + >>> zcutup.cmdline '3dZcutup -keep 0 10 -prefix functional_zcutup.nii functional.nii' >>> res = zcutup.run() # doctest: +SKIP @@ -2466,7 +2466,7 @@ class GCOR(CommandLine): >>> gcor = afni.GCOR() >>> gcor.inputs.in_file = 'structural.nii' >>> gcor.inputs.nfirst = 4 - >>> gcor.cmdline # doctest: +ALLOW_UNICODE + >>> gcor.cmdline '@compute_gcor -nfirst 4 -input structural.nii' >>> res = gcor.run() # doctest: +SKIP @@ -2538,7 +2538,7 @@ class Axialize(AFNICommand): >>> axial3d = afni.Axialize() >>> axial3d.inputs.in_file = 'functional.nii' >>> axial3d.inputs.out_file = 'axialized.nii' - >>> axial3d.cmdline # doctest: +ALLOW_UNICODE + >>> axial3d.cmdline '3daxialize -prefix axialized.nii functional.nii' >>> res = axial3d.run() # doctest: +SKIP @@ -2600,7 +2600,7 @@ class Zcat(AFNICommand): >>> zcat = afni.Zcat() >>> zcat.inputs.in_files = ['functional2.nii', 'functional3.nii'] >>> zcat.inputs.out_file = 'cat_functional.nii' - >>> zcat.cmdline # doctest: +ALLOW_UNICODE + >>> zcat.cmdline '3dZcat -prefix cat_functional.nii functional2.nii functional3.nii' >>> res = zcat.run() # doctest: +SKIP """ @@ -2702,7 +2702,7 @@ class Zeropad(AFNICommand): >>> zeropad.inputs.P = 10 >>> zeropad.inputs.R = 10 >>> zeropad.inputs.L = 10 - >>> zeropad.cmdline # doctest: +ALLOW_UNICODE + >>> zeropad.cmdline '3dZeropad -A 10 -I 10 -L 10 -P 10 -R 10 -S 10 -prefix pad_functional.nii functional.nii' >>> res = zeropad.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/ants/legacy.py b/nipype/interfaces/ants/legacy.py index f545f3ed08..7df1731fa1 100644 --- a/nipype/interfaces/ants/legacy.py +++ b/nipype/interfaces/ants/legacy.py @@ -86,7 +86,7 @@ class antsIntroduction(ANTSCommand): >>> warp.inputs.reference_image = 'Template_6.nii' >>> warp.inputs.input_image = 'structural.nii' >>> warp.inputs.max_iterations = [30,90,20] - >>> warp.cmdline # doctest: +ALLOW_UNICODE + >>> warp.cmdline 'antsIntroduction.sh -d 3 -i structural.nii -m 30x90x20 -o ants_ -r Template_6.nii -t GR' """ @@ -204,7 +204,7 @@ class buildtemplateparallel(ANTSCommand): >>> tmpl = buildtemplateparallel() >>> tmpl.inputs.in_files = ['T1.nii', 'structural.nii'] >>> tmpl.inputs.max_iterations = [30, 90, 20] - >>> tmpl.cmdline # doctest: +ALLOW_UNICODE + >>> tmpl.cmdline 'buildtemplateparallel.sh -d 3 -i 4 -m 30x90x20 -o antsTMPL_ -c 0 -t GR T1.nii structural.nii' """ diff --git a/nipype/interfaces/ants/registration.py b/nipype/interfaces/ants/registration.py index 0b0e8f581e..c166bec792 100644 --- a/nipype/interfaces/ants/registration.py +++ b/nipype/interfaces/ants/registration.py @@ -119,7 +119,7 @@ class ANTS(ANTSCommand): >>> ants.inputs.regularization_gradient_field_sigma = 3 >>> ants.inputs.regularization_deformation_field_sigma = 0 >>> ants.inputs.number_of_affine_iterations = [10000,10000,10000,10000,10000] - >>> ants.cmdline # doctest: +ALLOW_UNICODE + >>> ants.cmdline 'ANTS 3 --MI-option 32x16000 --image-metric CC[ T1.nii, resting.nii, 1, 5 ] --number-of-affine-iterations \ 10000x10000x10000x10000x10000 --number-of-iterations 50x35x15 --output-naming MY --regularization Gauss[3.0,0.0] \ --transformation-model SyN[0.25] --use-Histogram-Matching 1' @@ -517,7 +517,7 @@ class Registration(ANTSCommand): >>> reg.inputs.use_estimate_learning_rate_once = [True, True] >>> reg.inputs.use_histogram_matching = [True, True] # This is the default >>> reg.inputs.output_warped_image = 'output_warped_image.nii.gz' - >>> reg.cmdline # doctest: +ALLOW_UNICODE + >>> reg.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 0 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -533,7 +533,7 @@ class Registration(ANTSCommand): >>> reg.inputs.invert_initial_moving_transform = True >>> reg1 = copy.deepcopy(reg) >>> reg1.inputs.winsorize_lower_quantile = 0.025 - >>> reg1.cmdline # doctest: +ALLOW_UNICODE + >>> reg1.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -549,7 +549,7 @@ class Registration(ANTSCommand): >>> reg2 = copy.deepcopy(reg) >>> reg2.inputs.winsorize_upper_quantile = 0.975 - >>> reg2.cmdline # doctest: +ALLOW_UNICODE + >>> reg2.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -566,7 +566,7 @@ class Registration(ANTSCommand): >>> reg3 = copy.deepcopy(reg) >>> reg3.inputs.winsorize_lower_quantile = 0.025 >>> reg3.inputs.winsorize_upper_quantile = 0.975 - >>> reg3.cmdline # doctest: +ALLOW_UNICODE + >>> reg3.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -580,7 +580,7 @@ class Registration(ANTSCommand): >>> reg3a = copy.deepcopy(reg) >>> reg3a.inputs.float = True - >>> reg3a.cmdline # doctest: +ALLOW_UNICODE + >>> reg3a.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --float 1 \ --initial-moving-transform [ trans.mat, 1 ] --initialize-transforms-per-stage 0 --interpolation Linear \ --output [ output_, output_warped_image.nii.gz ] --transform Affine[ 2.0 ] \ @@ -595,7 +595,7 @@ class Registration(ANTSCommand): >>> reg3b = copy.deepcopy(reg) >>> reg3b.inputs.float = False - >>> reg3b.cmdline # doctest: +ALLOW_UNICODE + >>> reg3b.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --float 0 \ --initial-moving-transform [ trans.mat, 1 ] --initialize-transforms-per-stage 0 --interpolation Linear \ --output [ output_, output_warped_image.nii.gz ] --transform Affine[ 2.0 ] \ @@ -616,7 +616,7 @@ class Registration(ANTSCommand): >>> reg4.inputs.initialize_transforms_per_stage = True >>> reg4.inputs.collapse_output_transforms = True >>> outputs = reg4._list_outputs() - >>> pprint.pprint(outputs) # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE +ALLOW_UNICODE + >>> pprint.pprint(outputs) # doctest: +ELLIPSIS, {'composite_transform': '.../nipype/testing/data/output_Composite.h5', 'elapsed_time': , 'forward_invert_flags': [], @@ -628,7 +628,7 @@ class Registration(ANTSCommand): 'reverse_transforms': [], 'save_state': '.../nipype/testing/data/trans.mat', 'warped_image': '.../nipype/testing/data/output_warped_image.nii.gz'} - >>> reg4.cmdline # doctest: +ALLOW_UNICODE + >>> reg4.cmdline 'antsRegistration --collapse-output-transforms 1 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 1 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --restore-state trans.mat --save-state trans.mat --transform Affine[ 2.0 ] \ @@ -644,7 +644,7 @@ class Registration(ANTSCommand): >>> reg4b = copy.deepcopy(reg4) >>> reg4b.inputs.write_composite_transform = False >>> outputs = reg4b._list_outputs() - >>> pprint.pprint(outputs) # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE +ALLOW_UNICODE + >>> pprint.pprint(outputs) # doctest: +ELLIPSIS, {'composite_transform': , 'elapsed_time': , 'forward_invert_flags': [False, False], @@ -659,7 +659,7 @@ class Registration(ANTSCommand): 'save_state': '.../nipype/testing/data/trans.mat', 'warped_image': '.../nipype/testing/data/output_warped_image.nii.gz'} >>> reg4b.aggregate_outputs() # doctest: +SKIP - >>> reg4b.cmdline # doctest: +ALLOW_UNICODE + >>> reg4b.cmdline 'antsRegistration --collapse-output-transforms 1 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 1 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --restore-state trans.mat --save-state trans.mat --transform Affine[ 2.0 ] \ @@ -687,7 +687,7 @@ class Registration(ANTSCommand): >>> reg5.inputs.radius_or_number_of_bins = [32, [32, 4] ] >>> reg5.inputs.sampling_strategy = ['Random', None] # use default strategy in second stage >>> reg5.inputs.sampling_percentage = [0.05, [0.05, 0.10]] - >>> reg5.cmdline # doctest: +ALLOW_UNICODE + >>> reg5.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -708,7 +708,7 @@ class Registration(ANTSCommand): >>> reg6 = copy.deepcopy(reg5) >>> reg6.inputs.fixed_image = ['fixed1.nii', 'fixed2.nii'] >>> reg6.inputs.moving_image = ['moving1.nii', 'moving2.nii'] - >>> reg6.cmdline # doctest: +ALLOW_UNICODE + >>> reg6.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -725,7 +725,7 @@ class Registration(ANTSCommand): >>> reg7a = copy.deepcopy(reg) >>> reg7a.inputs.interpolation = 'BSpline' >>> reg7a.inputs.interpolation_parameters = (3,) - >>> reg7a.cmdline # doctest: +ALLOW_UNICODE + >>> reg7a.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation BSpline[ 3 ] --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -739,7 +739,7 @@ class Registration(ANTSCommand): >>> reg7b = copy.deepcopy(reg) >>> reg7b.inputs.interpolation = 'Gaussian' >>> reg7b.inputs.interpolation_parameters = (1.0, 1.0) - >>> reg7b.cmdline # doctest: +ALLOW_UNICODE + >>> reg7b.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Gaussian[ 1.0, 1.0 ] \ --output [ output_, output_warped_image.nii.gz ] --transform Affine[ 2.0 ] \ @@ -756,7 +756,7 @@ class Registration(ANTSCommand): >>> reg8 = copy.deepcopy(reg) >>> reg8.inputs.transforms = ['Affine', 'BSplineSyN'] >>> reg8.inputs.transform_parameters = [(2.0,), (0.25, 26, 0, 3)] - >>> reg8.cmdline # doctest: +ALLOW_UNICODE + >>> reg8.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -771,7 +771,7 @@ class Registration(ANTSCommand): >>> # Test masking >>> reg9 = copy.deepcopy(reg) >>> reg9.inputs.fixed_image_masks = ['NULL', 'fixed1.nii'] - >>> reg9.cmdline # doctest: +ALLOW_UNICODE + >>> reg9.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] \ --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] \ --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] \ @@ -790,7 +790,7 @@ class Registration(ANTSCommand): >>> reg10 = copy.deepcopy(reg) >>> reg10.inputs.initial_moving_transform = ['func_to_struct.mat', 'ants_Warp.nii.gz'] >>> reg10.inputs.invert_initial_moving_transform = [False, False] - >>> reg10.cmdline # doctest: +ALLOW_UNICODE + >>> reg10.cmdline 'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform \ [ func_to_struct.mat, 0 ] [ ants_Warp.nii.gz, 0 ] --initialize-transforms-per-stage 0 --interpolation Linear \ --output [ output_, output_warped_image.nii.gz ] --transform Affine[ 2.0 ] \ @@ -1290,7 +1290,7 @@ class MeasureImageSimilarity(ANTSCommand): >>> sim.inputs.sampling_percentage = 1.0 >>> sim.inputs.fixed_image_mask = 'mask.nii' >>> sim.inputs.moving_image_mask = 'mask.nii.gz' - >>> sim.cmdline # doctest: +ALLOW_UNICODE + >>> sim.cmdline u'MeasureImageSimilarity --dimensionality 3 --masks ["mask.nii","mask.nii.gz"] \ --metric MI["T1.nii","resting.nii",1.0,5,Regular,1.0]' """ diff --git a/nipype/interfaces/ants/resampling.py b/nipype/interfaces/ants/resampling.py index 25fe08e52e..e268cb43e2 100644 --- a/nipype/interfaces/ants/resampling.py +++ b/nipype/interfaces/ants/resampling.py @@ -66,7 +66,7 @@ class WarpTimeSeriesImageMultiTransform(ANTSCommand): >>> wtsimt.inputs.input_image = 'resting.nii' >>> wtsimt.inputs.reference_image = 'ants_deformed.nii.gz' >>> wtsimt.inputs.transformation_series = ['ants_Warp.nii.gz','ants_Affine.txt'] - >>> wtsimt.cmdline # doctest: +ALLOW_UNICODE + >>> wtsimt.cmdline 'WarpTimeSeriesImageMultiTransform 4 resting.nii resting_wtsimt.nii -R ants_deformed.nii.gz ants_Warp.nii.gz \ ants_Affine.txt' @@ -179,7 +179,7 @@ class WarpImageMultiTransform(ANTSCommand): >>> wimt.inputs.input_image = 'structural.nii' >>> wimt.inputs.reference_image = 'ants_deformed.nii.gz' >>> wimt.inputs.transformation_series = ['ants_Warp.nii.gz','ants_Affine.txt'] - >>> wimt.cmdline # doctest: +ALLOW_UNICODE + >>> wimt.cmdline 'WarpImageMultiTransform 3 structural.nii structural_wimt.nii -R ants_deformed.nii.gz ants_Warp.nii.gz \ ants_Affine.txt' @@ -305,7 +305,7 @@ class ApplyTransforms(ANTSCommand): >>> at.inputs.input_image = 'moving1.nii' >>> at.inputs.reference_image = 'fixed1.nii' >>> at.inputs.transforms = 'identity' - >>> at.cmdline # doctest: +ALLOW_UNICODE + >>> at.cmdline 'antsApplyTransforms --default-value 0 --input moving1.nii \ --interpolation Linear --output moving1_trans.nii \ --reference-image fixed1.nii -t identity' @@ -319,7 +319,7 @@ class ApplyTransforms(ANTSCommand): >>> at.inputs.default_value = 0 >>> at.inputs.transforms = ['ants_Warp.nii.gz', 'trans.mat'] >>> at.inputs.invert_transform_flags = [False, False] - >>> at.cmdline # doctest: +ALLOW_UNICODE + >>> at.cmdline 'antsApplyTransforms --default-value 0 --dimensionality 3 --input moving1.nii --interpolation Linear \ --output deformed_moving1.nii --reference-image fixed1.nii --transform [ ants_Warp.nii.gz, 0 ] \ --transform [ trans.mat, 0 ]' @@ -334,7 +334,7 @@ class ApplyTransforms(ANTSCommand): >>> at1.inputs.default_value = 0 >>> at1.inputs.transforms = ['ants_Warp.nii.gz', 'trans.mat'] >>> at1.inputs.invert_transform_flags = [False, False] - >>> at1.cmdline # doctest: +ALLOW_UNICODE + >>> at1.cmdline 'antsApplyTransforms --default-value 0 --dimensionality 3 --input moving1.nii --interpolation BSpline[ 5 ] \ --output deformed_moving1.nii --reference-image fixed1.nii --transform [ ants_Warp.nii.gz, 0 ] \ --transform [ trans.mat, 0 ]' @@ -442,7 +442,7 @@ class ApplyTransformsToPoints(ANTSCommand): >>> at.inputs.input_file = 'moving.csv' >>> at.inputs.transforms = ['trans.mat', 'ants_Warp.nii.gz'] >>> at.inputs.invert_transform_flags = [False, False] - >>> at.cmdline # doctest: +ALLOW_UNICODE + >>> at.cmdline 'antsApplyTransformsToPoints --dimensionality 3 --input moving.csv --output moving_transformed.csv \ --transform [ trans.mat, 0 ] --transform [ ants_Warp.nii.gz, 0 ]' diff --git a/nipype/interfaces/ants/segmentation.py b/nipype/interfaces/ants/segmentation.py index 042303227a..64ca7205ca 100644 --- a/nipype/interfaces/ants/segmentation.py +++ b/nipype/interfaces/ants/segmentation.py @@ -91,7 +91,7 @@ class Atropos(ANTSCommand): >>> at.inputs.posterior_formulation = 'Socrates' >>> at.inputs.use_mixture_model_proportions = True >>> at.inputs.save_posteriors = True - >>> at.cmdline # doctest: +ALLOW_UNICODE + >>> at.cmdline 'Atropos --image-dimensionality 3 --icm [1,1] \ --initialization PriorProbabilityImages[2,priors/priorProbImages%02d.nii,0.8,1e-07] --intensity-image structural.nii \ --likelihood-model Gaussian --mask-image mask.nii --mrf [0.2,1x1x1] --convergence [5,1e-06] \ @@ -209,7 +209,7 @@ class LaplacianThickness(ANTSCommand): >>> cort_thick.inputs.input_wm = 'white_matter.nii.gz' >>> cort_thick.inputs.input_gm = 'gray_matter.nii.gz' >>> cort_thick.inputs.output_image = 'output_thickness.nii.gz' - >>> cort_thick.cmdline # doctest: +ALLOW_UNICODE + >>> cort_thick.cmdline 'LaplacianThickness white_matter.nii.gz gray_matter.nii.gz output_thickness.nii.gz' """ @@ -294,7 +294,7 @@ class N4BiasFieldCorrection(ANTSCommand): >>> n4.inputs.bspline_fitting_distance = 300 >>> n4.inputs.shrink_factor = 3 >>> n4.inputs.n_iterations = [50,50,30,20] - >>> n4.cmdline # doctest: +ALLOW_UNICODE + >>> n4.cmdline 'N4BiasFieldCorrection --bspline-fitting [ 300 ] \ -d 3 --input-image structural.nii \ --convergence [ 50x50x30x20 ] --output structural_corrected.nii \ @@ -302,7 +302,7 @@ class N4BiasFieldCorrection(ANTSCommand): >>> n4_2 = copy.deepcopy(n4) >>> n4_2.inputs.convergence_threshold = 1e-6 - >>> n4_2.cmdline # doctest: +ALLOW_UNICODE + >>> n4_2.cmdline 'N4BiasFieldCorrection --bspline-fitting [ 300 ] \ -d 3 --input-image structural.nii \ --convergence [ 50x50x30x20, 1e-06 ] --output structural_corrected.nii \ @@ -310,7 +310,7 @@ class N4BiasFieldCorrection(ANTSCommand): >>> n4_3 = copy.deepcopy(n4_2) >>> n4_3.inputs.bspline_order = 5 - >>> n4_3.cmdline # doctest: +ALLOW_UNICODE + >>> n4_3.cmdline 'N4BiasFieldCorrection --bspline-fitting [ 300, 5 ] \ -d 3 --input-image structural.nii \ --convergence [ 50x50x30x20, 1e-06 ] --output structural_corrected.nii \ @@ -320,7 +320,7 @@ class N4BiasFieldCorrection(ANTSCommand): >>> n4_4.inputs.input_image = 'structural.nii' >>> n4_4.inputs.save_bias = True >>> n4_4.inputs.dimension = 3 - >>> n4_4.cmdline # doctest: +ALLOW_UNICODE + >>> n4_4.cmdline 'N4BiasFieldCorrection -d 3 --input-image structural.nii \ --output [ structural_corrected.nii, structural_bias.nii ]' """ @@ -530,7 +530,7 @@ class CorticalThickness(ANTSCommand): ... 'BrainSegmentationPrior03.nii.gz', ... 'BrainSegmentationPrior04.nii.gz'] >>> corticalthickness.inputs.t1_registration_template = 'brain_study_template.nii.gz' - >>> corticalthickness.cmdline # doctest: +ALLOW_UNICODE + >>> corticalthickness.cmdline 'antsCorticalThickness.sh -a T1.nii.gz -m ProbabilityMaskOfStudyTemplate.nii.gz -e study_template.nii.gz -d 3 \ -s nii.gz -o antsCT_ -p nipype_priors/BrainSegmentationPrior%02d.nii.gz -t brain_study_template.nii.gz' @@ -709,7 +709,7 @@ class BrainExtraction(ANTSCommand): >>> brainextraction.inputs.anatomical_image ='T1.nii.gz' >>> brainextraction.inputs.brain_template = 'study_template.nii.gz' >>> brainextraction.inputs.brain_probability_mask ='ProbabilityMaskOfStudyTemplate.nii.gz' - >>> brainextraction.cmdline # doctest: +ALLOW_UNICODE + >>> brainextraction.cmdline 'antsBrainExtraction.sh -a T1.nii.gz -m ProbabilityMaskOfStudyTemplate.nii.gz -e study_template.nii.gz -d 3 \ -s nii.gz -o highres001_' """ @@ -900,7 +900,7 @@ class JointFusion(ANTSCommand): ... 'segmentation1.nii.gz', ... 'segmentation1.nii.gz'] >>> at.inputs.target_image = 'T1.nii' - >>> at.cmdline # doctest: +ALLOW_UNICODE + >>> at.cmdline 'jointfusion 3 1 -m Joint[0.1,2] -tg T1.nii -g im1.nii -g im2.nii -g im3.nii -l segmentation0.nii.gz \ -l segmentation1.nii.gz -l segmentation1.nii.gz fusion_labelimage_output.nii' @@ -909,7 +909,7 @@ class JointFusion(ANTSCommand): >>> at.inputs.beta = 1 >>> at.inputs.patch_radius = [3,2,1] >>> at.inputs.search_radius = [1,2,3] - >>> at.cmdline # doctest: +ALLOW_UNICODE + >>> at.cmdline 'jointfusion 3 1 -m Joint[0.5,1] -rp 3x2x1 -rs 1x2x3 -tg T1.nii -g im1.nii -g im2.nii -g im3.nii \ -l segmentation0.nii.gz -l segmentation1.nii.gz -l segmentation1.nii.gz fusion_labelimage_output.nii' """ @@ -986,20 +986,20 @@ class DenoiseImage(ANTSCommand): >>> denoise = DenoiseImage() >>> denoise.inputs.dimension = 3 >>> denoise.inputs.input_image = 'im1.nii' - >>> denoise.cmdline # doctest: +ALLOW_UNICODE + >>> denoise.cmdline 'DenoiseImage -d 3 -i im1.nii -n Gaussian -o im1_noise_corrected.nii -s 1' >>> denoise_2 = copy.deepcopy(denoise) >>> denoise_2.inputs.output_image = 'output_corrected_image.nii.gz' >>> denoise_2.inputs.noise_model = 'Rician' >>> denoise_2.inputs.shrink_factor = 2 - >>> denoise_2.cmdline # doctest: +ALLOW_UNICODE + >>> denoise_2.cmdline 'DenoiseImage -d 3 -i im1.nii -n Rician -o output_corrected_image.nii.gz -s 2' >>> denoise_3 = DenoiseImage() >>> denoise_3.inputs.input_image = 'im1.nii' >>> denoise_3.inputs.save_noise = True - >>> denoise_3.cmdline # doctest: +ALLOW_UNICODE + >>> denoise_3.cmdline 'DenoiseImage -i im1.nii -n Gaussian -o [ im1_noise_corrected.nii, im1_noise.nii ] -s 1' """ input_spec = DenoiseImageInputSpec @@ -1103,12 +1103,12 @@ class AntsJointFusion(ANTSCommand): >>> antsjointfusion.inputs.atlas_image = [ ['rc1s1.nii','rc1s2.nii'] ] >>> antsjointfusion.inputs.atlas_segmentation_image = ['segmentation0.nii.gz'] >>> antsjointfusion.inputs.target_image = ['im1.nii'] - >>> antsjointfusion.cmdline # doctest: +ALLOW_UNICODE + >>> antsjointfusion.cmdline "antsJointFusion -a 0.1 -g ['rc1s1.nii', 'rc1s2.nii'] -l segmentation0.nii.gz \ -b 2.0 -o ants_fusion_label_output.nii -s 3x3x3 -t ['im1.nii']" >>> antsjointfusion.inputs.target_image = [ ['im1.nii', 'im2.nii'] ] - >>> antsjointfusion.cmdline # doctest: +ALLOW_UNICODE + >>> antsjointfusion.cmdline "antsJointFusion -a 0.1 -g ['rc1s1.nii', 'rc1s2.nii'] -l segmentation0.nii.gz \ -b 2.0 -o ants_fusion_label_output.nii -s 3x3x3 -t ['im1.nii', 'im2.nii']" @@ -1116,7 +1116,7 @@ class AntsJointFusion(ANTSCommand): ... ['rc2s1.nii','rc2s2.nii'] ] >>> antsjointfusion.inputs.atlas_segmentation_image = ['segmentation0.nii.gz', ... 'segmentation1.nii.gz'] - >>> antsjointfusion.cmdline # doctest: +ALLOW_UNICODE + >>> antsjointfusion.cmdline "antsJointFusion -a 0.1 -g ['rc1s1.nii', 'rc1s2.nii'] -g ['rc2s1.nii', 'rc2s2.nii'] \ -l segmentation0.nii.gz -l segmentation1.nii.gz -b 2.0 -o ants_fusion_label_output.nii \ -s 3x3x3 -t ['im1.nii', 'im2.nii']" @@ -1126,7 +1126,7 @@ class AntsJointFusion(ANTSCommand): >>> antsjointfusion.inputs.beta = 1.0 >>> antsjointfusion.inputs.patch_radius = [3,2,1] >>> antsjointfusion.inputs.search_radius = [3] - >>> antsjointfusion.cmdline # doctest: +ALLOW_UNICODE + >>> antsjointfusion.cmdline "antsJointFusion -a 0.5 -g ['rc1s1.nii', 'rc1s2.nii'] -g ['rc2s1.nii', 'rc2s2.nii'] \ -l segmentation0.nii.gz -l segmentation1.nii.gz -b 1.0 -d 3 -o ants_fusion_label_output.nii \ -p 3x2x1 -s 3 -t ['im1.nii', 'im2.nii']" @@ -1135,7 +1135,7 @@ class AntsJointFusion(ANTSCommand): >>> antsjointfusion.inputs.verbose = True >>> antsjointfusion.inputs.exclusion_image = ['roi01.nii', 'roi02.nii'] >>> antsjointfusion.inputs.exclusion_image_label = ['1','2'] - >>> antsjointfusion.cmdline # doctest: +ALLOW_UNICODE + >>> antsjointfusion.cmdline "antsJointFusion -a 0.5 -g ['rc1s1.nii', 'rc1s2.nii'] -g ['rc2s1.nii', 'rc2s2.nii'] \ -l segmentation0.nii.gz -l segmentation1.nii.gz -b 1.0 -d 3 -e 1[roi01.nii] -e 2[roi02.nii] \ -o ants_fusion_label_output.nii -p 3x2x1 -s mask.nii -t ['im1.nii', 'im2.nii'] -v" @@ -1144,7 +1144,7 @@ class AntsJointFusion(ANTSCommand): >>> antsjointfusion.inputs.out_intensity_fusion_name_format = 'ants_joint_fusion_intensity_%d.nii.gz' >>> antsjointfusion.inputs.out_label_post_prob_name_format = 'ants_joint_fusion_posterior_%d.nii.gz' >>> antsjointfusion.inputs.out_atlas_voting_weight_name_format = 'ants_joint_fusion_voting_weight_%d.nii.gz' - >>> antsjointfusion.cmdline # doctest: +ALLOW_UNICODE + >>> antsjointfusion.cmdline "antsJointFusion -a 0.5 -g ['rc1s1.nii', 'rc1s2.nii'] -g ['rc2s1.nii', 'rc2s2.nii'] \ -l segmentation0.nii.gz -l segmentation1.nii.gz -b 1.0 -d 3 -e 1[roi01.nii] -e 2[roi02.nii] \ -o [ants_fusion_label_output.nii, ants_joint_fusion_intensity_%d.nii.gz, \ @@ -1323,7 +1323,7 @@ class KellyKapowski(ANTSCommand): >>> #kk.inputs.use_bspline_smoothing = False >>> kk.inputs.number_integration_points = 10 >>> kk.inputs.thickness_prior_estimate = 10 - >>> kk.cmdline # doctest: +ALLOW_UNICODE + >>> kk.cmdline u'KellyKapowski --convergence "[45,0.0,10]" \ --output "[segmentation0_cortical_thickness.nii.gz,segmentation0_warped_white_matter.nii.gz]" \ --image-dimensionality 3 --gradient-step 0.025000 --number-of-integration-points 10 \ diff --git a/nipype/interfaces/ants/utils.py b/nipype/interfaces/ants/utils.py index 88d6d219a2..0ba918ee27 100644 --- a/nipype/interfaces/ants/utils.py +++ b/nipype/interfaces/ants/utils.py @@ -37,7 +37,7 @@ class AverageAffineTransform(ANTSCommand): >>> avg.inputs.dimension = 3 >>> avg.inputs.transforms = ['trans.mat', 'func_to_struct.mat'] >>> avg.inputs.output_affine_transform = 'MYtemplatewarp.mat' - >>> avg.cmdline # doctest: +ALLOW_UNICODE + >>> avg.cmdline 'AverageAffineTransform 3 MYtemplatewarp.mat trans.mat func_to_struct.mat' """ _cmd = 'AverageAffineTransform' @@ -83,7 +83,7 @@ class AverageImages(ANTSCommand): >>> avg.inputs.output_average_image = "average.nii.gz" >>> avg.inputs.normalize = True >>> avg.inputs.images = ['rc1s1.nii', 'rc1s1.nii'] - >>> avg.cmdline # doctest: +ALLOW_UNICODE + >>> avg.cmdline 'AverageImages 3 average.nii.gz 1 rc1s1.nii rc1s1.nii' """ _cmd = 'AverageImages' @@ -126,7 +126,7 @@ class MultiplyImages(ANTSCommand): >>> test.inputs.first_input = 'moving2.nii' >>> test.inputs.second_input = 0.25 >>> test.inputs.output_product_image = "out.nii" - >>> test.cmdline # doctest: +ALLOW_UNICODE + >>> test.cmdline 'MultiplyImages 3 moving2.nii 0.25 out.nii' """ _cmd = 'MultiplyImages' @@ -170,7 +170,7 @@ class CreateJacobianDeterminantImage(ANTSCommand): >>> jacobian.inputs.imageDimension = 3 >>> jacobian.inputs.deformationField = 'ants_Warp.nii.gz' >>> jacobian.inputs.outputImage = 'out_name.nii.gz' - >>> jacobian.cmdline # doctest: +ALLOW_UNICODE + >>> jacobian.cmdline 'CreateJacobianDeterminantImage 3 ants_Warp.nii.gz out_name.nii.gz' """ @@ -223,7 +223,7 @@ class AffineInitializer(ANTSCommand): >>> init = AffineInitializer() >>> init.inputs.fixed_image = 'fixed1.nii' >>> init.inputs.moving_image = 'moving1.nii' - >>> init.cmdline # doctest: +ALLOW_UNICODE + >>> init.cmdline 'antsAffineInitializer 3 fixed1.nii moving1.nii transform.mat 15.000000 0.100000 0 10' """ @@ -261,7 +261,7 @@ class ComposeMultiTransform(ANTSCommand): >>> compose_transform = ComposeMultiTransform() >>> compose_transform.inputs.dimension = 3 >>> compose_transform.inputs.transforms = ['struct_to_template.mat', 'func_to_struct.mat'] - >>> compose_transform.cmdline # doctest: +ALLOW_UNICODE + >>> compose_transform.cmdline 'ComposeMultiTransform 3 struct_to_template_composed struct_to_template.mat func_to_struct.mat' """ diff --git a/nipype/interfaces/ants/visualization.py b/nipype/interfaces/ants/visualization.py index ef51914e6c..07cf8af086 100644 --- a/nipype/interfaces/ants/visualization.py +++ b/nipype/interfaces/ants/visualization.py @@ -57,7 +57,7 @@ class ConvertScalarImageToRGB(ANTSCommand): >>> converter.inputs.colormap = 'jet' >>> converter.inputs.minimum_input = 0 >>> converter.inputs.maximum_input = 6 - >>> converter.cmdline # doctest: +ALLOW_UNICODE + >>> converter.cmdline 'ConvertScalarImageToRGB 3 T1.nii.gz rgb.nii.gz none jet none 0 6 0 255' """ _cmd = 'ConvertScalarImageToRGB' @@ -143,7 +143,7 @@ class CreateTiledMosaic(ANTSCommand): >>> mosaic_slicer.inputs.direction = 2 >>> mosaic_slicer.inputs.pad_or_crop = '[ -15x -50 , -15x -30 ,0]' >>> mosaic_slicer.inputs.slices = '[2 ,100 ,160]' - >>> mosaic_slicer.cmdline # doctest: +ALLOW_UNICODE + >>> mosaic_slicer.cmdline 'CreateTiledMosaic -a 0.50 -d 2 -i T1.nii.gz -x mask.nii.gz -o output.png -p [ -15x -50 , -15x -30 ,0] \ -r rgb.nii.gz -s [2 ,100 ,160]' """ diff --git a/nipype/interfaces/base.py b/nipype/interfaces/base.py index f8e845d944..b8430cb9dc 100644 --- a/nipype/interfaces/base.py +++ b/nipype/interfaces/base.py @@ -123,10 +123,10 @@ class Bunch(object): -------- >>> from nipype.interfaces.base import Bunch >>> inputs = Bunch(infile='subj.nii', fwhm=6.0, register_to_mean=True) - >>> inputs # doctest: +ALLOW_UNICODE + >>> inputs Bunch(fwhm=6.0, infile='subj.nii', register_to_mean=True) >>> inputs.register_to_mean = False - >>> inputs # doctest: +ALLOW_UNICODE + >>> inputs Bunch(fwhm=6.0, infile='subj.nii', register_to_mean=False) @@ -1505,18 +1505,18 @@ class must be instantiated with a command argument >>> from nipype.interfaces.base import CommandLine >>> cli = CommandLine(command='ls', environ={'DISPLAY': ':1'}) >>> cli.inputs.args = '-al' - >>> cli.cmdline # doctest: +ALLOW_UNICODE + >>> cli.cmdline 'ls -al' # Use get_traitsfree() to check all inputs set - >>> pprint.pprint(cli.inputs.get_traitsfree()) # doctest: +NORMALIZE_WHITESPACE +ALLOW_UNICODE + >>> pprint.pprint(cli.inputs.get_traitsfree()) # doctest: {'args': '-al', 'environ': {'DISPLAY': ':1'}, 'ignore_exception': False} - >>> cli.inputs.get_hashval()[0][0] # doctest: +ALLOW_UNICODE + >>> cli.inputs.get_hashval()[0][0] ('args', '-al') - >>> cli.inputs.get_hashval()[1] # doctest: +ALLOW_UNICODE + >>> cli.inputs.get_hashval()[1] '11c37f97649cd61627f4afe5136af8c0' """ @@ -1846,12 +1846,12 @@ class MpiCommandLine(CommandLine): >>> from nipype.interfaces.base import MpiCommandLine >>> mpi_cli = MpiCommandLine(command='my_mpi_prog') >>> mpi_cli.inputs.args = '-v' - >>> mpi_cli.cmdline # doctest: +ALLOW_UNICODE + >>> mpi_cli.cmdline 'my_mpi_prog -v' >>> mpi_cli.inputs.use_mpi = True >>> mpi_cli.inputs.n_procs = 8 - >>> mpi_cli.cmdline # doctest: +ALLOW_UNICODE + >>> mpi_cli.cmdline 'mpiexec -n 8 my_mpi_prog -v' """ input_spec = MpiCommandLineInputSpec @@ -1961,15 +1961,15 @@ class OutputMultiPath(MultiPath): >>> a.foo = '/software/temp/foo.txt' - >>> a.foo # doctest: +ALLOW_UNICODE + >>> a.foo '/software/temp/foo.txt' >>> a.foo = ['/software/temp/foo.txt'] - >>> a.foo # doctest: +ALLOW_UNICODE + >>> a.foo '/software/temp/foo.txt' >>> a.foo = ['/software/temp/foo.txt', '/software/temp/goo.txt'] - >>> a.foo # doctest: +ALLOW_UNICODE + >>> a.foo ['/software/temp/foo.txt', '/software/temp/goo.txt'] """ @@ -2006,15 +2006,15 @@ class InputMultiPath(MultiPath): >>> a.foo = '/software/temp/foo.txt' - >>> a.foo # doctest: +ALLOW_UNICODE + >>> a.foo ['/software/temp/foo.txt'] >>> a.foo = ['/software/temp/foo.txt'] - >>> a.foo # doctest: +ALLOW_UNICODE + >>> a.foo ['/software/temp/foo.txt'] >>> a.foo = ['/software/temp/foo.txt', '/software/temp/goo.txt'] - >>> a.foo # doctest: +ALLOW_UNICODE + >>> a.foo ['/software/temp/foo.txt', '/software/temp/goo.txt'] """ diff --git a/nipype/interfaces/bru2nii.py b/nipype/interfaces/bru2nii.py index d469f8bda6..579b5229b9 100644 --- a/nipype/interfaces/bru2nii.py +++ b/nipype/interfaces/bru2nii.py @@ -42,7 +42,7 @@ class Bru2(CommandLine): >>> from nipype.interfaces.bru2nii import Bru2 >>> converter = Bru2() >>> converter.inputs.input_dir = "brukerdir" - >>> converter.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> converter.cmdline # doctest: +ELLIPSIS 'Bru2 -o .../nipype/testing/data/brukerdir brukerdir' """ input_spec = Bru2InputSpec diff --git a/nipype/interfaces/c3.py b/nipype/interfaces/c3.py index 8288ab3b17..334500874c 100644 --- a/nipype/interfaces/c3.py +++ b/nipype/interfaces/c3.py @@ -38,7 +38,7 @@ class C3dAffineTool(SEMLikeCommandLine): >>> c3.inputs.source_file = 'cmatrix.mat' >>> c3.inputs.itk_transform = 'affine.txt' >>> c3.inputs.fsl2ras = True - >>> c3.cmdline # doctest: +ALLOW_UNICODE + >>> c3.cmdline 'c3d_affine_tool -src cmatrix.mat -fsl2ras -oitk affine.txt' """ input_spec = C3dAffineToolInputSpec diff --git a/nipype/interfaces/dcm2nii.py b/nipype/interfaces/dcm2nii.py index 8379834b81..60c2d33bd1 100644 --- a/nipype/interfaces/dcm2nii.py +++ b/nipype/interfaces/dcm2nii.py @@ -75,7 +75,7 @@ class Dcm2nii(CommandLine): >>> converter.inputs.source_names = ['functional_1.dcm', 'functional_2.dcm'] >>> converter.inputs.gzip_output = True >>> converter.inputs.output_dir = '.' - >>> converter.cmdline # doctest: +ALLOW_UNICODE + >>> converter.cmdline 'dcm2nii -a y -c y -b config.ini -v y -d y -e y -g y -i n -n y -o . -p y -x n -f n functional_1.dcm' """ @@ -250,7 +250,7 @@ class Dcm2niix(CommandLine): 'dcm2niix -b y -z i -x n -t n -m n -f %t%p -o . -s y -v n functional_1.dcm' >>> flags = '-'.join([val.strip() + ' ' for val in sorted(' '.join(converter.cmdline.split()[1:-1]).split('-'))]) - >>> flags # doctest: +ALLOW_UNICODE + >>> flags ' -b y -f %t%p -m n -o . -s y -t n -v n -x n -z i ' """ diff --git a/nipype/interfaces/elastix/registration.py b/nipype/interfaces/elastix/registration.py index 205346ed80..77b868c76c 100644 --- a/nipype/interfaces/elastix/registration.py +++ b/nipype/interfaces/elastix/registration.py @@ -55,7 +55,7 @@ class Registration(CommandLine): >>> reg.inputs.fixed_image = 'fixed1.nii' >>> reg.inputs.moving_image = 'moving1.nii' >>> reg.inputs.parameters = ['elastix.txt'] - >>> reg.cmdline # doctest: +ALLOW_UNICODE + >>> reg.cmdline 'elastix -f fixed1.nii -m moving1.nii -out ./ -p elastix.txt' @@ -147,7 +147,7 @@ class ApplyWarp(CommandLine): >>> reg = ApplyWarp() >>> reg.inputs.moving_image = 'moving1.nii' >>> reg.inputs.transform_file = 'TransformParameters.0.txt' - >>> reg.cmdline # doctest: +ALLOW_UNICODE + >>> reg.cmdline 'transformix -in moving1.nii -out ./ -tp TransformParameters.0.txt' @@ -187,7 +187,7 @@ class AnalyzeWarp(CommandLine): >>> from nipype.interfaces.elastix import AnalyzeWarp >>> reg = AnalyzeWarp() >>> reg.inputs.transform_file = 'TransformParameters.0.txt' - >>> reg.cmdline # doctest: +ALLOW_UNICODE + >>> reg.cmdline 'transformix -def all -jac all -jacmat all -out ./ -tp TransformParameters.0.txt' @@ -228,7 +228,7 @@ class PointsWarp(CommandLine): >>> reg = PointsWarp() >>> reg.inputs.points_file = 'surf1.vtk' >>> reg.inputs.transform_file = 'TransformParameters.0.txt' - >>> reg.cmdline # doctest: +ALLOW_UNICODE + >>> reg.cmdline 'transformix -out ./ -def surf1.vtk -tp TransformParameters.0.txt' diff --git a/nipype/interfaces/freesurfer/longitudinal.py b/nipype/interfaces/freesurfer/longitudinal.py index 1292109060..84559c90d9 100644 --- a/nipype/interfaces/freesurfer/longitudinal.py +++ b/nipype/interfaces/freesurfer/longitudinal.py @@ -98,22 +98,22 @@ class RobustTemplate(FSCommandOpenMP): >>> template.inputs.fixed_timepoint = True >>> template.inputs.no_iteration = True >>> template.inputs.subsample_threshold = 200 - >>> template.cmdline #doctest: +NORMALIZE_WHITESPACE +ALLOW_UNICODE + >>> template.cmdline #doctest: 'mri_robust_template --satit --average 0 --fixtp --mov structural.nii functional.nii --inittp 1 --noit --template mri_robust_template_out.mgz --subsample 200' >>> template.inputs.out_file = 'T1.nii' - >>> template.cmdline #doctest: +NORMALIZE_WHITESPACE +ALLOW_UNICODE + >>> template.cmdline #doctest: 'mri_robust_template --satit --average 0 --fixtp --mov structural.nii functional.nii --inittp 1 --noit --template T1.nii --subsample 200' >>> template.inputs.transform_outputs = ['structural.lta', ... 'functional.lta'] >>> template.inputs.scaled_intensity_outputs = ['structural-iscale.txt', ... 'functional-iscale.txt'] - >>> template.cmdline #doctest: +NORMALIZE_WHITESPACE +ALLOW_UNICODE +ELLIPSIS + >>> template.cmdline #doctest: +ELLIPSIS 'mri_robust_template --satit --average 0 --fixtp --mov structural.nii functional.nii --inittp 1 --noit --template T1.nii --iscaleout .../structural-iscale.txt .../functional-iscale.txt --subsample 200 --lta .../structural.lta .../functional.lta' >>> template.inputs.transform_outputs = True >>> template.inputs.scaled_intensity_outputs = True - >>> template.cmdline #doctest: +NORMALIZE_WHITESPACE +ALLOW_UNICODE +ELLIPSIS + >>> template.cmdline #doctest: +ELLIPSIS 'mri_robust_template --satit --average 0 --fixtp --mov structural.nii functional.nii --inittp 1 --noit --template T1.nii --iscaleout .../is1.txt .../is2.txt --subsample 200 --lta .../tp1.lta .../tp2.lta' >>> template.run() #doctest: +SKIP @@ -199,7 +199,7 @@ class FuseSegmentations(FSCommand): >>> fuse.inputs.in_segmentations = ['aseg.mgz', 'aseg.mgz'] >>> fuse.inputs.in_segmentations_noCC = ['aseg.mgz', 'aseg.mgz'] >>> fuse.inputs.in_norms = ['norm.mgz', 'norm.mgz', 'norm.mgz'] - >>> fuse.cmdline # doctest: +ALLOW_UNICODE + >>> fuse.cmdline 'mri_fuse_segmentations -n norm.mgz -a aseg.mgz -c aseg.mgz tp.long.A.template tp1 tp2' """ diff --git a/nipype/interfaces/freesurfer/model.py b/nipype/interfaces/freesurfer/model.py index 007d30ac3c..e2eba23196 100644 --- a/nipype/interfaces/freesurfer/model.py +++ b/nipype/interfaces/freesurfer/model.py @@ -91,7 +91,7 @@ class MRISPreproc(FSCommand): >>> preproc.inputs.vol_measure_file = [('cont1.nii', 'register.dat'), \ ('cont1a.nii', 'register.dat')] >>> preproc.inputs.out_file = 'concatenated_file.mgz' - >>> preproc.cmdline # doctest: +ALLOW_UNICODE + >>> preproc.cmdline 'mris_preproc --hemi lh --out concatenated_file.mgz --target fsaverage --iv cont1.nii register.dat --iv cont1a.nii register.dat' """ @@ -148,7 +148,7 @@ class MRISPreprocReconAll(MRISPreproc): >>> preproc.inputs.vol_measure_file = [('cont1.nii', 'register.dat'), \ ('cont1a.nii', 'register.dat')] >>> preproc.inputs.out_file = 'concatenated_file.mgz' - >>> preproc.cmdline # doctest: +ALLOW_UNICODE + >>> preproc.cmdline 'mris_preproc --hemi lh --out concatenated_file.mgz --s subject_id --target fsaverage --iv cont1.nii register.dat --iv cont1a.nii register.dat' """ @@ -486,7 +486,7 @@ class Binarize(FSCommand): -------- >>> binvol = Binarize(in_file='structural.nii', min=10, binary_file='foo_out.nii') - >>> binvol.cmdline # doctest: +ALLOW_UNICODE + >>> binvol.cmdline 'mri_binarize --o foo_out.nii --i structural.nii --min 10.000000' """ @@ -595,7 +595,7 @@ class Concatenate(FSCommand): >>> concat = Concatenate() >>> concat.inputs.in_files = ['cont1.nii', 'cont2.nii'] >>> concat.inputs.concatenated_file = 'bar.nii' - >>> concat.cmdline # doctest: +ALLOW_UNICODE + >>> concat.cmdline 'mri_concat --o bar.nii --i cont1.nii --i cont2.nii' """ @@ -719,7 +719,7 @@ class SegStats(FSCommand): >>> ss.inputs.subjects_dir = '.' >>> ss.inputs.avgwf_txt_file = 'avgwf.txt' >>> ss.inputs.summary_file = 'summary.stats' - >>> ss.cmdline # doctest: +ALLOW_UNICODE + >>> ss.cmdline 'mri_segstats --annot PWS04 lh aparc --avgwf ./avgwf.txt --i functional.nii --sum ./summary.stats' """ @@ -841,7 +841,7 @@ class SegStatsReconAll(SegStats): >>> segstatsreconall.inputs.total_gray = True >>> segstatsreconall.inputs.euler = True >>> segstatsreconall.inputs.exclude_id = 0 - >>> segstatsreconall.cmdline # doctest: +ALLOW_UNICODE + >>> segstatsreconall.cmdline 'mri_segstats --annot PWS04 lh aparc --avgwf ./avgwf.txt --brain-vol-from-seg --surf-ctx-vol --empty --etiv --euler --excl-ctxgmwm --excludeid 0 --subcortgray --subject 10335 --supratent --totalgray --surf-wm-vol --sum ./summary.stats' """ input_spec = SegStatsReconAllInputSpec @@ -953,7 +953,7 @@ class Label2Vol(FSCommand): -------- >>> binvol = Label2Vol(label_file='cortex.label', template_file='structural.nii', reg_file='register.dat', fill_thresh=0.5, vol_label_file='foo_out.nii') - >>> binvol.cmdline # doctest: +ALLOW_UNICODE + >>> binvol.cmdline 'mri_label2vol --fillthresh 0 --label cortex.label --reg register.dat --temp structural.nii --o foo_out.nii' """ @@ -1032,7 +1032,7 @@ class MS_LDA(FSCommand): shift=zero_value, vol_synth_file='synth_out.mgz', \ conform=True, use_weights=True, \ images=['FLASH1.mgz', 'FLASH2.mgz', 'FLASH3.mgz']) - >>> optimalWeights.cmdline # doctest: +ALLOW_UNICODE + >>> optimalWeights.cmdline 'mri_ms_LDA -conform -label label.mgz -lda 2 3 -shift 1 -W -synth synth_out.mgz -weight weights.txt FLASH1.mgz FLASH2.mgz FLASH3.mgz' """ @@ -1124,7 +1124,7 @@ class Label2Label(FSCommand): >>> l2l.inputs.source_label = 'lh-pial.stl' >>> l2l.inputs.source_white = 'lh.pial' >>> l2l.inputs.source_sphere_reg = 'lh.pial' - >>> l2l.cmdline # doctest: +ALLOW_UNICODE + >>> l2l.cmdline 'mri_label2label --hemi lh --trglabel lh-pial_converted.stl --regmethod surface --srclabel lh-pial.stl --srcsubject fsaverage --trgsubject 10335' """ @@ -1208,7 +1208,7 @@ class Label2Annot(FSCommand): >>> l2a.inputs.in_labels = ['lh.aparc.label'] >>> l2a.inputs.orig = 'lh.pial' >>> l2a.inputs.out_annot = 'test' - >>> l2a.cmdline # doctest: +ALLOW_UNICODE + >>> l2a.cmdline 'mris_label2annot --hemi lh --l lh.aparc.label --a test --s 10335' """ @@ -1289,7 +1289,7 @@ class SphericalAverage(FSCommand): >>> sphericalavg.inputs.subject_id = '10335' >>> sphericalavg.inputs.erode = 2 >>> sphericalavg.inputs.threshold = 5 - >>> sphericalavg.cmdline # doctest: +ALLOW_UNICODE + >>> sphericalavg.cmdline 'mris_spherical_average -erode 2 -o 10335 -t 5.0 label lh.entorhinal lh pial . test.out' """ diff --git a/nipype/interfaces/freesurfer/preprocess.py b/nipype/interfaces/freesurfer/preprocess.py index 5f39f1cc94..6b408304d3 100644 --- a/nipype/interfaces/freesurfer/preprocess.py +++ b/nipype/interfaces/freesurfer/preprocess.py @@ -67,7 +67,7 @@ class ParseDICOMDir(FSCommand): >>> dcminfo.inputs.dicom_dir = '.' >>> dcminfo.inputs.sortbyrun = True >>> dcminfo.inputs.summarize = True - >>> dcminfo.cmdline # doctest: +ALLOW_UNICODE + >>> dcminfo.cmdline 'mri_parse_sdcmdir --d . --o dicominfo.txt --sortbyrun --summarize' """ @@ -131,7 +131,7 @@ class UnpackSDICOMDir(FSCommand): >>> unpack.inputs.output_dir = '.' >>> unpack.inputs.run_info = (5, 'mprage', 'nii', 'struct') >>> unpack.inputs.dir_structure = 'generic' - >>> unpack.cmdline # doctest: +ALLOW_UNICODE + >>> unpack.cmdline 'unpacksdcmdir -generic -targ . -run 5 mprage nii struct -src .' """ _cmd = 'unpacksdcmdir' @@ -353,7 +353,7 @@ class MRIConvert(FSCommand): >>> mc.inputs.in_file = 'structural.nii' >>> mc.inputs.out_file = 'outfile.mgz' >>> mc.inputs.out_type = 'mgz' - >>> mc.cmdline # doctest: +ALLOW_UNICODE + >>> mc.cmdline 'mri_convert --out_type mgz --input_volume structural.nii --output_volume outfile.mgz' """ @@ -579,7 +579,7 @@ class Resample(FSCommand): >>> resampler.inputs.in_file = 'structural.nii' >>> resampler.inputs.resampled_file = 'resampled.nii' >>> resampler.inputs.voxel_size = (2.1, 2.1, 2.1) - >>> resampler.cmdline # doctest: +ALLOW_UNICODE + >>> resampler.cmdline 'mri_convert -vs 2.10 2.10 2.10 -i structural.nii -o resampled.nii' """ @@ -709,27 +709,27 @@ class ReconAll(CommandLine): >>> reconall.inputs.directive = 'all' >>> reconall.inputs.subjects_dir = '.' >>> reconall.inputs.T1_files = 'structural.nii' - >>> reconall.cmdline # doctest: +ALLOW_UNICODE + >>> reconall.cmdline 'recon-all -all -i structural.nii -subjid foo -sd .' >>> reconall.inputs.flags = "-qcache" - >>> reconall.cmdline # doctest: +ALLOW_UNICODE + >>> reconall.cmdline 'recon-all -all -i structural.nii -qcache -subjid foo -sd .' >>> reconall.inputs.flags = ["-cw256", "-qcache"] - >>> reconall.cmdline # doctest: +ALLOW_UNICODE + >>> reconall.cmdline 'recon-all -all -i structural.nii -cw256 -qcache -subjid foo -sd .' Hemisphere may be specified regardless of directive: >>> reconall.inputs.flags = [] >>> reconall.inputs.hemi = 'lh' - >>> reconall.cmdline # doctest: +ALLOW_UNICODE + >>> reconall.cmdline 'recon-all -all -i structural.nii -hemi lh -subjid foo -sd .' ``-autorecon-hemi`` uses the ``-hemi`` input to specify the hemisphere to operate upon: >>> reconall.inputs.directive = 'autorecon-hemi' - >>> reconall.cmdline # doctest: +ALLOW_UNICODE + >>> reconall.cmdline 'recon-all -autorecon-hemi lh -i structural.nii -subjid foo -sd .' Hippocampal subfields can accept T1 and T2 images: @@ -740,14 +740,14 @@ class ReconAll(CommandLine): >>> reconall_subfields.inputs.subjects_dir = '.' >>> reconall_subfields.inputs.T1_files = 'structural.nii' >>> reconall_subfields.inputs.hippocampal_subfields_T1 = True - >>> reconall_subfields.cmdline # doctest: +ALLOW_UNICODE + >>> reconall_subfields.cmdline 'recon-all -all -i structural.nii -hippocampal-subfields-T1 -subjid foo -sd .' >>> reconall_subfields.inputs.hippocampal_subfields_T2 = ( ... 'structural.nii', 'test') - >>> reconall_subfields.cmdline # doctest: +ALLOW_UNICODE + >>> reconall_subfields.cmdline 'recon-all -all -i structural.nii -hippocampal-subfields-T1T2 structural.nii test -subjid foo -sd .' >>> reconall_subfields.inputs.hippocampal_subfields_T1 = False - >>> reconall_subfields.cmdline # doctest: +ALLOW_UNICODE + >>> reconall_subfields.cmdline 'recon-all -all -i structural.nii -hippocampal-subfields-T2 structural.nii test -subjid foo -sd .' """ @@ -1193,7 +1193,7 @@ class BBRegister(FSCommand): >>> from nipype.interfaces.freesurfer import BBRegister >>> bbreg = BBRegister(subject_id='me', source_file='structural.nii', init='header', contrast_type='t2') - >>> bbreg.cmdline # doctest: +ALLOW_UNICODE + >>> bbreg.cmdline 'bbregister --t2 --init-header --reg structural_bbreg_me.dat --mov structural.nii --s me' """ @@ -1351,7 +1351,7 @@ class ApplyVolTransform(FSCommand): >>> applyreg.inputs.reg_file = 'register.dat' >>> applyreg.inputs.transformed_file = 'struct_warped.nii' >>> applyreg.inputs.fs_target = True - >>> applyreg.cmdline # doctest: +ALLOW_UNICODE + >>> applyreg.cmdline 'mri_vol2vol --fstarg --reg register.dat --mov structural.nii --o struct_warped.nii' """ @@ -1431,7 +1431,7 @@ class Smooth(FSCommand): >>> from nipype.interfaces.freesurfer import Smooth >>> smoothvol = Smooth(in_file='functional.nii', smoothed_file = 'foo_out.nii', reg_file='register.dat', surface_fwhm=10, vol_fwhm=6) - >>> smoothvol.cmdline # doctest: +ALLOW_UNICODE + >>> smoothvol.cmdline 'mris_volsmooth --i functional.nii --reg register.dat --o foo_out.nii --fwhm 10.000000 --vol-fwhm 6.000000' """ @@ -1562,7 +1562,7 @@ class RobustRegister(FSCommand): >>> reg.inputs.target_file = 'T1.nii' >>> reg.inputs.auto_sens = True >>> reg.inputs.init_orient = True - >>> reg.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS + >>> reg.cmdline # doctest: +ELLIPSIS 'mri_robust_register --satit --initorient --lta .../structural_robustreg.lta --mov structural.nii --dst T1.nii' References @@ -1639,7 +1639,7 @@ class FitMSParams(FSCommand): >>> msfit = FitMSParams() >>> msfit.inputs.in_files = ['flash_05.mgz', 'flash_30.mgz'] >>> msfit.inputs.out_dir = 'flash_parameters' - >>> msfit.cmdline # doctest: +ALLOW_UNICODE + >>> msfit.cmdline 'mri_ms_fitparms flash_05.mgz flash_30.mgz flash_parameters' """ @@ -1712,7 +1712,7 @@ class SynthesizeFLASH(FSCommand): >>> syn.inputs.t1_image = 'T1.mgz' >>> syn.inputs.pd_image = 'PD.mgz' >>> syn.inputs.out_file = 'flash_30syn.mgz' - >>> syn.cmdline # doctest: +ALLOW_UNICODE + >>> syn.cmdline 'mri_synthesize 20.00 30.00 3.000 T1.mgz PD.mgz flash_30syn.mgz' """ @@ -1785,7 +1785,7 @@ class MNIBiasCorrection(FSCommand): >>> correct.inputs.iterations = 6 >>> correct.inputs.protocol_iterations = 1000 >>> correct.inputs.distance = 50 - >>> correct.cmdline # doctest: +ALLOW_UNICODE + >>> correct.cmdline 'mri_nu_correct.mni --distance 50 --i norm.mgz --n 6 --o norm_output.mgz --proto-iters 1000' References: @@ -1842,7 +1842,7 @@ class WatershedSkullStrip(FSCommand): >>> skullstrip.inputs.t1 = True >>> skullstrip.inputs.transform = "transforms/talairach_with_skull.lta" >>> skullstrip.inputs.out_file = "brainmask.auto.mgz" - >>> skullstrip.cmdline # doctest: +ALLOW_UNICODE + >>> skullstrip.cmdline 'mri_watershed -T1 transforms/talairach_with_skull.lta T1.mgz brainmask.auto.mgz' """ _cmd = 'mri_watershed' @@ -1890,7 +1890,7 @@ class Normalize(FSCommand): >>> normalize = freesurfer.Normalize() >>> normalize.inputs.in_file = "T1.mgz" >>> normalize.inputs.gradient = 1 - >>> normalize.cmdline # doctest: +ALLOW_UNICODE + >>> normalize.cmdline 'mri_normalize -g 1 T1.mgz T1_norm.mgz' """ _cmd = "mri_normalize" @@ -1942,7 +1942,7 @@ class CANormalize(FSCommand): >>> ca_normalize.inputs.in_file = "T1.mgz" >>> ca_normalize.inputs.atlas = "atlas.nii.gz" # in practice use .gca atlases >>> ca_normalize.inputs.transform = "trans.mat" # in practice use .lta transforms - >>> ca_normalize.cmdline # doctest: +ALLOW_UNICODE + >>> ca_normalize.cmdline 'mri_ca_normalize T1.mgz atlas.nii.gz trans.mat T1_norm.mgz' """ _cmd = "mri_ca_normalize" @@ -2000,7 +2000,7 @@ class CARegister(FSCommandOpenMP): >>> ca_register = freesurfer.CARegister() >>> ca_register.inputs.in_file = "norm.mgz" >>> ca_register.inputs.out_file = "talairach.m3z" - >>> ca_register.cmdline # doctest: +ALLOW_UNICODE + >>> ca_register.cmdline 'mri_ca_register norm.mgz talairach.m3z' """ _cmd = "mri_ca_register" @@ -2071,7 +2071,7 @@ class CALabel(FSCommandOpenMP): >>> ca_label.inputs.out_file = "out.mgz" >>> ca_label.inputs.transform = "trans.mat" >>> ca_label.inputs.template = "Template_6.nii" # in practice use .gcs extension - >>> ca_label.cmdline # doctest: +ALLOW_UNICODE + >>> ca_label.cmdline 'mri_ca_label norm.mgz trans.mat Template_6.nii out.mgz' """ _cmd = "mri_ca_label" @@ -2145,7 +2145,7 @@ class MRIsCALabel(FSCommandOpenMP): >>> ca_label.inputs.sulc = "lh.pial" >>> ca_label.inputs.classifier = "im1.nii" # in pracice, use .gcs extension >>> ca_label.inputs.smoothwm = "lh.pial" - >>> ca_label.cmdline # doctest: +ALLOW_UNICODE + >>> ca_label.cmdline 'mris_ca_label test lh lh.pial im1.nii lh.aparc.annot' """ _cmd = "mris_ca_label" @@ -2231,7 +2231,7 @@ class SegmentCC(FSCommand): >>> SegmentCC_node.inputs.in_norm = "norm.mgz" >>> SegmentCC_node.inputs.out_rotation = "cc.lta" >>> SegmentCC_node.inputs.subject_id = "test" - >>> SegmentCC_node.cmdline # doctest: +ALLOW_UNICODE + >>> SegmentCC_node.cmdline 'mri_cc -aseg aseg.mgz -o aseg.auto.mgz -lta cc.lta test' """ @@ -2322,7 +2322,7 @@ class SegmentWM(FSCommand): >>> SegmentWM_node = freesurfer.SegmentWM() >>> SegmentWM_node.inputs.in_file = "norm.mgz" >>> SegmentWM_node.inputs.out_file = "wm.seg.mgz" - >>> SegmentWM_node.cmdline # doctest: +ALLOW_UNICODE + >>> SegmentWM_node.cmdline 'mri_segment norm.mgz wm.seg.mgz' """ @@ -2366,7 +2366,7 @@ class EditWMwithAseg(FSCommand): >>> editwm.inputs.seg_file = "aseg.mgz" >>> editwm.inputs.out_file = "wm.asegedit.mgz" >>> editwm.inputs.keep_in = True - >>> editwm.cmdline # doctest: +ALLOW_UNICODE + >>> editwm.cmdline 'mri_edit_wm_with_aseg -keep-in T1.mgz norm.mgz aseg.mgz wm.asegedit.mgz' """ _cmd = 'mri_edit_wm_with_aseg' @@ -2433,7 +2433,7 @@ class ConcatenateLTA(FSCommand): >>> conc_lta = ConcatenateLTA() >>> conc_lta.inputs.in_lta1 = 'lta1.lta' >>> conc_lta.inputs.in_lta2 = 'lta2.lta' - >>> conc_lta.cmdline # doctest: +ALLOW_UNICODE + >>> conc_lta.cmdline 'mri_concatenate_lta lta1.lta lta2.lta lta1_concat.lta' You can use 'identity.nofile' as the filename for in_lta2, e.g.: @@ -2441,13 +2441,13 @@ class ConcatenateLTA(FSCommand): >>> conc_lta.inputs.in_lta2 = 'identity.nofile' >>> conc_lta.inputs.invert_1 = True >>> conc_lta.inputs.out_file = 'inv1.lta' - >>> conc_lta.cmdline # doctest: +ALLOW_UNICODE + >>> conc_lta.cmdline 'mri_concatenate_lta -invert1 lta1.lta identity.nofile inv1.lta' To create a RAS2RAS transform: >>> conc_lta.inputs.out_type = 'RAS2RAS' - >>> conc_lta.cmdline # doctest: +ALLOW_UNICODE + >>> conc_lta.cmdline 'mri_concatenate_lta -invert1 -out_type 1 lta1.lta identity.nofile inv1.lta' """ diff --git a/nipype/interfaces/freesurfer/registration.py b/nipype/interfaces/freesurfer/registration.py index 72a3fdb0ee..60a10b4c11 100644 --- a/nipype/interfaces/freesurfer/registration.py +++ b/nipype/interfaces/freesurfer/registration.py @@ -204,7 +204,7 @@ class EMRegister(FSCommandOpenMP): >>> register.inputs.out_file = 'norm_transform.lta' >>> register.inputs.skull = True >>> register.inputs.nbrspacing = 9 - >>> register.cmdline # doctest: +ALLOW_UNICODE + >>> register.cmdline 'mri_em_register -uns 9 -skull norm.mgz aseg.mgz norm_transform.lta' """ _cmd = 'mri_em_register' @@ -254,7 +254,7 @@ class Register(FSCommand): >>> register.inputs.target = 'aseg.mgz' >>> register.inputs.out_file = 'lh.pial.reg' >>> register.inputs.curv = True - >>> register.cmdline # doctest: +ALLOW_UNICODE + >>> register.cmdline 'mris_register -curv lh.pial aseg.mgz lh.pial.reg' """ @@ -320,7 +320,7 @@ class Paint(FSCommand): >>> paint.inputs.template = 'aseg.mgz' >>> paint.inputs.averages = 5 >>> paint.inputs.out_file = 'lh.avg_curv' - >>> paint.cmdline # doctest: +ALLOW_UNICODE + >>> paint.cmdline 'mrisp_paint -a 5 aseg.mgz lh.pial lh.avg_curv' """ @@ -437,7 +437,7 @@ class MRICoreg(FSCommand): >>> coreg.inputs.source_file = 'moving1.nii' >>> coreg.inputs.reference_file = 'fixed1.nii' >>> coreg.inputs.subjects_dir = '.' - >>> coreg.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS + >>> coreg.cmdline # doctest: +ELLIPSIS 'mri_coreg --lta .../registration.lta --ref fixed1.nii --mov moving1.nii --sd .' If passing a subject ID, the reference mask may be disabled: @@ -447,17 +447,17 @@ class MRICoreg(FSCommand): >>> coreg.inputs.subjects_dir = '.' >>> coreg.inputs.subject_id = 'fsaverage' >>> coreg.inputs.reference_mask = False - >>> coreg.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS + >>> coreg.cmdline # doctest: +ELLIPSIS 'mri_coreg --s fsaverage --no-ref-mask --lta .../registration.lta --mov moving1.nii --sd .' Spatial scales may be specified as a list of one or two separations: >>> coreg.inputs.sep = [4] - >>> coreg.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS + >>> coreg.cmdline # doctest: +ELLIPSIS 'mri_coreg --s fsaverage --no-ref-mask --lta .../registration.lta --sep 4 --mov moving1.nii --sd .' >>> coreg.inputs.sep = [4, 5] - >>> coreg.cmdline # doctest: +ALLOW_UNICODE +ELLIPSIS + >>> coreg.cmdline # doctest: +ELLIPSIS 'mri_coreg --s fsaverage --no-ref-mask --lta .../registration.lta --sep 4 --sep 5 --mov moving1.nii --sd .' """ diff --git a/nipype/interfaces/freesurfer/utils.py b/nipype/interfaces/freesurfer/utils.py index e71edb3e5c..b5cd404b30 100644 --- a/nipype/interfaces/freesurfer/utils.py +++ b/nipype/interfaces/freesurfer/utils.py @@ -196,7 +196,7 @@ class SampleToSurface(FSCommand): >>> sampler.inputs.sampling_method = "average" >>> sampler.inputs.sampling_range = 1 >>> sampler.inputs.sampling_units = "frac" - >>> sampler.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> sampler.cmdline # doctest: +ELLIPSIS 'mri_vol2surf --hemi lh --o ...lh.cope1.mgz --reg register.dat --projfrac-avg 1.000 --mov cope1.nii.gz' >>> res = sampler.run() # doctest: +SKIP @@ -326,7 +326,7 @@ class SurfaceSmooth(FSCommand): >>> smoother.inputs.subject_id = "subj_1" >>> smoother.inputs.hemi = "lh" >>> smoother.inputs.fwhm = 5 - >>> smoother.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> smoother.cmdline # doctest: +ELLIPSIS 'mri_surf2surf --cortex --fwhm 5.0000 --hemi lh --sval lh.cope1.mgz --tval ...lh.cope1_smooth5.mgz --s subj_1' >>> smoother.run() # doctest: +SKIP @@ -518,7 +518,7 @@ class Surface2VolTransform(FSCommand): >>> xfm2vol.inputs.hemi = 'lh' >>> xfm2vol.inputs.template_file = 'cope1.nii.gz' >>> xfm2vol.inputs.subjects_dir = '.' - >>> xfm2vol.cmdline # doctest: +ALLOW_UNICODE + >>> xfm2vol.cmdline 'mri_surf2vol --hemi lh --volreg register.mat --surfval lh.cope1.mgz --sd . --template cope1.nii.gz --outvol lh.cope1_asVol.nii --vtxvol lh.cope1_asVol_vertex.nii' >>> res = xfm2vol.run()# doctest: +SKIP @@ -995,7 +995,7 @@ class MRIsCombine(FSSurfaceCommand): >>> mris = fs.MRIsCombine() >>> mris.inputs.in_files = ['lh.pial', 'rh.pial'] >>> mris.inputs.out_file = 'bh.pial' - >>> mris.cmdline # doctest: +ALLOW_UNICODE + >>> mris.cmdline 'mris_convert --combinesurfs lh.pial rh.pial bh.pial' >>> mris.run() # doctest: +SKIP """ @@ -1124,7 +1124,7 @@ class MRIPretess(FSCommand): >>> pretess.inputs.in_filled = 'wm.mgz' >>> pretess.inputs.in_norm = 'norm.mgz' >>> pretess.inputs.nocorners = True - >>> pretess.cmdline # doctest: +ALLOW_UNICODE + >>> pretess.cmdline 'mri_pretess -nocorners wm.mgz wm norm.mgz wm_pretesswm.mgz' >>> pretess.run() # doctest: +SKIP @@ -1294,7 +1294,7 @@ class MakeAverageSubject(FSCommand): >>> from nipype.interfaces.freesurfer import MakeAverageSubject >>> avg = MakeAverageSubject(subjects_ids=['s1', 's2']) - >>> avg.cmdline # doctest: +ALLOW_UNICODE + >>> avg.cmdline 'make_average_subject --out average --subjects s1 s2' """ @@ -1329,7 +1329,7 @@ class ExtractMainComponent(CommandLine): >>> from nipype.interfaces.freesurfer import ExtractMainComponent >>> mcmp = ExtractMainComponent(in_file='lh.pial') - >>> mcmp.cmdline # doctest: +ALLOW_UNICODE + >>> mcmp.cmdline 'mris_extract_main_component lh.pial lh.maincmp' """ @@ -1404,7 +1404,7 @@ class Tkregister2(FSCommand): >>> tk2.inputs.moving_image = 'T1.mgz' >>> tk2.inputs.target_image = 'structural.nii' >>> tk2.inputs.reg_header = True - >>> tk2.cmdline # doctest: +ALLOW_UNICODE + >>> tk2.cmdline 'tkregister2 --mov T1.mgz --noedit --reg T1_to_native.dat --regheader \ --targ structural.nii' >>> tk2.run() # doctest: +SKIP @@ -1417,7 +1417,7 @@ class Tkregister2(FSCommand): >>> tk2 = Tkregister2() >>> tk2.inputs.moving_image = 'epi.nii' >>> tk2.inputs.fsl_in_matrix = 'flirt.mat' - >>> tk2.cmdline # doctest: +ALLOW_UNICODE + >>> tk2.cmdline 'tkregister2 --fsl flirt.mat --mov epi.nii --noedit --reg register.dat' >>> tk2.run() # doctest: +SKIP """ @@ -1494,11 +1494,11 @@ class AddXFormToHeader(FSCommand): >>> adder = AddXFormToHeader() >>> adder.inputs.in_file = 'norm.mgz' >>> adder.inputs.transform = 'trans.mat' - >>> adder.cmdline # doctest: +ALLOW_UNICODE + >>> adder.cmdline 'mri_add_xform_to_header trans.mat norm.mgz output.mgz' >>> adder.inputs.copy_name = True - >>> adder.cmdline # doctest: +ALLOW_UNICODE + >>> adder.cmdline 'mri_add_xform_to_header -c trans.mat norm.mgz output.mgz' >>> adder.run() # doctest: +SKIP @@ -1552,7 +1552,7 @@ class CheckTalairachAlignment(FSCommand): >>> checker.inputs.in_file = 'trans.mat' >>> checker.inputs.threshold = 0.005 - >>> checker.cmdline # doctest: +ALLOW_UNICODE + >>> checker.cmdline 'talairach_afd -T 0.005 -xfm trans.mat' >>> checker.run() # doctest: +SKIP @@ -1601,7 +1601,7 @@ class TalairachAVI(FSCommand): >>> example = TalairachAVI() >>> example.inputs.in_file = 'norm.mgz' >>> example.inputs.out_file = 'trans.mat' - >>> example.cmdline # doctest: +ALLOW_UNICODE + >>> example.cmdline 'talairach_avi --i norm.mgz --xfm trans.mat' >>> example.run() # doctest: +SKIP @@ -1632,7 +1632,7 @@ class TalairachQC(FSScriptCommand): >>> from nipype.interfaces.freesurfer import TalairachQC >>> qc = TalairachQC() >>> qc.inputs.log_file = 'dirs.txt' - >>> qc.cmdline # doctest: +ALLOW_UNICODE + >>> qc.cmdline 'tal_QC_AZS dirs.txt' """ _cmd = "tal_QC_AZS" @@ -1671,7 +1671,7 @@ class RemoveNeck(FSCommand): >>> remove_neck.inputs.in_file = 'norm.mgz' >>> remove_neck.inputs.transform = 'trans.mat' >>> remove_neck.inputs.template = 'trans.mat' - >>> remove_neck.cmdline # doctest: +ALLOW_UNICODE + >>> remove_neck.cmdline 'mri_remove_neck norm.mgz trans.mat trans.mat norm_noneck.mgz' """ _cmd = "mri_remove_neck" @@ -1811,7 +1811,7 @@ class Sphere(FSCommandOpenMP): >>> from nipype.interfaces.freesurfer import Sphere >>> sphere = Sphere() >>> sphere.inputs.in_file = 'lh.pial' - >>> sphere.cmdline # doctest: +ALLOW_UNICODE + >>> sphere.cmdline 'mris_sphere lh.pial lh.sphere' """ _cmd = 'mris_sphere' @@ -1935,7 +1935,7 @@ class EulerNumber(FSCommand): >>> from nipype.interfaces.freesurfer import EulerNumber >>> ft = EulerNumber() >>> ft.inputs.in_file = 'lh.pial' - >>> ft.cmdline # doctest: +ALLOW_UNICODE + >>> ft.cmdline 'mris_euler_number lh.pial' """ _cmd = 'mris_euler_number' @@ -1971,7 +1971,7 @@ class RemoveIntersection(FSCommand): >>> from nipype.interfaces.freesurfer import RemoveIntersection >>> ri = RemoveIntersection() >>> ri.inputs.in_file = 'lh.pial' - >>> ri.cmdline # doctest: +ALLOW_UNICODE + >>> ri.cmdline 'mris_remove_intersection lh.pial lh.pial' """ @@ -2067,7 +2067,7 @@ class MakeSurfaces(FSCommand): >>> makesurfaces.inputs.in_label = 'aparc+aseg.nii' >>> makesurfaces.inputs.in_T1 = 'T1.mgz' >>> makesurfaces.inputs.orig_pial = 'lh.pial' - >>> makesurfaces.cmdline # doctest: +ALLOW_UNICODE + >>> makesurfaces.cmdline 'mris_make_surfaces -T1 T1.mgz -orig pial -orig_pial pial 10335 lh' """ @@ -2200,7 +2200,7 @@ class Curvature(FSCommand): >>> curv = Curvature() >>> curv.inputs.in_file = 'lh.pial' >>> curv.inputs.save = True - >>> curv.cmdline # doctest: +ALLOW_UNICODE + >>> curv.cmdline 'mris_curvature -w lh.pial' """ @@ -2294,7 +2294,7 @@ class CurvatureStats(FSCommand): >>> curvstats.inputs.values = True >>> curvstats.inputs.min_max = True >>> curvstats.inputs.write = True - >>> curvstats.cmdline # doctest: +ALLOW_UNICODE + >>> curvstats.cmdline 'mris_curvature_stats -m -o lh.curv.stats -F pial -G --writeCurvatureFiles subject_id lh pial pial' """ @@ -2351,7 +2351,7 @@ class Jacobian(FSCommand): >>> jacobian = Jacobian() >>> jacobian.inputs.in_origsurf = 'lh.pial' >>> jacobian.inputs.in_mappedsurf = 'lh.pial' - >>> jacobian.cmdline # doctest: +ALLOW_UNICODE + >>> jacobian.cmdline 'mris_jacobian lh.pial lh.pial lh.jacobian' """ @@ -2488,7 +2488,7 @@ class VolumeMask(FSCommand): >>> volmask.inputs.rh_white = 'lh.pial' >>> volmask.inputs.subject_id = '10335' >>> volmask.inputs.save_ribbon = True - >>> volmask.cmdline # doctest: +ALLOW_UNICODE + >>> volmask.cmdline 'mris_volmask --label_left_ribbon 3 --label_left_white 2 --label_right_ribbon 42 --label_right_white 41 --save_ribbon 10335' """ @@ -2828,7 +2828,7 @@ class RelabelHypointensities(FSCommand): >>> relabelhypos.inputs.rh_white = 'lh.pial' >>> relabelhypos.inputs.surf_directory = '.' >>> relabelhypos.inputs.aseg = 'aseg.mgz' - >>> relabelhypos.cmdline # doctest: +ALLOW_UNICODE + >>> relabelhypos.cmdline 'mri_relabel_hypointensities aseg.mgz . aseg.hypos.mgz' """ @@ -2999,7 +2999,7 @@ class Apas2Aseg(FSCommand): >>> apas2aseg = Apas2Aseg() >>> apas2aseg.inputs.in_file = 'aseg.mgz' >>> apas2aseg.inputs.out_file = 'output.mgz' - >>> apas2aseg.cmdline # doctest: +ALLOW_UNICODE + >>> apas2aseg.cmdline 'apas2aseg --i aseg.mgz --o output.mgz' """ @@ -3081,10 +3081,10 @@ class MRIsExpand(FSSurfaceCommand): >>> from nipype.interfaces.freesurfer import MRIsExpand >>> mris_expand = MRIsExpand(thickness=True, distance=0.5) >>> mris_expand.inputs.in_file = 'lh.white' - >>> mris_expand.cmdline # doctest: +ALLOW_UNICODE + >>> mris_expand.cmdline 'mris_expand -thickness lh.white 0.5 expanded' >>> mris_expand.inputs.out_name = 'graymid' - >>> mris_expand.cmdline # doctest: +ALLOW_UNICODE + >>> mris_expand.cmdline 'mris_expand -thickness lh.white 0.5 graymid' """ _cmd = 'mris_expand' diff --git a/nipype/interfaces/fsl/aroma.py b/nipype/interfaces/fsl/aroma.py index 02df37d9a2..fb8dc82bd8 100644 --- a/nipype/interfaces/fsl/aroma.py +++ b/nipype/interfaces/fsl/aroma.py @@ -95,7 +95,7 @@ class ICA_AROMA(CommandLine): >>> AROMA_obj.inputs.mask = 'mask.nii.gz' >>> AROMA_obj.inputs.denoise_type = 'both' >>> AROMA_obj.inputs.out_dir = 'ICA_testout' - >>> AROMA_obj.cmdline # doctest: +ALLOW_UNICODE + >>> AROMA_obj.cmdline 'ICA_AROMA.py -den both -warp warpfield.nii -i functional.nii -m mask.nii.gz -affmat func_to_struct.mat -mc fsl_mcflirt_movpar.txt -o ICA_testout' """ _cmd = 'ICA_AROMA.py' diff --git a/nipype/interfaces/fsl/dti.py b/nipype/interfaces/fsl/dti.py index 9d74a3fafe..812515fcda 100644 --- a/nipype/interfaces/fsl/dti.py +++ b/nipype/interfaces/fsl/dti.py @@ -85,7 +85,7 @@ class DTIFit(FSLCommand): >>> dti.inputs.bvals = 'bvals' >>> dti.inputs.base_name = 'TP' >>> dti.inputs.mask = 'mask.nii' - >>> dti.cmdline # doctest: +ALLOW_UNICODE + >>> dti.cmdline 'dtifit -k diffusion.nii -o TP -m mask.nii -r bvecs -b bvals' """ @@ -327,7 +327,7 @@ class BEDPOSTX5(FSLXCommand): >>> from nipype.interfaces import fsl >>> bedp = fsl.BEDPOSTX5(bvecs='bvecs', bvals='bvals', dwi='diffusion.nii', ... mask='mask.nii', n_fibres=1) - >>> bedp.cmdline # doctest: +ALLOW_UNICODE + >>> bedp.cmdline 'bedpostx bedpostx --forcedir -n 1' """ @@ -583,7 +583,7 @@ class ProbTrackX(FSLCommand): target_masks = ['targets_MASK1.nii', 'targets_MASK2.nii'], \ thsamples='merged_thsamples.nii', fsamples='merged_fsamples.nii', phsamples='merged_phsamples.nii', \ out_dir='.') - >>> pbx.cmdline # doctest: +ALLOW_UNICODE + >>> pbx.cmdline 'probtrackx --forcedir -m mask.nii --mode=seedmask --nsamples=3 --nsteps=10 --opd --os2t --dir=. --samples=merged --seed=MASK_average_thal_right.nii --targetmasks=targets.txt --xfm=trans.mat' """ @@ -780,7 +780,7 @@ class ProbTrackX2(ProbTrackX): >>> pbx2.inputs.out_dir = '.' >>> pbx2.inputs.n_samples = 3 >>> pbx2.inputs.n_steps = 10 - >>> pbx2.cmdline # doctest: +ALLOW_UNICODE + >>> pbx2.cmdline 'probtrackx2 --forcedir -m nodif_brain_mask.nii.gz --nsamples=3 --nsteps=10 --opd --dir=. --samples=merged --seed=seed_source.nii.gz' """ _cmd = 'probtrackx2' @@ -871,7 +871,7 @@ class VecReg(FSLCommand): affine_mat='trans.mat', \ ref_vol='mni.nii', \ out_file='diffusion_vreg.nii') - >>> vreg.cmdline # doctest: +ALLOW_UNICODE + >>> vreg.cmdline 'vecreg -t trans.mat -i diffusion.nii -o diffusion_vreg.nii -r mni.nii' """ @@ -932,7 +932,7 @@ class ProjThresh(FSLCommand): >>> from nipype.interfaces import fsl >>> ldir = ['seeds_to_M1.nii', 'seeds_to_M2.nii'] >>> pThresh = fsl.ProjThresh(in_files=ldir, threshold=3) - >>> pThresh.cmdline # doctest: +ALLOW_UNICODE + >>> pThresh.cmdline 'proj_thresh seeds_to_M1.nii seeds_to_M2.nii 3' """ @@ -980,7 +980,7 @@ class FindTheBiggest(FSLCommand): >>> from nipype.interfaces import fsl >>> ldir = ['seeds_to_M1.nii', 'seeds_to_M2.nii'] >>> fBig = fsl.FindTheBiggest(in_files=ldir, out_file='biggestSegmentation') - >>> fBig.cmdline # doctest: +ALLOW_UNICODE + >>> fBig.cmdline 'find_the_biggest seeds_to_M1.nii seeds_to_M2.nii biggestSegmentation' """ diff --git a/nipype/interfaces/fsl/epi.py b/nipype/interfaces/fsl/epi.py index 5978ee492d..0beb60b3c0 100644 --- a/nipype/interfaces/fsl/epi.py +++ b/nipype/interfaces/fsl/epi.py @@ -71,7 +71,7 @@ class PrepareFieldmap(FSLCommand): >>> prepare.inputs.in_phase = "phase.nii" >>> prepare.inputs.in_magnitude = "magnitude.nii" >>> prepare.inputs.output_type = "NIFTI_GZ" - >>> prepare.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> prepare.cmdline # doctest: +ELLIPSIS 'fsl_prepare_fieldmap SIEMENS phase.nii magnitude.nii \ .../phase_fslprepared.nii.gz 2.460000' >>> res = prepare.run() # doctest: +SKIP @@ -247,7 +247,7 @@ class TOPUP(FSLCommand): >>> topup.inputs.in_file = "b0_b0rev.nii" >>> topup.inputs.encoding_file = "topup_encoding.txt" >>> topup.inputs.output_type = "NIFTI_GZ" - >>> topup.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> topup.cmdline # doctest: +ELLIPSIS 'topup --config=b02b0.cnf --datain=topup_encoding.txt \ --imain=b0_b0rev.nii --out=b0_b0rev_base --iout=b0_b0rev_corrected.nii.gz \ --fout=b0_b0rev_field.nii.gz --jacout=jac --logout=b0_b0rev_topup.log \ @@ -389,7 +389,7 @@ class ApplyTOPUP(FSLCommand): >>> applytopup.inputs.in_topup_fieldcoef = "topup_fieldcoef.nii.gz" >>> applytopup.inputs.in_topup_movpar = "topup_movpar.txt" >>> applytopup.inputs.output_type = "NIFTI_GZ" - >>> applytopup.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> applytopup.cmdline # doctest: +ELLIPSIS 'applytopup --datain=topup_encoding.txt --imain=epi.nii,epi_rev.nii \ --inindex=1,2 --topup=topup --out=epi_corrected.nii.gz' >>> res = applytopup.run() # doctest: +SKIP @@ -545,12 +545,12 @@ class Eddy(FSLCommand): >>> eddy.inputs.in_bvec = 'bvecs.scheme' >>> eddy.inputs.in_bval = 'bvals.scheme' >>> eddy.inputs.use_cuda = True - >>> eddy.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> eddy.cmdline # doctest: +ELLIPSIS 'eddy_cuda --acqp=epi_acqp.txt --bvals=bvals.scheme --bvecs=bvecs.scheme \ --imain=epi.nii --index=epi_index.txt --mask=epi_mask.nii \ --out=.../eddy_corrected' >>> eddy.inputs.use_cuda = False - >>> eddy.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> eddy.cmdline # doctest: +ELLIPSIS 'eddy_openmp --acqp=epi_acqp.txt --bvals=bvals.scheme \ --bvecs=bvecs.scheme --imain=epi.nii --index=epi_index.txt \ --mask=epi_mask.nii --out=.../eddy_corrected' @@ -679,7 +679,7 @@ class SigLoss(FSLCommand): >>> sigloss.inputs.in_file = "phase.nii" >>> sigloss.inputs.echo_time = 0.03 >>> sigloss.inputs.output_type = "NIFTI_GZ" - >>> sigloss.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> sigloss.cmdline # doctest: +ELLIPSIS 'sigloss --te=0.030000 -i phase.nii -s .../phase_sigloss.nii.gz' >>> res = sigloss.run() # doctest: +SKIP @@ -784,7 +784,7 @@ class EpiReg(FSLCommand): >>> epireg.inputs.fmapmagbrain='fieldmap_mag_brain.nii' >>> epireg.inputs.echospacing=0.00067 >>> epireg.inputs.pedir='y' - >>> epireg.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> epireg.cmdline # doctest: +ELLIPSIS 'epi_reg --echospacing=0.000670 --fmap=fieldmap_phase_fslprepared.nii \ --fmapmag=fieldmap_mag.nii --fmapmagbrain=fieldmap_mag_brain.nii --noclean \ --pedir=y --epi=epi.nii --t1=T1.nii --t1brain=T1_brain.nii --out=epi2struct' @@ -895,7 +895,7 @@ class EPIDeWarp(FSLCommand): >>> dewarp.inputs.mag_file = "magnitude.nii" >>> dewarp.inputs.dph_file = "phase.nii" >>> dewarp.inputs.output_type = "NIFTI_GZ" - >>> dewarp.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> dewarp.cmdline # doctest: +ELLIPSIS 'epidewarp.fsl --mag magnitude.nii --dph phase.nii --epi functional.nii \ --esp 0.58 --exfdw .../exfdw.nii.gz --nocleanup --sigma 2 --tediff 2.46 \ --tmpdir .../temp --vsm .../vsm.nii.gz' @@ -988,7 +988,7 @@ class EddyCorrect(FSLCommand): >>> from nipype.interfaces.fsl import EddyCorrect >>> eddyc = EddyCorrect(in_file='diffusion.nii', ... out_file="diffusion_edc.nii", ref_num=0) - >>> eddyc.cmdline # doctest: +ALLOW_UNICODE + >>> eddyc.cmdline 'eddy_correct diffusion.nii diffusion_edc.nii 0' """ diff --git a/nipype/interfaces/fsl/maths.py b/nipype/interfaces/fsl/maths.py index 588f7caf95..f403c5c402 100644 --- a/nipype/interfaces/fsl/maths.py +++ b/nipype/interfaces/fsl/maths.py @@ -439,7 +439,7 @@ class MultiImageMaths(MathsCommand): >>> maths.inputs.op_string = "-add %s -mul -1 -div %s" >>> maths.inputs.operand_files = ["functional2.nii", "functional3.nii"] >>> maths.inputs.out_file = "functional4.nii" - >>> maths.cmdline # doctest: +ALLOW_UNICODE + >>> maths.cmdline 'fslmaths functional.nii -add functional2.nii -mul -1 -div functional3.nii functional4.nii' """ diff --git a/nipype/interfaces/fsl/model.py b/nipype/interfaces/fsl/model.py index b4d3fb56f8..701ee757db 100644 --- a/nipype/interfaces/fsl/model.py +++ b/nipype/interfaces/fsl/model.py @@ -934,7 +934,7 @@ class FLAMEO(FSLCommand): >>> flameo.inputs.t_con_file = 'design.con' >>> flameo.inputs.mask_file = 'mask.nii' >>> flameo.inputs.run_mode = 'fe' - >>> flameo.cmdline # doctest: +ALLOW_UNICODE + >>> flameo.cmdline 'flameo --copefile=cope.nii.gz --covsplitfile=cov_split.mat --designfile=design.mat --ld=stats --maskfile=mask.nii --runmode=fe --tcontrastsfile=design.con --varcopefile=varcope.nii.gz' """ @@ -1601,7 +1601,7 @@ class MELODIC(FSLCommand): >>> melodic_setup.inputs.s_des = 'subjectDesign.mat' >>> melodic_setup.inputs.s_con = 'subjectDesign.con' >>> melodic_setup.inputs.out_dir = 'groupICA.out' - >>> melodic_setup.cmdline # doctest: +ALLOW_UNICODE + >>> melodic_setup.cmdline 'melodic -i functional.nii,functional2.nii,functional3.nii -a tica --bgthreshold=10.000000 --mmthresh=0.500000 --nobet -o groupICA.out --Ostats --Scon=subjectDesign.con --Sdes=subjectDesign.mat --Tcon=timeDesign.con --Tdes=timeDesign.mat --tr=1.500000' >>> melodic_setup.run() # doctest: +SKIP @@ -1657,7 +1657,7 @@ class SmoothEstimate(FSLCommand): >>> est = SmoothEstimate() >>> est.inputs.zstat_file = 'zstat1.nii.gz' >>> est.inputs.mask_file = 'mask.nii' - >>> est.cmdline # doctest: +ALLOW_UNICODE + >>> est.cmdline 'smoothest --mask=mask.nii --zstat=zstat1.nii.gz' """ @@ -1773,7 +1773,7 @@ class Cluster(FSLCommand): >>> cl.inputs.in_file = 'zstat1.nii.gz' >>> cl.inputs.out_localmax_txt_file = 'stats.txt' >>> cl.inputs.use_mm = True - >>> cl.cmdline # doctest: +ALLOW_UNICODE + >>> cl.cmdline 'cluster --in=zstat1.nii.gz --olmax=stats.txt --thresh=2.3000000000 --mm' """ @@ -1859,7 +1859,7 @@ class DualRegression(FSLCommand): >>> dual_regression.inputs.one_sample_group_mean = True >>> dual_regression.inputs.n_perm = 10 >>> dual_regression.inputs.out_dir = "my_output_directory" - >>> dual_regression.cmdline # doctest: +ALLOW_UNICODE + >>> dual_regression.cmdline u'dual_regression allFA.nii 0 -1 10 my_output_directory functional.nii functional2.nii functional3.nii' >>> dual_regression.run() # doctest: +SKIP @@ -1977,7 +1977,7 @@ class Randomise(FSLCommand): ------- >>> import nipype.interfaces.fsl as fsl >>> rand = fsl.Randomise(in_file='allFA.nii', mask = 'mask.nii', tcon='design.con', design_mat='design.mat') - >>> rand.cmdline # doctest: +ALLOW_UNICODE + >>> rand.cmdline 'randomise -i allFA.nii -o "tbss_" -d design.mat -t design.con -m mask.nii' """ @@ -2122,7 +2122,7 @@ class GLM(FSLCommand): ------- >>> import nipype.interfaces.fsl as fsl >>> glm = fsl.GLM(in_file='functional.nii', design='maps.nii', output_type='NIFTI') - >>> glm.cmdline # doctest: +ALLOW_UNICODE + >>> glm.cmdline 'fsl_glm -i functional.nii -d maps.nii -o functional_glm.nii' """ diff --git a/nipype/interfaces/fsl/possum.py b/nipype/interfaces/fsl/possum.py index 20efefbf2c..1c2b10e1d2 100644 --- a/nipype/interfaces/fsl/possum.py +++ b/nipype/interfaces/fsl/possum.py @@ -80,7 +80,7 @@ class B0Calc(FSLCommand): >>> b0calc.inputs.in_file = 'tissue+air_map.nii' >>> b0calc.inputs.z_b0 = 3.0 >>> b0calc.inputs.output_type = "NIFTI_GZ" - >>> b0calc.cmdline # doctest: +ALLOW_UNICODE + >>> b0calc.cmdline 'b0calc -i tissue+air_map.nii -o tissue+air_map_b0field.nii.gz --b0=3.00' """ diff --git a/nipype/interfaces/fsl/preprocess.py b/nipype/interfaces/fsl/preprocess.py index b96c0b6acd..4ffeead842 100644 --- a/nipype/interfaces/fsl/preprocess.py +++ b/nipype/interfaces/fsl/preprocess.py @@ -127,7 +127,7 @@ class BET(FSLCommand): >>> btr.inputs.in_file = 'structural.nii' >>> btr.inputs.frac = 0.7 >>> btr.inputs.out_file = 'brain_anat.nii' - >>> btr.cmdline # doctest: +ALLOW_UNICODE + >>> btr.cmdline 'bet structural.nii brain_anat.nii -f 0.70' >>> res = btr.run() # doctest: +SKIP @@ -298,7 +298,7 @@ class FAST(FSLCommand): >>> fastr = fsl.FAST() >>> fastr.inputs.in_files = 'structural.nii' >>> fastr.inputs.out_basename = 'fast_' - >>> fastr.cmdline # doctest: +ALLOW_UNICODE + >>> fastr.cmdline 'fast -o fast_ -S 1 structural.nii' >>> out = fastr.run() # doctest: +SKIP @@ -541,7 +541,7 @@ class FLIRT(FSLCommand): >>> flt.inputs.in_file = 'structural.nii' >>> flt.inputs.reference = 'mni.nii' >>> flt.inputs.output_type = "NIFTI_GZ" - >>> flt.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> flt.cmdline # doctest: +ELLIPSIS 'flirt -in structural.nii -ref mni.nii -out structural_flirt.nii.gz -omat structural_flirt.mat -bins 640 -searchcost mutualinfo' >>> res = flt.run() #doctest: +SKIP @@ -674,7 +674,7 @@ class MCFLIRT(FSLCommand): >>> mcflt.inputs.in_file = 'functional.nii' >>> mcflt.inputs.cost = 'mutualinfo' >>> mcflt.inputs.out_file = 'moco.nii' - >>> mcflt.cmdline # doctest: +ALLOW_UNICODE + >>> mcflt.cmdline 'mcflirt -in functional.nii -cost mutualinfo -out moco.nii' >>> res = mcflt.run() # doctest: +SKIP @@ -1397,7 +1397,7 @@ class FUGUE(FSLCommand): >>> fugue.inputs.shift_in_file = 'vsm.nii' # Previously computed with fugue as well >>> fugue.inputs.unwarp_direction = 'y' >>> fugue.inputs.output_type = "NIFTI_GZ" - >>> fugue.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> fugue.cmdline # doctest: +ELLIPSIS 'fugue --in=epi.nii --mask=epi_mask.nii --loadshift=vsm.nii --unwarpdir=y --unwarp=epi_unwarped.nii.gz' >>> fugue.run() #doctest: +SKIP @@ -1412,7 +1412,7 @@ class FUGUE(FSLCommand): >>> fugue.inputs.shift_in_file = 'vsm.nii' # Previously computed with fugue as well >>> fugue.inputs.unwarp_direction = 'y' >>> fugue.inputs.output_type = "NIFTI_GZ" - >>> fugue.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> fugue.cmdline # doctest: +ELLIPSIS 'fugue --in=epi.nii --mask=epi_mask.nii --loadshift=vsm.nii --unwarpdir=y --warp=epi_warped.nii.gz' >>> fugue.run() #doctest: +SKIP @@ -1427,7 +1427,7 @@ class FUGUE(FSLCommand): >>> fugue.inputs.unwarp_direction = 'y' >>> fugue.inputs.save_shift = True >>> fugue.inputs.output_type = "NIFTI_GZ" - >>> fugue.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> fugue.cmdline # doctest: +ELLIPSIS 'fugue --dwelltoasym=0.9390243902 --mask=epi_mask.nii --phasemap=epi_phasediff.nii --saveshift=epi_phasediff_vsm.nii.gz --unwarpdir=y' >>> fugue.run() #doctest: +SKIP diff --git a/nipype/interfaces/fsl/utils.py b/nipype/interfaces/fsl/utils.py index 072895a719..b28a4df425 100644 --- a/nipype/interfaces/fsl/utils.py +++ b/nipype/interfaces/fsl/utils.py @@ -191,7 +191,7 @@ class Smooth(FSLCommand): >>> sm.inputs.output_type = 'NIFTI_GZ' >>> sm.inputs.in_file = 'functional2.nii' >>> sm.inputs.sigma = 8.0 - >>> sm.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> sm.cmdline # doctest: +ELLIPSIS 'fslmaths functional2.nii -kernel gauss 8.000 -fmean functional2_smooth.nii.gz' Setting the kernel width using fwhm: @@ -200,7 +200,7 @@ class Smooth(FSLCommand): >>> sm.inputs.output_type = 'NIFTI_GZ' >>> sm.inputs.in_file = 'functional2.nii' >>> sm.inputs.fwhm = 8.0 - >>> sm.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> sm.cmdline # doctest: +ELLIPSIS 'fslmaths functional2.nii -kernel gauss 3.397 -fmean functional2_smooth.nii.gz' One of sigma or fwhm must be set: @@ -263,10 +263,10 @@ class Merge(FSLCommand): >>> merger.inputs.in_files = ['functional2.nii', 'functional3.nii'] >>> merger.inputs.dimension = 't' >>> merger.inputs.output_type = 'NIFTI_GZ' - >>> merger.cmdline # doctest: +ALLOW_UNICODE + >>> merger.cmdline 'fslmerge -t functional2_merged.nii.gz functional2.nii functional3.nii' >>> merger.inputs.tr = 2.25 - >>> merger.cmdline # doctest: +ALLOW_UNICODE + >>> merger.cmdline 'fslmerge -tr functional2_merged.nii.gz functional2.nii functional3.nii 2.25' @@ -1187,7 +1187,7 @@ class ConvertXFM(FSLCommand): >>> invt.inputs.in_file = "flirt.mat" >>> invt.inputs.invert_xfm = True >>> invt.inputs.out_file = 'flirt_inv.mat' - >>> invt.cmdline # doctest: +ALLOW_UNICODE + >>> invt.cmdline 'convert_xfm -omat flirt_inv.mat -inverse flirt.mat' @@ -1492,7 +1492,7 @@ class InvWarp(FSLCommand): >>> invwarp.inputs.warp = "struct2mni.nii" >>> invwarp.inputs.reference = "anatomical.nii" >>> invwarp.inputs.output_type = "NIFTI_GZ" - >>> invwarp.cmdline # doctest: +ALLOW_UNICODE + >>> invwarp.cmdline 'invwarp --out=struct2mni_inverse.nii.gz --ref=anatomical.nii --warp=struct2mni.nii' >>> res = invwarp.run() # doctest: +SKIP @@ -1728,7 +1728,7 @@ class WarpUtils(FSLCommand): >>> warputils.inputs.out_format = 'spline' >>> warputils.inputs.warp_resolution = (10,10,10) >>> warputils.inputs.output_type = "NIFTI_GZ" - >>> warputils.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> warputils.cmdline # doctest: +ELLIPSIS 'fnirtfileutils --in=warpfield.nii --outformat=spline --ref=T1.nii --warpres=10.0000,10.0000,10.0000 --out=warpfield_coeffs.nii.gz' >>> res = invwarp.run() # doctest: +SKIP @@ -1880,7 +1880,7 @@ class ConvertWarp(FSLCommand): >>> warputils.inputs.reference = "T1.nii" >>> warputils.inputs.relwarp = True >>> warputils.inputs.output_type = "NIFTI_GZ" - >>> warputils.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> warputils.cmdline # doctest: +ELLIPSIS 'convertwarp --ref=T1.nii --rel --warp1=warpfield.nii --out=T1_concatwarp.nii.gz' >>> res = warputils.run() # doctest: +SKIP @@ -1940,7 +1940,7 @@ class WarpPoints(CommandLine): >>> warppoints.inputs.dest_file = 'T1.nii' >>> warppoints.inputs.warp_file = 'warpfield.nii' >>> warppoints.inputs.coord_mm = True - >>> warppoints.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> warppoints.cmdline # doctest: +ELLIPSIS 'img2imgcoord -mm -dest T1.nii -src epi.nii -warp warpfield.nii surf.txt' >>> res = warppoints.run() # doctest: +SKIP @@ -2100,7 +2100,7 @@ class WarpPointsToStd(WarpPoints): >>> warppoints.inputs.std_file = 'mni.nii' >>> warppoints.inputs.warp_file = 'warpfield.nii' >>> warppoints.inputs.coord_mm = True - >>> warppoints.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> warppoints.cmdline # doctest: +ELLIPSIS 'img2stdcoord -mm -img T1.nii -std mni.nii -warp warpfield.nii surf.txt' >>> res = warppoints.run() # doctest: +SKIP @@ -2148,7 +2148,7 @@ class WarpPointsFromStd(CommandLine): >>> warppoints.inputs.std_file = 'mni.nii' >>> warppoints.inputs.warp_file = 'warpfield.nii' >>> warppoints.inputs.coord_mm = True - >>> warppoints.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> warppoints.cmdline # doctest: +ELLIPSIS 'std2imgcoord -mm -img T1.nii -std mni.nii -warp warpfield.nii surf.txt' >>> res = warppoints.run() # doctest: +SKIP @@ -2217,7 +2217,7 @@ class MotionOutliers(FSLCommand): >>> from nipype.interfaces.fsl import MotionOutliers >>> mo = MotionOutliers() >>> mo.inputs.in_file = "epi.nii" - >>> mo.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> mo.cmdline # doctest: +ELLIPSIS 'fsl_motion_outliers -i epi.nii -o epi_outliers.txt -p epi_metrics.png -s epi_metrics.txt' >>> res = mo.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/io.py b/nipype/interfaces/io.py index 4d3220b044..4b4c8e5b2b 100644 --- a/nipype/interfaces/io.py +++ b/nipype/interfaces/io.py @@ -1222,7 +1222,7 @@ class SelectFiles(IOBase): ... "epi": "{subject_id}/func/f[0, 1].nii"} >>> dg = Node(SelectFiles(templates), "selectfiles") >>> dg.inputs.subject_id = "subj1" - >>> pprint.pprint(dg.outputs.get()) # doctest: +NORMALIZE_WHITESPACE +ALLOW_UNICODE + >>> pprint.pprint(dg.outputs.get()) # doctest: {'T1': , 'epi': } The same thing with dynamic grabbing of specific files: @@ -2482,11 +2482,11 @@ class JSONFileGrabber(IOBase): >>> jsonSource = JSONFileGrabber() >>> jsonSource.inputs.defaults = {'param1': 'overrideMe', 'param3': 1.0} >>> res = jsonSource.run() - >>> pprint.pprint(res.outputs.get()) # doctest: +ALLOW_UNICODE + >>> pprint.pprint(res.outputs.get()) {'param1': 'overrideMe', 'param3': 1.0} >>> jsonSource.inputs.in_file = 'jsongrabber.txt' >>> res = jsonSource.run() - >>> pprint.pprint(res.outputs.get()) # doctest: +NORMALIZE_WHITESPACE, +ELLIPSIS +ALLOW_UNICODE + >>> pprint.pprint(res.outputs.get()) # doctest:, +ELLIPSIS {'param1': 'exampleStr', 'param2': 4, 'param3': 1.0} diff --git a/nipype/interfaces/meshfix.py b/nipype/interfaces/meshfix.py index 6ae1859459..466190468a 100644 --- a/nipype/interfaces/meshfix.py +++ b/nipype/interfaces/meshfix.py @@ -105,7 +105,7 @@ class MeshFix(CommandLine): >>> fix.inputs.in_file1 = 'lh-pial.stl' >>> fix.inputs.in_file2 = 'rh-pial.stl' >>> fix.run() # doctest: +SKIP - >>> fix.cmdline # doctest: +ALLOW_UNICODE + >>> fix.cmdline 'meshfix lh-pial.stl rh-pial.stl -o lh-pial_fixed.off' """ _cmd = 'meshfix' diff --git a/nipype/interfaces/minc/base.py b/nipype/interfaces/minc/base.py index 6348e4ee0f..e4b8592adf 100644 --- a/nipype/interfaces/minc/base.py +++ b/nipype/interfaces/minc/base.py @@ -109,11 +109,11 @@ def aggregate_filename(files, new_suffix): >>> from nipype.interfaces.minc.base import aggregate_filename >>> f = aggregate_filename(['/tmp/foo1.mnc', '/tmp/foo2.mnc', '/tmp/foo3.mnc'], 'averaged') - >>> os.path.split(f)[1] # This has a full path, so just check the filename. # doctest: +ALLOW_UNICODE + >>> os.path.split(f)[1] # This has a full path, so just check the filename. 'foo_averaged.mnc' >>> f = aggregate_filename(['/tmp/foo1.mnc', '/tmp/blah1.mnc'], 'averaged') - >>> os.path.split(f)[1] # This has a full path, so just check the filename. # doctest: +ALLOW_UNICODE + >>> os.path.split(f)[1] # This has a full path, so just check the filename. 'foo1_averaged.mnc' """ diff --git a/nipype/interfaces/mne/base.py b/nipype/interfaces/mne/base.py index f2f3a70641..5196ddf5be 100644 --- a/nipype/interfaces/mne/base.py +++ b/nipype/interfaces/mne/base.py @@ -55,7 +55,7 @@ class WatershedBEM(FSCommand): >>> bem = WatershedBEM() >>> bem.inputs.subject_id = 'subj1' >>> bem.inputs.subjects_dir = '.' - >>> bem.cmdline # doctest: +ALLOW_UNICODE + >>> bem.cmdline 'mne_watershed_bem --overwrite --subject subj1 --volume T1' >>> bem.run() # doctest: +SKIP diff --git a/nipype/interfaces/mrtrix/preprocess.py b/nipype/interfaces/mrtrix/preprocess.py index 7ca6abd1fb..becee5088f 100644 --- a/nipype/interfaces/mrtrix/preprocess.py +++ b/nipype/interfaces/mrtrix/preprocess.py @@ -144,7 +144,7 @@ class DWI2Tensor(CommandLine): >>> dwi2tensor = mrt.DWI2Tensor() >>> dwi2tensor.inputs.in_file = 'dwi.mif' >>> dwi2tensor.inputs.encoding_file = 'encoding.txt' - >>> dwi2tensor.cmdline # doctest: +ALLOW_UNICODE + >>> dwi2tensor.cmdline 'dwi2tensor -grad encoding.txt dwi.mif dwi_tensor.mif' >>> dwi2tensor.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/mrtrix/tracking.py b/nipype/interfaces/mrtrix/tracking.py index 5fa39d38d3..5570a9b8d1 100644 --- a/nipype/interfaces/mrtrix/tracking.py +++ b/nipype/interfaces/mrtrix/tracking.py @@ -210,7 +210,7 @@ class StreamlineTrack(CommandLine): >>> strack.inputs.in_file = 'data.Bfloat' >>> strack.inputs.seed_file = 'seed_mask.nii' >>> strack.inputs.mask_file = 'mask.nii' - >>> strack.cmdline # doctest: +ALLOW_UNICODE + >>> strack.cmdline 'streamtrack -mask mask.nii -seed seed_mask.nii SD_PROB data.Bfloat data_tracked.tck' >>> strack.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/mrtrix3/connectivity.py b/nipype/interfaces/mrtrix3/connectivity.py index a2e7db355d..caa510e6e1 100644 --- a/nipype/interfaces/mrtrix3/connectivity.py +++ b/nipype/interfaces/mrtrix3/connectivity.py @@ -96,7 +96,7 @@ class BuildConnectome(MRTrix3Base): >>> mat = mrt.BuildConnectome() >>> mat.inputs.in_file = 'tracks.tck' >>> mat.inputs.in_parc = 'aparc+aseg.nii' - >>> mat.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> mat.cmdline # doctest: +ELLIPSIS 'tck2connectome tracks.tck aparc+aseg.nii connectome.csv' >>> mat.run() # doctest: +SKIP """ @@ -155,7 +155,7 @@ class LabelConfig(MRTrix3Base): >>> labels = mrt.LabelConfig() >>> labels.inputs.in_file = 'aparc+aseg.nii' >>> labels.inputs.in_config = 'mrtrix3_labelconfig.txt' - >>> labels.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> labels.cmdline # doctest: +ELLIPSIS 'labelconfig aparc+aseg.nii mrtrix3_labelconfig.txt parcellation.mif' >>> labels.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/mrtrix3/preprocess.py b/nipype/interfaces/mrtrix3/preprocess.py index 91ec44d1f0..141325e25b 100644 --- a/nipype/interfaces/mrtrix3/preprocess.py +++ b/nipype/interfaces/mrtrix3/preprocess.py @@ -96,7 +96,7 @@ class ResponseSD(MRTrix3Base): >>> resp.inputs.in_file = 'dwi.mif' >>> resp.inputs.in_mask = 'mask.nii.gz' >>> resp.inputs.grad_fsl = ('bvecs', 'bvals') - >>> resp.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> resp.cmdline # doctest: +ELLIPSIS 'dwi2response -fslgrad bvecs bvals -mask mask.nii.gz dwi.mif response.txt' >>> resp.run() # doctest: +SKIP """ @@ -139,7 +139,7 @@ class ACTPrepareFSL(CommandLine): >>> import nipype.interfaces.mrtrix3 as mrt >>> prep = mrt.ACTPrepareFSL() >>> prep.inputs.in_file = 'T1.nii.gz' - >>> prep.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> prep.cmdline # doctest: +ELLIPSIS 'act_anat_prepare_fsl T1.nii.gz act_5tt.mif' >>> prep.run() # doctest: +SKIP """ @@ -185,7 +185,7 @@ class ReplaceFSwithFIRST(CommandLine): >>> prep.inputs.in_file = 'aparc+aseg.nii' >>> prep.inputs.in_t1w = 'T1.nii.gz' >>> prep.inputs.in_config = 'mrtrix3_labelconfig.txt' - >>> prep.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> prep.cmdline # doctest: +ELLIPSIS 'fs_parc_replace_sgm_first aparc+aseg.nii T1.nii.gz \ mrtrix3_labelconfig.txt aparc+first.mif' >>> prep.run() # doctest: +SKIP diff --git a/nipype/interfaces/mrtrix3/reconst.py b/nipype/interfaces/mrtrix3/reconst.py index b1f71dd572..b608c5514c 100644 --- a/nipype/interfaces/mrtrix3/reconst.py +++ b/nipype/interfaces/mrtrix3/reconst.py @@ -58,7 +58,7 @@ class FitTensor(MRTrix3Base): >>> tsr.inputs.in_file = 'dwi.mif' >>> tsr.inputs.in_mask = 'mask.nii.gz' >>> tsr.inputs.grad_fsl = ('bvecs', 'bvals') - >>> tsr.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> tsr.cmdline # doctest: +ELLIPSIS 'dwi2tensor -fslgrad bvecs bvals -mask mask.nii.gz dwi.mif dti.mif' >>> tsr.run() # doctest: +SKIP """ @@ -173,7 +173,7 @@ class EstimateFOD(MRTrix3Base): >>> fod.inputs.response = 'response.txt' >>> fod.inputs.in_mask = 'mask.nii.gz' >>> fod.inputs.grad_fsl = ('bvecs', 'bvals') - >>> fod.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> fod.cmdline # doctest: +ELLIPSIS 'dwi2fod -fslgrad bvecs bvals -mask mask.nii.gz dwi.mif response.txt\ fods.mif' >>> fod.run() # doctest: +SKIP diff --git a/nipype/interfaces/mrtrix3/tracking.py b/nipype/interfaces/mrtrix3/tracking.py index 82c7294cfc..f2cc9c7c75 100644 --- a/nipype/interfaces/mrtrix3/tracking.py +++ b/nipype/interfaces/mrtrix3/tracking.py @@ -227,7 +227,7 @@ class Tractography(MRTrix3Base): >>> tk.inputs.in_file = 'fods.mif' >>> tk.inputs.roi_mask = 'mask.nii.gz' >>> tk.inputs.seed_sphere = (80, 100, 70, 10) - >>> tk.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> tk.cmdline # doctest: +ELLIPSIS 'tckgen -algorithm iFOD2 -mask mask.nii.gz -seed_sphere \ 80.000000,100.000000,70.000000,10.000000 fods.mif tracked.tck' >>> tk.run() # doctest: +SKIP diff --git a/nipype/interfaces/mrtrix3/utils.py b/nipype/interfaces/mrtrix3/utils.py index 99f308bd18..42f3d0c6fd 100644 --- a/nipype/interfaces/mrtrix3/utils.py +++ b/nipype/interfaces/mrtrix3/utils.py @@ -46,7 +46,7 @@ class BrainMask(CommandLine): >>> import nipype.interfaces.mrtrix3 as mrt >>> bmsk = mrt.BrainMask() >>> bmsk.inputs.in_file = 'dwi.mif' - >>> bmsk.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> bmsk.cmdline # doctest: +ELLIPSIS 'dwi2mask dwi.mif brainmask.mif' >>> bmsk.run() # doctest: +SKIP """ @@ -93,7 +93,7 @@ class Mesh2PVE(CommandLine): >>> m2p.inputs.in_file = 'surf1.vtk' >>> m2p.inputs.reference = 'dwi.mif' >>> m2p.inputs.in_first = 'T1.nii.gz' - >>> m2p.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> m2p.cmdline # doctest: +ELLIPSIS 'mesh2pve -first T1.nii.gz surf1.vtk dwi.mif mesh2volume.nii.gz' >>> m2p.run() # doctest: +SKIP """ @@ -139,7 +139,7 @@ class Generate5tt(CommandLine): >>> seg.inputs.in_fast = ['tpm_00.nii.gz', ... 'tpm_01.nii.gz', 'tpm_02.nii.gz'] >>> seg.inputs.in_first = 'first_merged.nii.gz' - >>> seg.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> seg.cmdline # doctest: +ELLIPSIS '5ttgen tpm_00.nii.gz tpm_01.nii.gz tpm_02.nii.gz first_merged.nii.gz\ act-5tt.mif' >>> seg.run() # doctest: +SKIP @@ -197,7 +197,7 @@ class TensorMetrics(CommandLine): >>> comp = mrt.TensorMetrics() >>> comp.inputs.in_file = 'dti.mif' >>> comp.inputs.out_fa = 'fa.mif' - >>> comp.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> comp.cmdline # doctest: +ELLIPSIS 'tensor2metric -fa fa.mif dti.mif' >>> comp.run() # doctest: +SKIP """ @@ -337,7 +337,7 @@ class ComputeTDI(MRTrix3Base): >>> import nipype.interfaces.mrtrix3 as mrt >>> tdi = mrt.ComputeTDI() >>> tdi.inputs.in_file = 'dti.mif' - >>> tdi.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> tdi.cmdline # doctest: +ELLIPSIS 'tckmap dti.mif tdi.mif' >>> tdi.run() # doctest: +SKIP """ @@ -388,7 +388,7 @@ class TCK2VTK(MRTrix3Base): >>> vtk = mrt.TCK2VTK() >>> vtk.inputs.in_file = 'tracks.tck' >>> vtk.inputs.reference = 'b0.nii' - >>> vtk.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> vtk.cmdline # doctest: +ELLIPSIS 'tck2vtk -image b0.nii tracks.tck tracks.vtk' >>> vtk.run() # doctest: +SKIP """ diff --git a/nipype/interfaces/niftyfit/asl.py b/nipype/interfaces/niftyfit/asl.py index f0cc8bc19b..366f9a6eca 100644 --- a/nipype/interfaces/niftyfit/asl.py +++ b/nipype/interfaces/niftyfit/asl.py @@ -147,7 +147,7 @@ class FitAsl(NiftyFitCommand): >>> from nipype.interfaces import niftyfit >>> node = niftyfit.FitAsl() >>> node.inputs.source_file = 'asl.nii.gz' - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'fit_asl -source asl.nii.gz -cbf asl_cbf.nii.gz -error asl_error.nii.gz \ -syn asl_syn.nii.gz' diff --git a/nipype/interfaces/niftyfit/dwi.py b/nipype/interfaces/niftyfit/dwi.py index e368726656..67c5444bbe 100644 --- a/nipype/interfaces/niftyfit/dwi.py +++ b/nipype/interfaces/niftyfit/dwi.py @@ -248,7 +248,7 @@ class FitDwi(NiftyFitCommand): >>> fit_dwi.inputs.bvec_file = 'bvecs' >>> fit_dwi.inputs.bval_file = 'bvals' >>> fit_dwi.inputs.rgbmap_file = 'rgb.nii.gz' - >>> fit_dwi.cmdline # doctest: +ALLOW_UNICODE + >>> fit_dwi.cmdline 'fit_dwi -source dwi.nii.gz -bval bvals -bvec bvecs -dti \ -error dwi_error.nii.gz -famap dwi_famap.nii.gz -mcmap dwi_mcmap.nii.gz \ -mcout dwi_mcout.txt -mdmap dwi_mdmap.nii.gz -nodiff dwi_no_diff.nii.gz \ @@ -427,7 +427,7 @@ class DwiTool(NiftyFitCommand): >>> dwi_tool.inputs.mask_file = 'mask.nii.gz' >>> dwi_tool.inputs.b0_file = 'b0.nii.gz' >>> dwi_tool.inputs.rgbmap_file = 'rgb_map.nii.gz' - >>> dwi_tool.cmdline # doctest: +ALLOW_UNICODE + >>> dwi_tool.cmdline 'dwi_tool -source dwi.nii.gz -bval bvals -bvec bvecs -b0 b0.nii.gz \ -mask mask.nii.gz -dti -famap dwi_famap.nii.gz -logdti2 dwi_logdti2.nii.gz \ -mcmap dwi_mcmap.nii.gz -mdmap dwi_mdmap.nii.gz -rgbmap rgb_map.nii.gz \ diff --git a/nipype/interfaces/niftyfit/qt1.py b/nipype/interfaces/niftyfit/qt1.py index 6cb0cf7da1..b5ccfed88b 100644 --- a/nipype/interfaces/niftyfit/qt1.py +++ b/nipype/interfaces/niftyfit/qt1.py @@ -165,7 +165,7 @@ class FitQt1(NiftyFitCommand): >>> from nipype.interfaces.niftyfit import FitQt1 >>> fit_qt1 = FitQt1() >>> fit_qt1.inputs.source_file = 'TI4D.nii.gz' - >>> fit_qt1.cmdline # doctest: +ALLOW_UNICODE + >>> fit_qt1.cmdline 'fit_qt1 -source TI4D.nii.gz -comp TI4D_comp.nii.gz \ -error TI4D_error.nii.gz -m0map TI4D_m0map.nii.gz -mcmap TI4D_mcmap.nii.gz \ -res TI4D_res.nii.gz -syn TI4D_syn.nii.gz -t1map TI4D_t1map.nii.gz' diff --git a/nipype/interfaces/niftyreg/reg.py b/nipype/interfaces/niftyreg/reg.py index e8ad87e3ee..fa4a1701ee 100644 --- a/nipype/interfaces/niftyreg/reg.py +++ b/nipype/interfaces/niftyreg/reg.py @@ -156,7 +156,7 @@ class RegAladin(NiftyRegCommand): >>> node.inputs.flo_file = 'im2.nii' >>> node.inputs.rmask_file = 'mask.nii' >>> node.inputs.omp_core_val = 4 - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'reg_aladin -aff im2_aff.txt -flo im2.nii -omp 4 -ref im1.nii \ -res im2_res.nii.gz -rmask mask.nii' @@ -367,7 +367,7 @@ class RegF3D(NiftyRegCommand): >>> node.inputs.flo_file = 'im2.nii' >>> node.inputs.rmask_file = 'mask.nii' >>> node.inputs.omp_core_val = 4 - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'reg_f3d -cpp im2_cpp.nii.gz -flo im2.nii -omp 4 -ref im1.nii \ -res im2_res.nii.gz -rmask mask.nii' diff --git a/nipype/interfaces/niftyreg/regutils.py b/nipype/interfaces/niftyreg/regutils.py index 9c2ddc055d..9e42a55126 100644 --- a/nipype/interfaces/niftyreg/regutils.py +++ b/nipype/interfaces/niftyreg/regutils.py @@ -106,7 +106,7 @@ class RegResample(NiftyRegCommand): >>> node.inputs.trans_file = 'warpfield.nii' >>> node.inputs.inter_val = 'LIN' >>> node.inputs.omp_core_val = 4 - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'reg_resample -flo im2.nii -inter 1 -omp 4 -ref im1.nii -trans \ warpfield.nii -res im2_res.nii.gz' @@ -173,7 +173,7 @@ class RegJacobian(NiftyRegCommand): >>> node.inputs.ref_file = 'im1.nii' >>> node.inputs.trans_file = 'warpfield.nii' >>> node.inputs.omp_core_val = 4 - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'reg_jacobian -omp 4 -ref im1.nii -trans warpfield.nii -jac \ warpfield_jac.nii.gz' @@ -289,7 +289,7 @@ class RegTools(NiftyRegCommand): >>> node.inputs.in_file = 'im1.nii' >>> node.inputs.mul_val = 4 >>> node.inputs.omp_core_val = 4 - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'reg_tools -in im1.nii -mul 4.0 -omp 4 -out im1_tools.nii.gz' """ @@ -397,7 +397,7 @@ class RegAverage(NiftyRegCommand): >>> two_file = 'im2.nii' >>> three_file = 'im3.nii' >>> node.inputs.avg_files = [one_file, two_file, three_file] - >>> node.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> node.cmdline # doctest: +ELLIPSIS 'reg_average --cmd_file .../reg_average_cmd' """ @@ -602,7 +602,7 @@ class RegTransform(NiftyRegCommand): >>> node = niftyreg.RegTransform() >>> node.inputs.def_input = 'warpfield.nii' >>> node.inputs.omp_core_val = 4 - >>> node.cmdline # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> node.cmdline # doctest: +ELLIPSIS 'reg_transform -omp 4 -def warpfield.nii .../warpfield_trans.nii.gz' """ @@ -714,7 +714,7 @@ class RegMeasure(NiftyRegCommand): >>> node.inputs.flo_file = 'im2.nii' >>> node.inputs.measure_type = 'lncc' >>> node.inputs.omp_core_val = 4 - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'reg_measure -flo im2.nii -lncc -omp 4 -out im2_lncc.txt -ref im1.nii' """ diff --git a/nipype/interfaces/niftyseg/em.py b/nipype/interfaces/niftyseg/em.py index be39f7775b..f2e7359677 100644 --- a/nipype/interfaces/niftyseg/em.py +++ b/nipype/interfaces/niftyseg/em.py @@ -127,7 +127,7 @@ class EM(NiftySegCommand): >>> node = niftyseg.EM() >>> node.inputs.in_file = 'im1.nii' >>> node.inputs.no_prior = 4 - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'seg_EM -in im1.nii -nopriors 4 -bc_out im1_bc_em.nii.gz -out im1_em.nii.gz -out_outlier im1_outlier_em.nii.gz' """ diff --git a/nipype/interfaces/niftyseg/label_fusion.py b/nipype/interfaces/niftyseg/label_fusion.py index 82b19d1f3b..c1637cb258 100644 --- a/nipype/interfaces/niftyseg/label_fusion.py +++ b/nipype/interfaces/niftyseg/label_fusion.py @@ -147,7 +147,7 @@ class LabelFusion(NiftySegCommand): >>> node.inputs.template_file = 'im3.nii' >>> node.inputs.template_num = 2 >>> node.inputs.classifier_type = 'STEPS' - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'seg_LabFusion -in im1.nii -STEPS 2.000000 2 im2.nii im3.nii -out im1_steps.nii' """ @@ -298,7 +298,7 @@ class CalcTopNCC(NiftySegCommand): >>> node.inputs.num_templates = 2 >>> node.inputs.in_templates = ['im2.nii', 'im3.nii'] >>> node.inputs.top_templates = 1 - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'seg_CalcTopNCC -target im1.nii -templates 2 im2.nii im3.nii -n 1' """ diff --git a/nipype/interfaces/niftyseg/lesions.py b/nipype/interfaces/niftyseg/lesions.py index d531b5c464..489837e6dd 100644 --- a/nipype/interfaces/niftyseg/lesions.py +++ b/nipype/interfaces/niftyseg/lesions.py @@ -109,7 +109,7 @@ class FillLesions(NiftySegCommand): >>> node = niftyseg.FillLesions() >>> node.inputs.in_file = 'im1.nii' >>> node.inputs.lesion_mask = 'im2.nii' - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'seg_FillLesions -i im1.nii -l im2.nii -o im1_lesions_filled.nii.gz' """ diff --git a/nipype/interfaces/niftyseg/maths.py b/nipype/interfaces/niftyseg/maths.py index bd05ab5df3..b8a5c0a1b8 100644 --- a/nipype/interfaces/niftyseg/maths.py +++ b/nipype/interfaces/niftyseg/maths.py @@ -169,31 +169,31 @@ class UnaryMaths(MathsCommand): >>> # Test sqrt operation >>> unary_sqrt = copy.deepcopy(unary) >>> unary_sqrt.inputs.operation = 'sqrt' - >>> unary_sqrt.cmdline # doctest: +ALLOW_UNICODE + >>> unary_sqrt.cmdline 'seg_maths im1.nii -sqrt -odt float im1_sqrt.nii' >>> unary_sqrt.run() # doctest: +SKIP >>> # Test sqrt operation >>> unary_abs = copy.deepcopy(unary) >>> unary_abs.inputs.operation = 'abs' - >>> unary_abs.cmdline # doctest: +ALLOW_UNICODE + >>> unary_abs.cmdline 'seg_maths im1.nii -abs -odt float im1_abs.nii' >>> unary_abs.run() # doctest: +SKIP >>> # Test bin operation >>> unary_bin = copy.deepcopy(unary) >>> unary_bin.inputs.operation = 'bin' - >>> unary_bin.cmdline # doctest: +ALLOW_UNICODE + >>> unary_bin.cmdline 'seg_maths im1.nii -bin -odt float im1_bin.nii' >>> unary_bin.run() # doctest: +SKIP >>> # Test otsu operation >>> unary_otsu = copy.deepcopy(unary) >>> unary_otsu.inputs.operation = 'otsu' - >>> unary_otsu.cmdline # doctest: +ALLOW_UNICODE + >>> unary_otsu.cmdline 'seg_maths im1.nii -otsu -odt float im1_otsu.nii' >>> unary_otsu.run() # doctest: +SKIP >>> # Test isnan operation >>> unary_isnan = copy.deepcopy(unary) >>> unary_isnan.inputs.operation = 'isnan' - >>> unary_isnan.cmdline # doctest: +ALLOW_UNICODE + >>> unary_isnan.cmdline 'seg_maths im1.nii -isnan -odt float im1_isnan.nii' >>> unary_isnan.run() # doctest: +SKIP @@ -302,28 +302,28 @@ class BinaryMaths(MathsCommand): >>> binary_sub = copy.deepcopy(binary) >>> binary_sub.inputs.operation = 'sub' >>> binary_sub.inputs.operand_file = 'im2.nii' - >>> binary_sub.cmdline # doctest: +ALLOW_UNICODE + >>> binary_sub.cmdline 'seg_maths im1.nii -sub im2.nii -odt float im1_sub.nii' >>> binary_sub.run() # doctest: +SKIP >>> # Test mul operation >>> binary_mul = copy.deepcopy(binary) >>> binary_mul.inputs.operation = 'mul' >>> binary_mul.inputs.operand_value = 2.0 - >>> binary_mul.cmdline # doctest: +ALLOW_UNICODE + >>> binary_mul.cmdline 'seg_maths im1.nii -mul 2.00000000 -odt float im1_mul.nii' >>> binary_mul.run() # doctest: +SKIP >>> # Test llsnorm operation >>> binary_llsnorm = copy.deepcopy(binary) >>> binary_llsnorm.inputs.operation = 'llsnorm' >>> binary_llsnorm.inputs.operand_file = 'im2.nii' - >>> binary_llsnorm.cmdline # doctest: +ALLOW_UNICODE + >>> binary_llsnorm.cmdline 'seg_maths im1.nii -llsnorm im2.nii -odt float im1_llsnorm.nii' >>> binary_llsnorm.run() # doctest: +SKIP >>> # Test splitinter operation >>> binary_splitinter = copy.deepcopy(binary) >>> binary_splitinter.inputs.operation = 'splitinter' >>> binary_splitinter.inputs.operand_str = 'z' - >>> binary_splitinter.cmdline # doctest: +ALLOW_UNICODE + >>> binary_splitinter.cmdline 'seg_maths im1.nii -splitinter z -odt float im1_splitinter.nii' >>> binary_splitinter.run() # doctest: +SKIP @@ -419,21 +419,21 @@ class BinaryMathsInteger(MathsCommand): >>> binaryi_dil = copy.deepcopy(binaryi) >>> binaryi_dil.inputs.operation = 'dil' >>> binaryi_dil.inputs.operand_value = 2 - >>> binaryi_dil.cmdline # doctest: +ALLOW_UNICODE + >>> binaryi_dil.cmdline 'seg_maths im1.nii -dil 2 -odt float im1_dil.nii' >>> binaryi_dil.run() # doctest: +SKIP >>> # Test dil operation >>> binaryi_ero = copy.deepcopy(binaryi) >>> binaryi_ero.inputs.operation = 'ero' >>> binaryi_ero.inputs.operand_value = 1 - >>> binaryi_ero.cmdline # doctest: +ALLOW_UNICODE + >>> binaryi_ero.cmdline 'seg_maths im1.nii -ero 1 -odt float im1_ero.nii' >>> binaryi_ero.run() # doctest: +SKIP >>> # Test pad operation >>> binaryi_pad = copy.deepcopy(binaryi) >>> binaryi_pad.inputs.operation = 'pad' >>> binaryi_pad.inputs.operand_value = 4 - >>> binaryi_pad.cmdline # doctest: +ALLOW_UNICODE + >>> binaryi_pad.cmdline 'seg_maths im1.nii -pad 4 -odt float im1_pad.nii' >>> binaryi_pad.run() # doctest: +SKIP @@ -512,7 +512,7 @@ class TupleMaths(MathsCommand): >>> tuple_lncc.inputs.operation = 'lncc' >>> tuple_lncc.inputs.operand_file1 = 'im2.nii' >>> tuple_lncc.inputs.operand_value2 = 2.0 - >>> tuple_lncc.cmdline # doctest: +ALLOW_UNICODE + >>> tuple_lncc.cmdline 'seg_maths im1.nii -lncc im2.nii 2.00000000 -odt float im1_lncc.nii' >>> tuple_lncc.run() # doctest: +SKIP @@ -521,7 +521,7 @@ class TupleMaths(MathsCommand): >>> tuple_lssd.inputs.operation = 'lssd' >>> tuple_lssd.inputs.operand_file1 = 'im2.nii' >>> tuple_lssd.inputs.operand_value2 = 1.0 - >>> tuple_lssd.cmdline # doctest: +ALLOW_UNICODE + >>> tuple_lssd.cmdline 'seg_maths im1.nii -lssd im2.nii 1.00000000 -odt float im1_lssd.nii' >>> tuple_lssd.run() # doctest: +SKIP @@ -530,7 +530,7 @@ class TupleMaths(MathsCommand): >>> tuple_lltsnorm.inputs.operation = 'lltsnorm' >>> tuple_lltsnorm.inputs.operand_file1 = 'im2.nii' >>> tuple_lltsnorm.inputs.operand_value2 = 0.01 - >>> tuple_lltsnorm.cmdline # doctest: +ALLOW_UNICODE + >>> tuple_lltsnorm.cmdline 'seg_maths im1.nii -lltsnorm im2.nii 0.01000000 -odt float \ im1_lltsnorm.nii' >>> tuple_lltsnorm.run() # doctest: +SKIP @@ -575,7 +575,7 @@ class Merge(MathsCommand): >>> node.inputs.merge_files = files >>> node.inputs.dimension = 2 >>> node.inputs.output_datatype = 'float' - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'seg_maths im1.nii -merge 2 2 im2.nii im3.nii -odt float im1_merged.nii' """ diff --git a/nipype/interfaces/niftyseg/patchmatch.py b/nipype/interfaces/niftyseg/patchmatch.py index d598a08928..207764f086 100644 --- a/nipype/interfaces/niftyseg/patchmatch.py +++ b/nipype/interfaces/niftyseg/patchmatch.py @@ -102,7 +102,7 @@ class PatchMatch(NiftySegCommand): >>> node.inputs.in_file = 'im1.nii' >>> node.inputs.mask_file = 'im2.nii' >>> node.inputs.database_file = 'db.xml' - >>> node.cmdline # doctest: +ALLOW_UNICODE + >>> node.cmdline 'seg_PatchMatch -i im1.nii -m im2.nii -db db.xml -o im1_pm.nii.gz' """ diff --git a/nipype/interfaces/niftyseg/stats.py b/nipype/interfaces/niftyseg/stats.py index e2e7781aa6..cef03b6177 100644 --- a/nipype/interfaces/niftyseg/stats.py +++ b/nipype/interfaces/niftyseg/stats.py @@ -154,19 +154,19 @@ class UnaryStats(StatsCommand): >>> # Test v operation >>> unary_v = copy.deepcopy(unary) >>> unary_v.inputs.operation = 'v' - >>> unary_v.cmdline # doctest: +ALLOW_UNICODE + >>> unary_v.cmdline 'seg_stats im1.nii -v' >>> unary_v.run() # doctest: +SKIP >>> # Test vl operation >>> unary_vl = copy.deepcopy(unary) >>> unary_vl.inputs.operation = 'vl' - >>> unary_vl.cmdline # doctest: +ALLOW_UNICODE + >>> unary_vl.cmdline 'seg_stats im1.nii -vl' >>> unary_vl.run() # doctest: +SKIP >>> # Test x operation >>> unary_x = copy.deepcopy(unary) >>> unary_x.inputs.operation = 'x' - >>> unary_x.cmdline # doctest: +ALLOW_UNICODE + >>> unary_x.cmdline 'seg_stats im1.nii -x' >>> unary_x.run() # doctest: +SKIP @@ -243,21 +243,21 @@ class BinaryStats(StatsCommand): >>> binary_sa = copy.deepcopy(binary) >>> binary_sa.inputs.operation = 'sa' >>> binary_sa.inputs.operand_value = 2.0 - >>> binary_sa.cmdline # doctest: +ALLOW_UNICODE + >>> binary_sa.cmdline 'seg_stats im1.nii -sa 2.00000000' >>> binary_sa.run() # doctest: +SKIP >>> # Test ncc operation >>> binary_ncc = copy.deepcopy(binary) >>> binary_ncc.inputs.operation = 'ncc' >>> binary_ncc.inputs.operand_file = 'im2.nii' - >>> binary_ncc.cmdline # doctest: +ALLOW_UNICODE + >>> binary_ncc.cmdline 'seg_stats im1.nii -ncc im2.nii' >>> binary_ncc.run() # doctest: +SKIP >>> # Test Nl operation >>> binary_nl = copy.deepcopy(binary) >>> binary_nl.inputs.operation = 'Nl' >>> binary_nl.inputs.operand_file = 'output.csv' - >>> binary_nl.cmdline # doctest: +ALLOW_UNICODE + >>> binary_nl.cmdline 'seg_stats im1.nii -Nl output.csv' >>> binary_nl.run() # doctest: +SKIP diff --git a/nipype/interfaces/quickshear.py b/nipype/interfaces/quickshear.py index d1782d5755..a0e9c79a1c 100644 --- a/nipype/interfaces/quickshear.py +++ b/nipype/interfaces/quickshear.py @@ -40,7 +40,7 @@ class Quickshear(CommandLine): >>> from nipype.interfaces.quickshear import Quickshear >>> qs = Quickshear(in_file='T1.nii', mask_file='brain_mask.nii') - >>> qs.cmdline # doctest: +ALLOW_UNICODE + >>> qs.cmdline 'quickshear T1.nii brain_mask.nii T1_defaced.nii' In the absence of a precomputed mask, a simple pipeline can be generated diff --git a/nipype/interfaces/slicer/generate_classes.py b/nipype/interfaces/slicer/generate_classes.py index 77a633f5f8..f0bc8274bb 100644 --- a/nipype/interfaces/slicer/generate_classes.py +++ b/nipype/interfaces/slicer/generate_classes.py @@ -18,9 +18,9 @@ def force_to_valid_python_variable_name(old_name): """ Valid c++ names are not always valid in python, so provide alternate naming - >>> force_to_valid_python_variable_name('lambda') # doctest: +ALLOW_UNICODE + >>> force_to_valid_python_variable_name('lambda') 'opt_lambda' - >>> force_to_valid_python_variable_name('inputVolume') # doctest: +ALLOW_UNICODE + >>> force_to_valid_python_variable_name('inputVolume') 'inputVolume' """ new_name = old_name diff --git a/nipype/interfaces/utility/base.py b/nipype/interfaces/utility/base.py index 60e4c4aa3f..179bfd7c20 100644 --- a/nipype/interfaces/utility/base.py +++ b/nipype/interfaces/utility/base.py @@ -47,7 +47,7 @@ class IdentityInterface(IOBase): >>> out = ii.run() - >>> out.outputs.a # doctest: +ALLOW_UNICODE + >>> out.outputs.a 'foo' >>> ii2 = IdentityInterface(fields=['a', 'b'], mandatory_inputs=True) diff --git a/nipype/interfaces/vista/vista.py b/nipype/interfaces/vista/vista.py index e898956d65..e8928ae24a 100644 --- a/nipype/interfaces/vista/vista.py +++ b/nipype/interfaces/vista/vista.py @@ -34,7 +34,7 @@ class Vnifti2Image(CommandLine): >>> vimage = Vnifti2Image() >>> vimage.inputs.in_file = 'image.nii' - >>> vimage.cmdline # doctest: +ALLOW_UNICODE + >>> vimage.cmdline 'vnifti2image -in image.nii -out image.v' >>> vimage.run() # doctest: +SKIP """ @@ -63,7 +63,7 @@ class VtoMat(CommandLine): >>> vimage = VtoMat() >>> vimage.inputs.in_file = 'image.v' - >>> vimage.cmdline # doctest: +ALLOW_UNICODE + >>> vimage.cmdline 'vtomat -in image.v -out image.mat' >>> vimage.run() # doctest: +SKIP """ diff --git a/nipype/pipeline/engine/nodes.py b/nipype/pipeline/engine/nodes.py index f7f83f578a..36d3ba1b40 100644 --- a/nipype/pipeline/engine/nodes.py +++ b/nipype/pipeline/engine/nodes.py @@ -887,7 +887,7 @@ def _add_join_item_fields(self): ... name='inputspec'), >>> join = JoinNode(IdentityInterface(fields=['images', 'mask']), ... joinsource='inputspec', joinfield='images', name='join') - >>> join._add_join_item_fields() # doctest: +ALLOW_UNICODE + >>> join._add_join_item_fields() {'images': 'imagesJ1'} Return the {base field: slot field} dictionary diff --git a/nipype/pipeline/plugins/sge.py b/nipype/pipeline/plugins/sge.py index 6d448df3df..42aa4bc915 100644 --- a/nipype/pipeline/plugins/sge.py +++ b/nipype/pipeline/plugins/sge.py @@ -313,9 +313,9 @@ def qsub_sanitize_job_name(testjobname): Numbers and punctuation are not allowed. - >>> qsub_sanitize_job_name('01') # doctest: +ALLOW_UNICODE + >>> qsub_sanitize_job_name('01') 'J01' - >>> qsub_sanitize_job_name('a01') # doctest: +ALLOW_UNICODE + >>> qsub_sanitize_job_name('a01') 'a01' """ if testjobname[0].isalpha(): diff --git a/nipype/utils/filemanip.py b/nipype/utils/filemanip.py index e8a9ea22b8..be71424a5a 100644 --- a/nipype/utils/filemanip.py +++ b/nipype/utils/filemanip.py @@ -64,13 +64,13 @@ def split_filename(fname): -------- >>> from nipype.utils.filemanip import split_filename >>> pth, fname, ext = split_filename('/home/data/subject.nii.gz') - >>> pth # doctest: +ALLOW_UNICODE + >>> pth '/home/data' - >>> fname # doctest: +ALLOW_UNICODE + >>> fname 'subject' - >>> ext # doctest: +ALLOW_UNICODE + >>> ext '.nii.gz' """ @@ -171,7 +171,7 @@ def fname_presuffix(fname, prefix='', suffix='', newpath=None, use_ext=True): >>> from nipype.utils.filemanip import fname_presuffix >>> fname = 'foo.nii.gz' - >>> fname_presuffix(fname,'pre','post','/tmp') # doctest: +ALLOW_UNICODE + >>> fname_presuffix(fname,'pre','post','/tmp') '/tmp/prefoopost.nii.gz' """ @@ -603,7 +603,7 @@ def read_stream(stream, logger=None, encoding=None): Robustly reads a stream, sending a warning to a logger if some decoding error was raised. - >>> read_stream(bytearray([65, 0xc7, 65, 10, 66])) # doctest: +ELLIPSIS +ALLOW_UNICODE + >>> read_stream(bytearray([65, 0xc7, 65, 10, 66])) # doctest: +ELLIPSIS ['A...A', 'B'] diff --git a/pytest.ini b/pytest.ini index 6247b04cca..ea149d6ed1 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,3 +1,4 @@ [pytest] norecursedirs = .git build dist doc nipype/external tools examples src -addopts = --doctest-modules \ No newline at end of file +addopts = --doctest-modules +doctest_optionflags = ALLOW_UNICODE NORMALIZE_WHITESPACE \ No newline at end of file diff --git a/tools/apigen.py b/tools/apigen.py index d3a732d881..c594042f71 100644 --- a/tools/apigen.py +++ b/tools/apigen.py @@ -103,11 +103,11 @@ def set_package_name(self, package_name): def _get_object_name(self, line): ''' Get second token in line >>> docwriter = ApiDocWriter('sphinx') - >>> docwriter._get_object_name(" def func(): ") # doctest: +ALLOW_UNICODE + >>> docwriter._get_object_name(" def func(): ") u'func' - >>> docwriter._get_object_name(" class Klass(object): ") # doctest: +ALLOW_UNICODE + >>> docwriter._get_object_name(" class Klass(object): ") 'Klass' - >>> docwriter._get_object_name(" class Klass: ") # doctest: +ALLOW_UNICODE + >>> docwriter._get_object_name(" class Klass: ") 'Klass' ''' name = line.split()[1].split('(')[0].strip() diff --git a/tools/interfacedocgen.py b/tools/interfacedocgen.py index 3eb7467c4b..80356d3ded 100644 --- a/tools/interfacedocgen.py +++ b/tools/interfacedocgen.py @@ -124,11 +124,11 @@ def set_package_name(self, package_name): def _get_object_name(self, line): ''' Get second token in line >>> docwriter = ApiDocWriter('sphinx') - >>> docwriter._get_object_name(" def func(): ") # doctest: +ALLOW_UNICODE + >>> docwriter._get_object_name(" def func(): ") u'func' - >>> docwriter._get_object_name(" class Klass(object): ") # doctest: +ALLOW_UNICODE + >>> docwriter._get_object_name(" class Klass(object): ") 'Klass' - >>> docwriter._get_object_name(" class Klass: ") # doctest: +ALLOW_UNICODE + >>> docwriter._get_object_name(" class Klass: ") 'Klass' ''' name = line.split()[1].split('(')[0].strip() From 8baac424a3ca2ffc44c7e646a4172f314081bbbb Mon Sep 17 00:00:00 2001 From: Dorota Jarecka Date: Mon, 30 Oct 2017 13:29:23 -0400 Subject: [PATCH 08/16] moving to temporary directories, so tests can be run in readonly; adding conftest.py with datadir variable and some basic libraries (so you dont have to import them in doctests) --- conftest.py | 12 ++++++++++ nipype/interfaces/dcm2nii.py | 9 +++++--- .../fsl/tests/test_Level1Design_functions.py | 5 ++++- nipype/interfaces/io.py | 7 +++--- nipype/interfaces/niftyreg/regutils.py | 3 +++ nipype/interfaces/utility/base.py | 18 +++++---------- nipype/interfaces/utility/wrappers.py | 15 +++++-------- nipype/pipeline/engine/tests/test_utils.py | 22 ++++++++++--------- 8 files changed, 52 insertions(+), 39 deletions(-) create mode 100644 conftest.py diff --git a/conftest.py b/conftest.py new file mode 100644 index 0000000000..f2d52f5f85 --- /dev/null +++ b/conftest.py @@ -0,0 +1,12 @@ +import pytest +import numpy, os + +@pytest.fixture(autouse=True) +def add_np(doctest_namespace): + doctest_namespace['np'] = numpy + doctest_namespace['os'] = os + + + filepath = os.path.dirname(os.path.realpath(__file__)) + datadir = os.path.realpath(os.path.join(filepath, 'nipype/testing/data')) + doctest_namespace["datadir"] = datadir diff --git a/nipype/interfaces/dcm2nii.py b/nipype/interfaces/dcm2nii.py index 60c2d33bd1..aaff5e2f88 100644 --- a/nipype/interfaces/dcm2nii.py +++ b/nipype/interfaces/dcm2nii.py @@ -70,13 +70,16 @@ class Dcm2nii(CommandLine): Examples ======== + >>> tmp = getfixture('tmpdir') + >>> old = tmp.chdir() # changing to a temporary directory >>> from nipype.interfaces.dcm2nii import Dcm2nii >>> converter = Dcm2nii() - >>> converter.inputs.source_names = ['functional_1.dcm', 'functional_2.dcm'] + >>> converter.inputs.source_names = [os.path.join(datadir, 'functional_1.dcm'), os.path.join(datadir, 'functional_2.dcm')] >>> converter.inputs.gzip_output = True >>> converter.inputs.output_dir = '.' - >>> converter.cmdline - 'dcm2nii -a y -c y -b config.ini -v y -d y -e y -g y -i n -n y -o . -p y -x n -f n functional_1.dcm' + >>> converter.cmdline #doctest: +ELLIPSIS + 'dcm2nii -a y -c y -b config.ini -v y -d y -e y -g y -i n -n y -o . -p y -x n -f n ...functional_1.dcm' + >>> os.chdir(old.strpath) """ input_spec = Dcm2niiInputSpec diff --git a/nipype/interfaces/fsl/tests/test_Level1Design_functions.py b/nipype/interfaces/fsl/tests/test_Level1Design_functions.py index 56fdecd0b4..4669b09463 100644 --- a/nipype/interfaces/fsl/tests/test_Level1Design_functions.py +++ b/nipype/interfaces/fsl/tests/test_Level1Design_functions.py @@ -4,7 +4,8 @@ from ..model import Level1Design -def test_level1design(): +def test_level1design(tmpdir): + old = tmpdir.chdir() l = Level1Design() runinfo = dict(cond=[{'name': 'test_condition', 'onset': [0, 10], 'duration':[10, 10]}],regress=[]) @@ -29,3 +30,5 @@ def test_level1design(): do_tempfilter, key) assert "set fmri(convolve1) {0}".format(val) in output_txt + + os.chdir(old.strpath) diff --git a/nipype/interfaces/io.py b/nipype/interfaces/io.py index 4b4c8e5b2b..9e5640f9eb 100644 --- a/nipype/interfaces/io.py +++ b/nipype/interfaces/io.py @@ -2476,7 +2476,8 @@ class JSONFileGrabber(IOBase): Example ------- - + >>> tmp = getfixture('tmpdir') + >>> old = tmp.chdir() # changing to a temporary directory >>> import pprint >>> from nipype.interfaces.io import JSONFileGrabber >>> jsonSource = JSONFileGrabber() @@ -2484,11 +2485,11 @@ class JSONFileGrabber(IOBase): >>> res = jsonSource.run() >>> pprint.pprint(res.outputs.get()) {'param1': 'overrideMe', 'param3': 1.0} - >>> jsonSource.inputs.in_file = 'jsongrabber.txt' + >>> jsonSource.inputs.in_file = os.path.join(datadir, 'jsongrabber.txt') >>> res = jsonSource.run() >>> pprint.pprint(res.outputs.get()) # doctest:, +ELLIPSIS {'param1': 'exampleStr', 'param2': 4, 'param3': 1.0} - + >>> os.chdir(old.strpath) """ input_spec = JSONFileGrabberInputSpec diff --git a/nipype/interfaces/niftyreg/regutils.py b/nipype/interfaces/niftyreg/regutils.py index 9e42a55126..852c9430d0 100644 --- a/nipype/interfaces/niftyreg/regutils.py +++ b/nipype/interfaces/niftyreg/regutils.py @@ -391,6 +391,8 @@ class RegAverage(NiftyRegCommand): Examples -------- + >>> tmp = getfixture('tmpdir') + >>> old = tmp.chdir() # changing to temporary file >>> from nipype.interfaces import niftyreg >>> node = niftyreg.RegAverage() >>> one_file = 'im1.nii' @@ -399,6 +401,7 @@ class RegAverage(NiftyRegCommand): >>> node.inputs.avg_files = [one_file, two_file, three_file] >>> node.cmdline # doctest: +ELLIPSIS 'reg_average --cmd_file .../reg_average_cmd' + >>> os.chdir(old.strpath) """ _cmd = get_custom_path('reg_average') diff --git a/nipype/interfaces/utility/base.py b/nipype/interfaces/utility/base.py index 179bfd7c20..ec744d9fce 100644 --- a/nipype/interfaces/utility/base.py +++ b/nipype/interfaces/utility/base.py @@ -2,15 +2,9 @@ # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: """ -Various utilities - - Change directory to provide relative paths for doctests - >>> import os - >>> filepath = os.path.dirname(os.path.realpath(__file__)) - >>> datadir = os.path.realpath(os.path.join(filepath, - ... '../../testing/data')) - >>> os.chdir(datadir) - + # changing to temporary directories + >>> tmp = getfixture('tmpdir') + >>> old = tmp.chdir() """ from __future__ import print_function, division, unicode_literals, absolute_import from builtins import range @@ -231,14 +225,14 @@ class Rename(IOBase): >>> from nipype.interfaces.utility import Rename >>> rename1 = Rename() - >>> rename1.inputs.in_file = "zstat1.nii.gz" + >>> rename1.inputs.in_file = os.path.join(datadir, "zstat1.nii.gz") # datadir is a directory with exemplary files, defined in conftest.py >>> rename1.inputs.format_string = "Faces-Scenes.nii.gz" >>> res = rename1.run() # doctest: +SKIP >>> res.outputs.out_file # doctest: +SKIP 'Faces-Scenes.nii.gz" # doctest: +SKIP >>> rename2 = Rename(format_string="%(subject_id)s_func_run%(run)02d") - >>> rename2.inputs.in_file = "functional.nii" + >>> rename2.inputs.in_file = os.path.join(datadir, "functional.nii") >>> rename2.inputs.keep_ext = True >>> rename2.inputs.subject_id = "subj_201" >>> rename2.inputs.run = 2 @@ -247,7 +241,7 @@ class Rename(IOBase): 'subj_201_func_run02.nii' # doctest: +SKIP >>> rename3 = Rename(format_string="%(subject_id)s_%(seq)s_run%(run)02d.nii") - >>> rename3.inputs.in_file = "func_epi_1_1.nii" + >>> rename3.inputs.in_file = os.path.join(datadir, "func_epi_1_1.nii") >>> rename3.inputs.parse_string = "func_(?P\w*)_.*" >>> rename3.inputs.subject_id = "subj_201" >>> rename3.inputs.run = 2 diff --git a/nipype/interfaces/utility/wrappers.py b/nipype/interfaces/utility/wrappers.py index 2a5e163e7d..4684acba42 100644 --- a/nipype/interfaces/utility/wrappers.py +++ b/nipype/interfaces/utility/wrappers.py @@ -1,17 +1,12 @@ # -*- coding: utf-8 -*- # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: -"""Various utilities - - Change directory to provide relative paths for doctests - >>> import os - >>> filepath = os.path.dirname(os.path.realpath(__file__)) - >>> datadir = os.path.realpath(os.path.join(filepath, - ... '../../testing/data')) - >>> os.chdir(datadir) - - """ +# changing to temporary directories + >>> tmp = getfixture('tmpdir') + >>> old = tmp.chdir() +""" + from __future__ import print_function, division, unicode_literals, absolute_import from future import standard_library diff --git a/nipype/pipeline/engine/tests/test_utils.py b/nipype/pipeline/engine/tests/test_utils.py index 10bf5a7157..90db34ec59 100644 --- a/nipype/pipeline/engine/tests/test_utils.py +++ b/nipype/pipeline/engine/tests/test_utils.py @@ -18,27 +18,29 @@ from ..utils import merge_dict, clean_working_directory, write_workflow_prov -def test_identitynode_removal(): +def test_identitynode_removal(tmpdir): def test_function(arg1, arg2, arg3): import numpy as np return (np.array(arg1) + arg2 + arg3).tolist() + + out_dir = tmpdir.strpath - wf = pe.Workflow(name="testidentity") + wf = pe.Workflow(name="testidentity", base_dir=out_dir) - n1 = pe.Node(niu.IdentityInterface(fields=['a', 'b']), name='src') + n1 = pe.Node(niu.IdentityInterface(fields=['a', 'b']), name='src', base_dir=out_dir,) n1.iterables = ('b', [0, 1, 2, 3]) n1.inputs.a = [0, 1, 2, 3] - n2 = pe.Node(niu.Select(), name='selector') + n2 = pe.Node(niu.Select(), name='selector', base_dir=out_dir,) wf.connect(n1, ('a', test_function, 1, -1), n2, 'inlist') wf.connect(n1, 'b', n2, 'index') - n3 = pe.Node(niu.IdentityInterface(fields=['c', 'd']), name='passer') + n3 = pe.Node(niu.IdentityInterface(fields=['c', 'd']), name='passer', base_dir=out_dir,) n3.inputs.c = [1, 2, 3, 4] wf.connect(n2, 'out', n3, 'd') - n4 = pe.Node(niu.Select(), name='selector2') + n4 = pe.Node(niu.Select(), name='selector2', base_dir=out_dir,) wf.connect(n3, ('c', test_function, 1, -1), n4, 'inlist') wf.connect(n3, 'd', n4, 'index') @@ -216,19 +218,19 @@ def test_function3(arg): n1 = pe.Node(niu.Function(input_names=['arg1'], output_names=['out_file1', 'out_file2', 'dir'], function=test_function), - name='n1') + name='n1', base_dir=out_dir) n1.inputs.arg1 = 1 n2 = pe.Node(niu.Function(input_names=['in_file', 'arg'], output_names=['out_file1', 'out_file2', 'n'], function=test_function2), - name='n2') + name='n2', base_dir=out_dir) n2.inputs.arg = 2 n3 = pe.Node(niu.Function(input_names=['arg'], output_names=['n'], function=test_function3), - name='n3') + name='n3', base_dir=out_dir) wf = pe.Workflow(name="node_rem_test" + plugin, base_dir=out_dir) wf.connect(n1, "out_file1", n2, "in_file") @@ -271,7 +273,7 @@ def test_function3(arg): n2.name, 'file3.txt')) != remove_unnecessary_outputs - n4 = pe.Node(UtilsTestInterface(), name='n4') + n4 = pe.Node(UtilsTestInterface(), name='n4', base_dir=out_dir) wf.connect(n2, "out_file1", n4, "in_file") def pick_first(l): From a416aec438353c725f0409f89abb312cdb9b377f Mon Sep 17 00:00:00 2001 From: Dorota Jarecka Date: Mon, 30 Oct 2017 17:32:48 -0400 Subject: [PATCH 09/16] removing almost all reminders of tempfile package, one test doesn work(TODO) --- nipype/algorithms/tests/test_moments.py | 22 ++++---- .../interfaces/fsl/tests/test_preprocess.py | 40 +++++++------- nipype/interfaces/fsl/tests/test_utils.py | 2 - nipype/interfaces/tests/test_io.py | 40 ++++++++------ nipype/interfaces/tests/test_matlab.py | 15 ++---- nipype/interfaces/tests/test_nilearn.py | 18 +++---- nipype/testing/fixtures.py | 54 ++++++++----------- nipype/utils/tests/test_filemanip.py | 15 ++---- nipype/workflows/dmri/fsl/tests/test_dti.py | 7 +-- nipype/workflows/dmri/fsl/tests/test_epi.py | 7 +-- 10 files changed, 95 insertions(+), 125 deletions(-) diff --git a/nipype/algorithms/tests/test_moments.py b/nipype/algorithms/tests/test_moments.py index 12de44750a..17c8e922b2 100644 --- a/nipype/algorithms/tests/test_moments.py +++ b/nipype/algorithms/tests/test_moments.py @@ -1,10 +1,9 @@ # -*- coding: utf-8 -*- import numpy as np -import tempfile from nipype.algorithms.misc import calc_moments -def test_skew(): +def test_skew(tmpdir): data = """14.62418305 5.916396751 -1.658088086 4.71113546 1.598428608 5.612553811 -5.004056368 -4.057513911 11.16365251 17.32688599 -3.099920667 2.630189741 2.389709914 0.379332731 -0.2899694205 -4.363591482 2.059205599 23.90705054 0.7180462297 -1.976963652 7.487682025 -5.583986129 1.094800525 -2.319858134 @@ -126,13 +125,12 @@ def test_skew(): -0.5057854071 -2.415896554 -9.663571931 -5.714041661 -6.037933426 8.673756933 10.03557773 8.629816199 3.622185659 0.4716627142 -10.92515308 -3.705286841 -2.776089545 2.271920902 9.251504922 5.744980887 """ - with tempfile.NamedTemporaryFile(mode='w', delete=True) as f: - f.write(data) - f.flush() - skewness = calc_moments(f.name, 3) - assert np.allclose(skewness, np.array( - [-0.23418937314622, 0.2946365564954823, -0.05781002053540932, - -0.3512508282578762, - - 0.07035664150233077, - - 0.01935867699166935, - 0.00483863369427428, 0.21879460029850167])) + f = tmpdir.join("filetest") + f.write(data) + skewness = calc_moments(f.strpath, 3) + assert np.allclose(skewness, np.array( + [-0.23418937314622, 0.2946365564954823, -0.05781002053540932, + -0.3512508282578762, - + 0.07035664150233077, - + 0.01935867699166935, + 0.00483863369427428, 0.21879460029850167])) diff --git a/nipype/interfaces/fsl/tests/test_preprocess.py b/nipype/interfaces/fsl/tests/test_preprocess.py index 371f196325..8b240875cb 100644 --- a/nipype/interfaces/fsl/tests/test_preprocess.py +++ b/nipype/interfaces/fsl/tests/test_preprocess.py @@ -6,10 +6,9 @@ from builtins import open, open import os -import tempfile from copy import deepcopy -import pytest +import pytest, pdb from nipype.utils.filemanip import split_filename, filename_to_list from .. import preprocess as fsl from nipype.interfaces.fsl import Info @@ -27,11 +26,9 @@ def fsl_name(obj, fname): @pytest.fixture() def setup_infile(tmpdir): ext = Info.output_type_to_ext(Info.output_type()) - tmp_dir = tmpdir.strpath - tmp_infile = os.path.join(tmp_dir, 'foo' + ext) - open(tmp_infile, 'w') - - return (tmp_infile, tmp_dir) + tmp_infile = tmpdir.join('foo' + ext) + tmp_infile.open("w") + return (tmp_infile.strpath, tmpdir.strpath) @pytest.mark.skipif(no_fsl(), reason="fsl is not installed") @@ -153,7 +150,7 @@ def test_fast(setup_infile): @pytest.mark.skipif(no_fsl(), reason="fsl is not installed") -def test_fast_list_outputs(setup_infile): +def test_fast_list_outputs(setup_infile, tmpdir): ''' By default (no -o), FSL's fast command outputs files into the same directory as the input files. If the flag -o is set, it outputs files into the cwd ''' @@ -166,9 +163,9 @@ def _run_and_test(opts, output_base): # set up tmp_infile, indir = setup_infile - cwd = tempfile.mkdtemp() - os.chdir(cwd) - assert indir != cwd + cwd = tmpdir.mkdir("new") + cwd.chdir() + assert indir != cwd.strpath out_basename = 'a_basename' # run and test @@ -177,17 +174,17 @@ def _run_and_test(opts, output_base): _run_and_test(opts, os.path.join(input_path, input_filename)) opts['out_basename'] = out_basename - _run_and_test(opts, os.path.join(cwd, out_basename)) + _run_and_test(opts, os.path.join(cwd.strpath, out_basename)) @pytest.fixture() def setup_flirt(tmpdir): ext = Info.output_type_to_ext(Info.output_type()) - tmp_dir = tmpdir.strpath - _, infile = tempfile.mkstemp(suffix=ext, dir=tmp_dir) - _, reffile = tempfile.mkstemp(suffix=ext, dir=tmp_dir) - - return (tmp_dir, infile, reffile) + infile = tmpdir.join("infile"+ext) + infile.open("w") + reffile = tmpdir.join("reffile"+ext) + reffile.open("w") + return (tmpdir, infile.strpath, reffile.strpath) @pytest.mark.skipif(no_fsl(), reason="fsl is not installed") @@ -205,6 +202,7 @@ def test_flirt(setup_flirt): out_file='outfile', out_matrix_file='outmat.mat', bins=256, cost='mutualinfo') + flirt_est = fsl.FLIRT(in_file=infile, reference=reffile, out_matrix_file='outmat.mat', bins=256, @@ -249,8 +247,8 @@ def test_flirt(setup_flirt): axfm2.inputs.in_matrix_file = reffile assert axfm2.cmdline == (realcmd + ' -applyxfm -init %s' % reffile) - - _, tmpfile = tempfile.mkstemp(suffix='.nii', dir=tmpdir) + tmpfile = tmpdir.join("file4test.nii") + tmpfile.open("w") # Loop over all inputs, set a reasonable value and make sure the # cmdline is updated correctly. for key, trait_spec in sorted(fsl.FLIRT.input_spec().traits().items()): @@ -267,7 +265,7 @@ def test_flirt(setup_flirt): param = '-v' value = '-v' elif isinstance(trait_spec.trait_type, File): - value = tmpfile + value = tmpfile.strpath param = trait_spec.argstr % value elif trait_spec.default is False: param = trait_spec.argstr @@ -383,7 +381,7 @@ def test_mcflirt_noinput(): def test_fnirt(setup_flirt): tmpdir, infile, reffile = setup_flirt - os.chdir(tmpdir) + tmpdir.chdir() fnirt = fsl.FNIRT() assert fnirt.cmd == 'fnirt' diff --git a/nipype/interfaces/fsl/tests/test_utils.py b/nipype/interfaces/fsl/tests/test_utils.py index 9196d6d8d9..66b91cf96f 100644 --- a/nipype/interfaces/fsl/tests/test_utils.py +++ b/nipype/interfaces/fsl/tests/test_utils.py @@ -3,8 +3,6 @@ # vi: set ft=python sts=4 ts=4 sw=4 et: import os -from tempfile import mkdtemp -from shutil import rmtree import numpy as np diff --git a/nipype/interfaces/tests/test_io.py b/nipype/interfaces/tests/test_io.py index 0fc022cab3..c9ff773fa6 100644 --- a/nipype/interfaces/tests/test_io.py +++ b/nipype/interfaces/tests/test_io.py @@ -43,7 +43,6 @@ except CalledProcessError: fakes3 = False -from tempfile import mkstemp, mkdtemp def test_datagrabber(): dg = nio.DataGrabber() @@ -185,6 +184,7 @@ def dummy_input(request, tmpdir_factory): Function to create a dummy file ''' # Init variables + input_path = tmpdir_factory.mktemp('input_data').join('datasink_test_s3.txt') # Create input file @@ -335,38 +335,44 @@ def test_datasink_substitutions(tmpdir): x in glob.glob(os.path.join(str(outdir), '*'))]) \ == ['!-yz-b.n', 'ABABAB.n'] # so we got re used 2nd and both patterns - -def _temp_analyze_files(): +@pytest.fixture() +def _temp_analyze_files(tmpdir): """Generate temporary analyze file pair.""" - fd, orig_img = mkstemp(suffix='.img', dir=mkdtemp()) - orig_hdr = orig_img[:-4] + '.hdr' - fp = open(orig_hdr, 'w+') - fp.close() - return orig_img, orig_hdr + orig_img = tmpdir.join("orig.img") + orig_hdr = tmpdir.join("orig.hdr") + orig_img.open('w') + orig_hdr.open('w') + return orig_img.strpath, orig_hdr.strpath -def test_datasink_copydir(): - orig_img, orig_hdr = _temp_analyze_files() - outdir = mkdtemp() +def test_datasink_copydir_1(_temp_analyze_files, tmpdir): + orig_img, orig_hdr = _temp_analyze_files + outdir = tmpdir pth, fname = os.path.split(orig_img) - ds = nio.DataSink(base_directory=outdir, parameterization=False) + ds = nio.DataSink(base_directory=outdir.strpath, parameterization=False) setattr(ds.inputs, '@outdir', pth) ds.run() sep = os.path.sep - file_exists = lambda: os.path.exists(os.path.join(outdir, + file_exists = lambda: os.path.exists(os.path.join(outdir.strpath, pth.split(sep)[-1], fname)) assert file_exists() - shutil.rmtree(pth) - orig_img, orig_hdr = _temp_analyze_files() + +def test_datasink_copydir_2(_temp_analyze_files, tmpdir): + orig_img, orig_hdr = _temp_analyze_files pth, fname = os.path.split(orig_img) + ds = nio.DataSink(base_directory=tmpdir.strpath, parameterization=False) ds.inputs.remove_dest_dir = True setattr(ds.inputs, 'outdir', pth) ds.run() + sep = os.path.sep + file_exists = lambda: os.path.exists(os.path.join(tmpdir.strpath, + pth.split(sep)[-1], + fname)) + assert not file_exists() - shutil.rmtree(outdir) - shutil.rmtree(pth) + def test_datafinder_depth(tmpdir): diff --git a/nipype/interfaces/tests/test_matlab.py b/nipype/interfaces/tests/test_matlab.py index 33f80c0fa1..25b5ac964f 100644 --- a/nipype/interfaces/tests/test_matlab.py +++ b/nipype/interfaces/tests/test_matlab.py @@ -2,8 +2,6 @@ # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: import os -from tempfile import mkdtemp -from shutil import rmtree import pytest import nipype.interfaces.matlab as mlab @@ -70,7 +68,7 @@ def test_mlab_init(): @pytest.mark.skipif(no_matlab, reason="matlab is not available") -def test_run_interface(): +def test_run_interface(tmpdir): default_script_file = clean_workspace_and_get_default_script_file() mc = mlab.MatlabCommand(matlab_cmd='foo_m') @@ -89,12 +87,10 @@ def test_run_interface(): if os.path.exists(default_script_file): # cleanup os.remove(default_script_file) - cwd = os.getcwd() - basedir = mkdtemp() - os.chdir(basedir) + cwd = tmpdir.chdir() # bypasses ubuntu dash issue - mc = mlab.MatlabCommand(script='foo;', paths=[basedir], mfile=True) + mc = mlab.MatlabCommand(script='foo;', paths=[tmpdir.strpath], mfile=True) assert not os.path.exists(default_script_file), 'scriptfile should not exist 4.' with pytest.raises(RuntimeError): mc.run() @@ -103,11 +99,10 @@ def test_run_interface(): os.remove(default_script_file) # bypasses ubuntu dash issue - res = mlab.MatlabCommand(script='a=1;', paths=[basedir], mfile=True).run() + res = mlab.MatlabCommand(script='a=1;', paths=[tmpdir.strpath], mfile=True).run() assert res.runtime.returncode == 0 assert os.path.exists(default_script_file), 'scriptfile should exist 5.' - os.chdir(cwd) - rmtree(basedir) + cwd.chdir() @pytest.mark.skipif(no_matlab, reason="matlab is not available") diff --git a/nipype/interfaces/tests/test_nilearn.py b/nipype/interfaces/tests/test_nilearn.py index 4e8299aa74..ce3846a6d3 100644 --- a/nipype/interfaces/tests/test_nilearn.py +++ b/nipype/interfaces/tests/test_nilearn.py @@ -1,8 +1,6 @@ # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: import os -import tempfile -import shutil import numpy as np @@ -33,13 +31,14 @@ class TestSignalExtraction(): labels = ['CSF', 'GrayMatter', 'WhiteMatter'] global_labels = ['GlobalSignal'] + labels - def setup_class(self): - self.orig_dir = os.getcwd() - self.temp_dir = tempfile.mkdtemp() - os.chdir(self.temp_dir) + @pytest.fixture(autouse=True, scope='class') + def setup_class(self, tmpdir_factory): + tempdir = tmpdir_factory.mktemp("test") + self.orig_dir = tempdir.chdir() utils.save_toy_nii(self.fake_fmri_data, self.filenames['in_file']) utils.save_toy_nii(self.fake_label_data, self.filenames['label_files']) + def test_signal_extract_no_shared(self): # run iface.SignalExtraction(in_file=self.filenames['in_file'], @@ -151,10 +150,9 @@ def assert_expected_output(self, labels, wanted): for j, segment in enumerate(time): npt.assert_almost_equal(segment, wanted[i][j], decimal=1) - - def teardown_class(self): - os.chdir(self.orig_dir) - shutil.rmtree(self.temp_dir) +#dj: self doesnt have orig_dir at this point, not sure how to change it. should work without it +# def teardown_class(self): +# self.orig_dir.chdir() fake_fmri_data = np.array([[[[2, -1, 4, -2, 3], diff --git a/nipype/testing/fixtures.py b/nipype/testing/fixtures.py index 12677540d1..550346d1db 100644 --- a/nipype/testing/fixtures.py +++ b/nipype/testing/fixtures.py @@ -39,66 +39,57 @@ def nifti_image_files(outdir, filelist, shape): @pytest.fixture() def create_files_in_directory(request, tmpdir): - outdir = tmpdir.strpath - cwd = os.getcwd() - os.chdir(outdir) + cwd = tmpdir.chdir() filelist = ['a.nii', 'b.nii'] - nifti_image_files(outdir, filelist, shape=(3,3,3,4)) + nifti_image_files(tmpdir.strpath, filelist, shape=(3,3,3,4)) def change_directory(): - os.chdir(cwd) + cwd.chdir() request.addfinalizer(change_directory) - return (filelist, outdir) + return (filelist, tmpdir.strpath) @pytest.fixture() def create_analyze_pair_file_in_directory(request, tmpdir): - outdir = tmpdir.strpath - cwd = os.getcwd() - os.chdir(outdir) + cwd = tmpdir.chdir() filelist = ['a.hdr'] - analyze_pair_image_files(outdir, filelist, shape=(3, 3, 3, 4)) + analyze_pair_image_files(tmpdir.strpath, filelist, shape=(3, 3, 3, 4)) def change_directory(): - os.chdir(cwd) + cwd.chdir() request.addfinalizer(change_directory) - return (filelist, outdir) + return (filelist, tmpdir.strpath) @pytest.fixture() def create_files_in_directory_plus_dummy_file(request, tmpdir): - outdir = tmpdir.strpath - cwd = os.getcwd() - os.chdir(outdir) + cwd = tmpdir.chdir() filelist = ['a.nii', 'b.nii'] - nifti_image_files(outdir, filelist, shape=(3,3,3,4)) + nifti_image_files(tmpdir.strpath, filelist, shape=(3,3,3,4)) - with open(os.path.join(outdir, 'reg.dat'), 'wt') as fp: - fp.write('dummy file') + tmpdir.join('reg.dat').write('dummy file') filelist.append('reg.dat') def change_directory(): - os.chdir(cwd) + cwd.chdir() request.addfinalizer(change_directory) - return (filelist, outdir) + return (filelist, tmpdir.strpath) @pytest.fixture() def create_surf_file_in_directory(request, tmpdir): - outdir = tmpdir.strpath - cwd = os.getcwd() - os.chdir(outdir) + cwd = tmpdir.chdir() surf = 'lh.a.nii' - nifti_image_files(outdir, filelist=surf, shape=(1, 100, 1)) + nifti_image_files(tmpdir.strpath, filelist=surf, shape=(1, 100, 1)) def change_directory(): - os.chdir(cwd) + cwd.chdir() request.addfinalizer(change_directory) - return (surf, outdir) + return (surf, tmpdir.strpath) def set_output_type(fsl_output_type): @@ -115,18 +106,15 @@ def set_output_type(fsl_output_type): @pytest.fixture(params=[None]+list(Info.ftypes)) def create_files_in_directory_plus_output_type(request, tmpdir): func_prev_type = set_output_type(request.param) - - testdir = tmpdir.strpath - origdir = os.getcwd() - os.chdir(testdir) + origdir = tmpdir.chdir() filelist = ['a.nii', 'b.nii'] - nifti_image_files(testdir, filelist, shape=(3,3,3,4)) + nifti_image_files(tmpdir.strpath, filelist, shape=(3,3,3,4)) out_ext = Info.output_type_to_ext(Info.output_type()) def fin(): set_output_type(func_prev_type) - os.chdir(origdir) + origdir.chdir() request.addfinalizer(fin) - return (filelist, testdir, out_ext) + return (filelist, tmpdir.strpath, out_ext) diff --git a/nipype/utils/tests/test_filemanip.py b/nipype/utils/tests/test_filemanip.py index 9e0f3abb78..85826ac35f 100644 --- a/nipype/utils/tests/test_filemanip.py +++ b/nipype/utils/tests/test_filemanip.py @@ -6,8 +6,6 @@ import os import time -from tempfile import mkstemp, mkdtemp -import shutil import warnings import pytest @@ -275,15 +273,14 @@ def test_list_to_filename(list, expected): assert x == expected -def test_check_depends(): +def test_check_depends(tmpdir): def touch(fname): with open(fname, 'a'): os.utime(fname, None) - tmpdir = mkdtemp() - dependencies = [os.path.join(tmpdir, str(i)) for i in range(3)] - targets = [os.path.join(tmpdir, str(i)) for i in range(3, 6)] + dependencies = [tmpdir.join(str(i)).strpath for i in range(3)] + targets = [tmpdir.join(str(i)).strpath for i in range(3, 6)] # Targets newer than dependencies for dep in dependencies: @@ -307,13 +304,11 @@ def touch(fname): else: assert False, "Should raise OSError on missing dependency" - shutil.rmtree(tmpdir) - -def test_json(): +def test_json(tmpdir): # Simple roundtrip test of json files, just a sanity check. adict = dict(a='one', c='three', b='two') - fd, name = mkstemp(suffix='.json') + name = tmpdir.join('test.json').strpath save_json(name, adict) # save_json closes the file new_dict = load_json(name) os.unlink(name) diff --git a/nipype/workflows/dmri/fsl/tests/test_dti.py b/nipype/workflows/dmri/fsl/tests/test_dti.py index 9a8ed4ca13..7c5a7a4426 100644 --- a/nipype/workflows/dmri/fsl/tests/test_dti.py +++ b/nipype/workflows/dmri/fsl/tests/test_dti.py @@ -9,15 +9,13 @@ import nipype.pipeline.engine as pe import warnings -import tempfile -import shutil from nipype.workflows.dmri.fsl.dti import create_bedpostx_pipeline from nipype.utils.filemanip import list_to_filename @pytest.mark.skipif(no_fsl(), reason="fsl is not installed") @pytest.mark.skipif(no_fsl_course_data(), reason="fsl data not available") -def test_create_bedpostx_pipeline(): +def test_create_bedpostx_pipeline(tmpdir): fsl_course_dir = os.path.abspath(os.environ['FSL_COURSE_DATA']) mask_file = os.path.join(fsl_course_dir, "fdt2/subj1.bedpostX/nodif_brain_mask.nii.gz") @@ -72,7 +70,7 @@ def test_create_bedpostx_pipeline(): test_f1 = pe.Node(util.AssertEqual(), name="mean_f1_test") pipeline = pe.Workflow(name="test_bedpostx") - pipeline.base_dir = tempfile.mkdtemp(prefix="nipype_test_bedpostx_") + pipeline.base_dir = tmpdir.mkdir("nipype_test_bedpostx_").strpath pipeline.connect([(slice_mask, original_bedpostx, [("roi_file", "mask")]), (slice_mask, nipype_bedpostx, [("roi_file", "inputnode.mask")]), @@ -85,4 +83,3 @@ def test_create_bedpostx_pipeline(): ]) pipeline.run(plugin='Linear') - shutil.rmtree(pipeline.base_dir) diff --git a/nipype/workflows/dmri/fsl/tests/test_epi.py b/nipype/workflows/dmri/fsl/tests/test_epi.py index f7b349b442..c909ff5318 100644 --- a/nipype/workflows/dmri/fsl/tests/test_epi.py +++ b/nipype/workflows/dmri/fsl/tests/test_epi.py @@ -9,14 +9,12 @@ import nipype.pipeline.engine as pe import warnings -import tempfile -import shutil from nipype.workflows.dmri.fsl.epi import create_eddy_correct_pipeline @pytest.mark.skipif(no_fsl(), reason="fsl is not installed") @pytest.mark.skipif(no_fsl_course_data(), reason="fsl data not available") -def test_create_eddy_correct_pipeline(): +def test_create_eddy_correct_pipeline(tmpdir): fsl_course_dir = os.path.abspath(os.environ['FSL_COURSE_DATA']) dwi_file = os.path.join(fsl_course_dir, "fdt1/subj1/data.nii.gz") @@ -36,7 +34,7 @@ def test_create_eddy_correct_pipeline(): test = pe.Node(util.AssertEqual(), name="eddy_corrected_dwi_test") pipeline = pe.Workflow(name="test_eddycorrect") - pipeline.base_dir = tempfile.mkdtemp(prefix="nipype_test_eddycorrect_") + pipeline.base_dir = tmpdir.mkdir(prefix="nipype_test_eddycorrect_").strpath pipeline.connect([(trim_dwi, original_eddycorrect, [("roi_file", "in_file")]), (trim_dwi, nipype_eddycorrect, [("roi_file", "inputnode.in_file")]), @@ -45,4 +43,3 @@ def test_create_eddy_correct_pipeline(): ]) pipeline.run(plugin='Linear') - shutil.rmtree(pipeline.base_dir) From 93657a8ea5a0969b00cee8ac451338dd516a1c9e Mon Sep 17 00:00:00 2001 From: Dorota Jarecka Date: Mon, 30 Oct 2017 23:55:27 -0400 Subject: [PATCH 10/16] more cleaning: mostly moving to tmpdir.chdir and tmpdir.check --- nipype/algorithms/tests/test_compcor.py | 3 +- nipype/algorithms/tests/test_confounds.py | 5 +- nipype/algorithms/tests/test_mesh_ops.py | 4 +- nipype/algorithms/tests/test_overlap.py | 2 +- nipype/algorithms/tests/test_splitmerge.py | 4 +- nipype/algorithms/tests/test_tsnr.py | 3 +- .../fsl/tests/test_Level1Design_functions.py | 2 - nipype/interfaces/fsl/tests/test_model.py | 6 +- .../interfaces/fsl/tests/test_preprocess.py | 5 +- nipype/interfaces/tests/test_base.py | 12 +-- nipype/interfaces/tests/test_io.py | 12 +-- nipype/interfaces/utility/tests/test_base.py | 6 +- .../interfaces/utility/tests/test_wrappers.py | 12 +-- nipype/pipeline/engine/tests/test_join.py | 28 +++---- nipype/pipeline/engine/tests/test_utils.py | 80 +++++++------------ nipype/pipeline/plugins/tests/test_debug.py | 2 +- nipype/pipeline/plugins/tests/test_linear.py | 2 +- .../pipeline/plugins/tests/test_somaflow.py | 2 +- nipype/testing/tests/test_utils.py | 2 +- nipype/utils/tests/test_filemanip.py | 2 +- nipype/utils/tests/test_provenance.py | 3 +- nipype/workflows/dmri/fsl/tests/test_tbss.py | 4 +- .../rsfmri/fsl/tests/test_resting.py | 2 +- 23 files changed, 85 insertions(+), 118 deletions(-) diff --git a/nipype/algorithms/tests/test_compcor.py b/nipype/algorithms/tests/test_compcor.py index 494fc43b86..9407e6ef0d 100644 --- a/nipype/algorithms/tests/test_compcor.py +++ b/nipype/algorithms/tests/test_compcor.py @@ -21,8 +21,7 @@ class TestCompCor(): @pytest.fixture(autouse=True) def setup_class(self, tmpdir): # setup - self.temp_dir = tmpdir.strpath - os.chdir(self.temp_dir) + tmpdir.chdir() noise = np.fromfunction(self.fake_noise_fun, self.fake_data.shape) self.realigned_file = utils.save_toy_nii(self.fake_data + noise, self.filenames['functionalnii']) diff --git a/nipype/algorithms/tests/test_confounds.py b/nipype/algorithms/tests/test_confounds.py index 708d1f8fa6..8c2626457e 100644 --- a/nipype/algorithms/tests/test_confounds.py +++ b/nipype/algorithms/tests/test_confounds.py @@ -43,7 +43,7 @@ def test_dvars(tmpdir): in_mask=example_data('ds003_sub-01_mc_brainmask.nii.gz'), save_all=True, intensity_normalization=0) - os.chdir(tmpdir.strpath) + tmpdir.chdir() res = dvars.run() dv1 = np.loadtxt(res.outputs.out_all, skiprows=1) @@ -66,7 +66,8 @@ def test_dvars(tmpdir): assert (np.abs(dv1[:, 2] - ground_truth[:, 2]).sum() / len(dv1)) < 0.05 -def test_outliers(tmpdir): + +def test_outliers(): np.random.seed(0) in_data = np.random.randn(100) in_data[0] += 10 diff --git a/nipype/algorithms/tests/test_mesh_ops.py b/nipype/algorithms/tests/test_mesh_ops.py index 5e792585b8..9d510dee2b 100644 --- a/nipype/algorithms/tests/test_mesh_ops.py +++ b/nipype/algorithms/tests/test_mesh_ops.py @@ -62,14 +62,14 @@ def test_trans_distances(tmpdir): @pytest.mark.skipif(VTKInfo.no_tvtk(), reason="tvtk is not installed") def test_warppoints(tmpdir): - os.chdir(tmpdir.strpath) + tmpdir.chdir() # TODO: include regression tests for when tvtk is installed @pytest.mark.skipif(VTKInfo.no_tvtk(), reason="tvtk is not installed") def test_meshwarpmaths(tmpdir): - os.chdir(tmpdir.strpath) + tmpdir.chdir() # TODO: include regression tests for when tvtk is installed diff --git a/nipype/algorithms/tests/test_overlap.py b/nipype/algorithms/tests/test_overlap.py index a04711845c..e0ec5bcfcb 100644 --- a/nipype/algorithms/tests/test_overlap.py +++ b/nipype/algorithms/tests/test_overlap.py @@ -20,7 +20,7 @@ def check_close(val1, val2): in1 = example_data('segmentation0.nii.gz') in2 = example_data('segmentation1.nii.gz') - os.chdir(tmpdir.strpath) + tmpdir.chdir() overlap = Overlap() overlap.inputs.volume1 = in1 overlap.inputs.volume2 = in1 diff --git a/nipype/algorithms/tests/test_splitmerge.py b/nipype/algorithms/tests/test_splitmerge.py index 799d199a53..d7e98a47ba 100644 --- a/nipype/algorithms/tests/test_splitmerge.py +++ b/nipype/algorithms/tests/test_splitmerge.py @@ -14,13 +14,13 @@ def test_split_and_merge(tmpdir): from nipype.algorithms.misc import split_rois, merge_rois in_mask = example_data('tpms_msk.nii.gz') - dwfile = op.join(tmpdir.strpath, 'dwi.nii.gz') + dwfile = tmpdir.join('dwi.nii.gz').strpath mskdata = nb.load(in_mask, mmap=NUMPY_MMAP).get_data() aff = nb.load(in_mask, mmap=NUMPY_MMAP).affine dwshape = (mskdata.shape[0], mskdata.shape[1], mskdata.shape[2], 6) dwdata = np.random.normal(size=dwshape) - os.chdir(tmpdir.strpath) + tmpdir.chdir() nb.Nifti1Image(dwdata.astype(np.float32), aff, None).to_filename(dwfile) diff --git a/nipype/algorithms/tests/test_tsnr.py b/nipype/algorithms/tests/test_tsnr.py index 89aa31879b..f4bac9a17d 100644 --- a/nipype/algorithms/tests/test_tsnr.py +++ b/nipype/algorithms/tests/test_tsnr.py @@ -30,8 +30,7 @@ class TestTSNR(): @pytest.fixture(autouse=True) def setup_class(self, tmpdir): # setup temp folder - self.temp_dir = tmpdir.strpath - os.chdir(self.temp_dir) + tmpdir.chdir() utils.save_toy_nii(self.fake_data, self.in_filenames['in_file']) diff --git a/nipype/interfaces/fsl/tests/test_Level1Design_functions.py b/nipype/interfaces/fsl/tests/test_Level1Design_functions.py index 4669b09463..b7573f7454 100644 --- a/nipype/interfaces/fsl/tests/test_Level1Design_functions.py +++ b/nipype/interfaces/fsl/tests/test_Level1Design_functions.py @@ -30,5 +30,3 @@ def test_level1design(tmpdir): do_tempfilter, key) assert "set fmri(convolve1) {0}".format(val) in output_txt - - os.chdir(old.strpath) diff --git a/nipype/interfaces/fsl/tests/test_model.py b/nipype/interfaces/fsl/tests/test_model.py index 1ec096ff94..b2e3f8571c 100644 --- a/nipype/interfaces/fsl/tests/test_model.py +++ b/nipype/interfaces/fsl/tests/test_model.py @@ -13,7 +13,7 @@ @pytest.mark.skipif(no_fsl(), reason="fsl is not installed") def test_MultipleRegressDesign(tmpdir): - os.chdir(tmpdir.strpath) + tmpdir.chdir() foo = fsl.MultipleRegressDesign() foo.inputs.regressors = dict(voice_stenght=[1, 1, 1], age=[0.2, 0.4, 0.5], BMI=[1, -1, 2]) con1 = ['voice_and_age', 'T', ['age', 'voice_stenght'], [0.5, 0.5]] @@ -22,7 +22,7 @@ def test_MultipleRegressDesign(tmpdir): res = foo.run() for ii in ["mat", "con", "fts", "grp"]: - assert getattr(res.outputs, "design_"+ii) == os.path.join(os.getcwd(), 'design.'+ii) + assert getattr(res.outputs, "design_"+ii) == tmpdir.join('design.'+ii).strpath design_mat_expected_content = """/NumWaves 3 /NumPoints 3 @@ -62,6 +62,6 @@ def test_MultipleRegressDesign(tmpdir): 1 """ for ii in ["mat", "con", "fts", "grp"]: - assert open(os.path.join(os.getcwd(), 'design.'+ii), 'r').read() == eval("design_"+ii+"_expected_content") + assert tmpdir.join('design.'+ii).read() == eval("design_"+ii+"_expected_content") diff --git a/nipype/interfaces/fsl/tests/test_preprocess.py b/nipype/interfaces/fsl/tests/test_preprocess.py index 8b240875cb..3d75d514a6 100644 --- a/nipype/interfaces/fsl/tests/test_preprocess.py +++ b/nipype/interfaces/fsl/tests/test_preprocess.py @@ -547,11 +547,10 @@ def setup_fugue(tmpdir): import os.path as op d = np.ones((80, 80, 80)) - tmp_dir = tmpdir.strpath - infile = op.join(tmp_dir, 'dumbfile.nii.gz') + infile = tmpdir.join('dumbfile.nii.gz').strpath nb.Nifti1Image(d, None, None).to_filename(infile) - return (tmp_dir, infile) + return (tmpdir, infile) @pytest.mark.skipif(no_fsl(), reason="fsl is not installed") diff --git a/nipype/interfaces/tests/test_base.py b/nipype/interfaces/tests/test_base.py index f8610cec97..48a44ad6a4 100644 --- a/nipype/interfaces/tests/test_base.py +++ b/nipype/interfaces/tests/test_base.py @@ -70,14 +70,14 @@ def test_bunch_hash(): @pytest.fixture(scope="module") def setup_file(request, tmpdir_factory): - tmp_dir = tmpdir_factory.mktemp('files').strpath - tmp_infile = os.path.join(tmp_dir, 'foo.txt') - with open(tmp_infile, 'w') as fp: + tmp_dir = tmpdir_factory.mktemp('files') + tmp_infile = tmp_dir.join('foo.txt') + with tmp_infile.open('w') as fp: fp.writelines([u'123456789']) - os.chdir(tmp_dir) + tmp_dir.chdir() - return tmp_infile + return tmp_infile.strpath def test_TraitedSpec(): @@ -412,7 +412,7 @@ def _run_interface(self, runtime): def test_BaseInterface_load_save_inputs(tmpdir): - tmp_json = os.path.join(tmpdir.strpath, 'settings.json') + tmp_json = tmpdir.join('settings.json').strpath class InputSpec(nib.TraitedSpec): input1 = nib.traits.Int() diff --git a/nipype/interfaces/tests/test_io.py b/nipype/interfaces/tests/test_io.py index c9ff773fa6..1f8b404f54 100644 --- a/nipype/interfaces/tests/test_io.py +++ b/nipype/interfaces/tests/test_io.py @@ -353,9 +353,7 @@ def test_datasink_copydir_1(_temp_analyze_files, tmpdir): setattr(ds.inputs, '@outdir', pth) ds.run() sep = os.path.sep - file_exists = lambda: os.path.exists(os.path.join(outdir.strpath, - pth.split(sep)[-1], - fname)) + file_exists = lambda: tmpdir.join(pth.split(sep)[-1], fname).check() assert file_exists() @@ -367,9 +365,7 @@ def test_datasink_copydir_2(_temp_analyze_files, tmpdir): setattr(ds.inputs, 'outdir', pth) ds.run() sep = os.path.sep - file_exists = lambda: os.path.exists(os.path.join(tmpdir.strpath, - pth.split(sep)[-1], - fname)) + file_exists = lambda: tmpdir.join(pth.split(sep)[-1], fname).check() assert not file_exists() @@ -414,7 +410,7 @@ def test_freesurfersource(): assert fss.inputs.subjects_dir == Undefined -def test_jsonsink_input(tmpdir): +def test_jsonsink_input(): ds = nio.JSONFileSink() assert ds.inputs._outputs == {} @@ -431,7 +427,7 @@ def test_jsonsink_input(tmpdir): {'new_entry' : 'someValue', 'test' : 'testInfields'} ]) def test_jsonsink(tmpdir, inputs_attributes): - os.chdir(tmpdir.strpath) + tmpdir.chdir() js = nio.JSONFileSink(infields=['test'], in_dict={'foo': 'var'}) setattr(js.inputs, 'contrasts.alt', 'someNestedValue') expected_data = {"contrasts": {"alt": "someNestedValue"}, "foo": "var"} diff --git a/nipype/interfaces/utility/tests/test_base.py b/nipype/interfaces/utility/tests/test_base.py index 6f17f4c907..3e66f827d2 100644 --- a/nipype/interfaces/utility/tests/test_base.py +++ b/nipype/interfaces/utility/tests/test_base.py @@ -11,7 +11,7 @@ def test_rename(tmpdir): - os.chdir(tmpdir.strpath) + tmpdir.chdir() # Test very simple rename _ = open("file.txt", "w").close() @@ -41,7 +41,7 @@ def test_rename(tmpdir): ({"squeeze" : True}, (0 , [1,2,3])) ]) def test_split(tmpdir, args, expected): - os.chdir(tmpdir.strpath) + tmpdir.chdir() node = pe.Node(utility.Split(inlist=list(range(4)), splits=[1, 3], @@ -64,7 +64,7 @@ def test_split(tmpdir, args, expected): [[0, 2, 4], [1, 3, 5]]), ]) def test_merge(tmpdir, args, kwargs, in_lists, expected): - os.chdir(tmpdir.strpath) + tmpdir.chdir() node = pe.Node(utility.Merge(*args, **kwargs), name='merge') diff --git a/nipype/interfaces/utility/tests/test_wrappers.py b/nipype/interfaces/utility/tests/test_wrappers.py index 8c05dc8609..b995dc27ad 100644 --- a/nipype/interfaces/utility/tests/test_wrappers.py +++ b/nipype/interfaces/utility/tests/test_wrappers.py @@ -16,7 +16,7 @@ def concat_sort(in_arrays): """ def test_function(tmpdir): - os.chdir(tmpdir.strpath) + tmpdir.chdir() def gen_random_array(size): import numpy as np @@ -46,8 +46,8 @@ def make_random_array(size): return np.random.randn(size, size) -def should_fail(tmpdir): - os.chdir(tmpdir) +def should_fail(tmp): + tmp.chdir() node = pe.Node(utility.Function(input_names=["size"], output_names=["random_array"], @@ -59,11 +59,11 @@ def should_fail(tmpdir): def test_should_fail(tmpdir): with pytest.raises(NameError): - should_fail(tmpdir.strpath) + should_fail(tmpdir) def test_function_with_imports(tmpdir): - os.chdir(tmpdir.strpath) + tmpdir.chdir() node = pe.Node(utility.Function(input_names=["size"], output_names=["random_array"], @@ -79,7 +79,7 @@ def test_aux_connect_function(tmpdir): """ This tests excution nodes with multiple inputs and auxiliary function inside the Workflow connect function. """ - os.chdir(tmpdir.strpath) + tmpdir.chdir() wf = pe.Workflow(name="test_workflow") diff --git a/nipype/pipeline/engine/tests/test_join.py b/nipype/pipeline/engine/tests/test_join.py index 096d9a9d56..a77745eb03 100644 --- a/nipype/pipeline/engine/tests/test_join.py +++ b/nipype/pipeline/engine/tests/test_join.py @@ -149,7 +149,7 @@ def _list_outputs(self): def test_join_expansion(tmpdir): - os.chdir(tmpdir.strpath) + tmpdir.chdir() # Make the workflow. wf = pe.Workflow(name='test') @@ -196,7 +196,7 @@ def test_join_expansion(tmpdir): def test_node_joinsource(tmpdir): """Test setting the joinsource to a Node.""" - os.chdir(tmpdir.strpath) + tmpdir.chdir() # Make the workflow. wf = pe.Workflow(name='test') @@ -214,7 +214,7 @@ def test_node_joinsource(tmpdir): def test_set_join_node(tmpdir): """Test collecting join inputs to a set.""" - os.chdir(tmpdir.strpath) + tmpdir.chdir() # Make the workflow. wf = pe.Workflow(name='test') @@ -240,7 +240,7 @@ def test_unique_join_node(tmpdir): """Test join with the ``unique`` flag set to True.""" global _sum_operands _sum_operands = [] - os.chdir(tmpdir.strpath) + tmpdir.chdir() # Make the workflow. wf = pe.Workflow(name='test') @@ -265,7 +265,7 @@ def test_multiple_join_nodes(tmpdir): """Test two join nodes, one downstream of the other.""" global _products _products = [] - os.chdir(tmpdir.strpath) + tmpdir.chdir() # Make the workflow. wf = pe.Workflow(name='test') @@ -318,7 +318,7 @@ def test_identity_join_node(tmpdir): """Test an IdentityInterface join.""" global _sum_operands _sum_operands = [] - os.chdir(tmpdir.strpath) + tmpdir.chdir() # Make the workflow. wf = pe.Workflow(name='test') @@ -353,7 +353,7 @@ def test_multifield_join_node(tmpdir): """Test join on several fields.""" global _products _products = [] - os.chdir(tmpdir.strpath) + tmpdir.chdir() # Make the workflow. wf = pe.Workflow(name='test') @@ -393,7 +393,7 @@ def test_synchronize_join_node(tmpdir): """Test join on an input node which has the ``synchronize`` flag set to True.""" global _products _products = [] - os.chdir(tmpdir.strpath) + tmpdir.chdir() # Make the workflow. wf = pe.Workflow(name='test') @@ -430,7 +430,7 @@ def test_synchronize_join_node(tmpdir): def test_itersource_join_source_node(tmpdir): """Test join on an input node which has an ``itersource``.""" - os.chdir(tmpdir.strpath) + tmpdir.chdir() # Make the workflow. wf = pe.Workflow(name='test') @@ -484,7 +484,7 @@ def test_itersource_join_source_node(tmpdir): def test_itersource_two_join_nodes(tmpdir): """Test join with a midstream ``itersource`` and an upstream iterable.""" - os.chdir(tmpdir.strpath) + tmpdir.chdir() # Make the workflow. wf = pe.Workflow(name='test') @@ -524,8 +524,7 @@ def test_itersource_two_join_nodes(tmpdir): def test_set_join_node_file_input(tmpdir): """Test collecting join inputs to a set.""" - wd = tmpdir.strpath - os.chdir(wd) + tmpdir.chdir() open('test.nii', 'w+').close() open('test2.nii', 'w+').close() @@ -533,7 +532,7 @@ def test_set_join_node_file_input(tmpdir): wf = pe.Workflow(name='test') # the iterated input node inputspec = pe.Node(IdentityInterface(fields=['n']), name='inputspec') - inputspec.iterables = [('n', [os.path.join(wd, 'test.nii'), os.path.join(wd, 'test2.nii')])] + inputspec.iterables = [('n', [tmpdir.join('test.nii').strpath, tmpdir.join('test2.nii').strpath])] # a pre-join node in the iterated path pre_join1 = pe.Node(IdentityInterface(fields=['n']), name='pre_join1') wf.connect(inputspec, 'n', pre_join1, 'n') @@ -547,8 +546,7 @@ def test_set_join_node_file_input(tmpdir): def test_nested_workflow_join(tmpdir): """Test collecting join inputs within a nested workflow""" - wd = tmpdir.strpath - os.chdir(wd) + tmpdir.chdir() # Make the nested workflow def nested_wf(i, name='smallwf'): diff --git a/nipype/pipeline/engine/tests/test_utils.py b/nipype/pipeline/engine/tests/test_utils.py index 90db34ec59..15397acff1 100644 --- a/nipype/pipeline/engine/tests/test_utils.py +++ b/nipype/pipeline/engine/tests/test_utils.py @@ -24,23 +24,22 @@ def test_function(arg1, arg2, arg3): import numpy as np return (np.array(arg1) + arg2 + arg3).tolist() - out_dir = tmpdir.strpath - wf = pe.Workflow(name="testidentity", base_dir=out_dir) + wf = pe.Workflow(name="testidentity", base_dir=tmpdir.strpath) - n1 = pe.Node(niu.IdentityInterface(fields=['a', 'b']), name='src', base_dir=out_dir,) + n1 = pe.Node(niu.IdentityInterface(fields=['a', 'b']), name='src', base_dir=tmpdir.strpath) n1.iterables = ('b', [0, 1, 2, 3]) n1.inputs.a = [0, 1, 2, 3] - n2 = pe.Node(niu.Select(), name='selector', base_dir=out_dir,) + n2 = pe.Node(niu.Select(), name='selector', base_dir=tmpdir.strpath) wf.connect(n1, ('a', test_function, 1, -1), n2, 'inlist') wf.connect(n1, 'b', n2, 'index') - n3 = pe.Node(niu.IdentityInterface(fields=['c', 'd']), name='passer', base_dir=out_dir,) + n3 = pe.Node(niu.IdentityInterface(fields=['c', 'd']), name='passer', base_dir=tmpdir.strpath) n3.inputs.c = [1, 2, 3, 4] wf.connect(n2, 'out', n3, 'd') - n4 = pe.Node(niu.Select(), name='selector2', base_dir=out_dir,) + n4 = pe.Node(niu.Select(), name='selector2', base_dir=tmpdir.strpath) wf.connect(n3, ('c', test_function, 1, -1), n4, 'inlist') wf.connect(n3, 'd', n4, 'index') @@ -60,15 +59,13 @@ class InputSpec(nib.TraitedSpec): outputs = OutputSpec() inputs = InputSpec() - wd = tmpdir.strpath filenames = ['file.hdr', 'file.img', 'file.BRIK', 'file.HEAD', '_0x1234.json', 'foo.txt'] outfiles = [] for filename in filenames: - outfile = os.path.join(wd, filename) - with open(outfile, 'wt') as fp: - fp.writelines('dummy') - outfiles.append(outfile) + outfile = tmpdir.join(filename) + outfile.write('dummy') + outfiles.append(outfile.strpath) outputs.files = outfiles[:4:2] outputs.others = outfiles[5] inputs.infile = outfiles[-1] @@ -77,12 +74,12 @@ class InputSpec(nib.TraitedSpec): assert os.path.exists(outfiles[5]) config.set_default_config() config.set('execution', 'remove_unnecessary_outputs', False) - out = clean_working_directory(outputs, wd, inputs, needed_outputs, + out = clean_working_directory(outputs, tmpdir.strpath, inputs, needed_outputs, deepcopy(config._sections)) assert os.path.exists(outfiles[5]) assert out.others == outfiles[5] config.set('execution', 'remove_unnecessary_outputs', True) - out = clean_working_directory(outputs, wd, inputs, needed_outputs, + out = clean_working_directory(outputs, tmpdir.strpath, inputs, needed_outputs, deepcopy(config._sections)) assert os.path.exists(outfiles[1]) assert os.path.exists(outfiles[3]) @@ -107,30 +104,21 @@ def test_function(arg1): fp.close() return file1, file2 - out_dir = tmpdir.strpath n1 = pe.Node(niu.Function(input_names=['arg1'], output_names=['file1', 'file2'], function=test_function), - base_dir=out_dir, + base_dir=tmpdir.strpath, name='testoutputs') n1.inputs.arg1 = 1 n1.config = {'execution': {'remove_unnecessary_outputs': True}} n1.config = merge_dict(deepcopy(config._sections), n1.config) n1.run() - assert os.path.exists(os.path.join(out_dir, - n1.name, - 'file1.txt')) - assert os.path.exists(os.path.join(out_dir, - n1.name, - 'file2.txt')) + assert tmpdir.join(n1.name,'file1.txt').check() + assert tmpdir.join(n1.name,'file1.txt').check() n1.needed_outputs = ['file2'] n1.run() - assert not os.path.exists(os.path.join(out_dir, - n1.name, - 'file1.txt')) - assert os.path.exists(os.path.join(out_dir, - n1.name, - 'file2.txt')) + assert not tmpdir.join(n1.name,'file1.txt').check() + assert tmpdir.join(n1.name,'file2.txt').check() class InputSpec(nib.TraitedSpec): @@ -156,29 +144,22 @@ def _list_outputs(self): def test_inputs_removal(tmpdir): - out_dir = tmpdir.strpath - file1 = os.path.join(out_dir, 'file1.txt') - fp = open(file1, 'wt') - fp.write('dummy_file') - fp.close() + file1 = tmpdir.join('file1.txt') + file1.write('dummy_file') n1 = pe.Node(UtilsTestInterface(), - base_dir=out_dir, + base_dir=tmpdir.strpath, name='testinputs') - n1.inputs.in_file = file1 + n1.inputs.in_file = file1.strpath n1.config = {'execution': {'keep_inputs': True}} n1.config = merge_dict(deepcopy(config._sections), n1.config) n1.run() - assert os.path.exists(os.path.join(out_dir, - n1.name, - 'file1.txt')) - n1.inputs.in_file = file1 + assert tmpdir.join(n1.name,'file1.txt').check() + n1.inputs.in_file = file1.strpath n1.config = {'execution': {'keep_inputs': False}} n1.config = merge_dict(deepcopy(config._sections), n1.config) n1.overwrite = True n1.run() - assert not os.path.exists(os.path.join(out_dir, - n1.name, - 'file1.txt')) + assert not tmpdir.join(n1.name,'file1.txt').check() def test_outputs_removal_wf(tmpdir): @@ -212,27 +193,26 @@ def test_function3(arg): import os return arg - out_dir = tmpdir.strpath for plugin in ('Linear',): # , 'MultiProc'): n1 = pe.Node(niu.Function(input_names=['arg1'], output_names=['out_file1', 'out_file2', 'dir'], function=test_function), - name='n1', base_dir=out_dir) + name='n1', base_dir=tmpdir.strpath) n1.inputs.arg1 = 1 n2 = pe.Node(niu.Function(input_names=['in_file', 'arg'], output_names=['out_file1', 'out_file2', 'n'], function=test_function2), - name='n2', base_dir=out_dir) + name='n2', base_dir=tmpdir.strpath) n2.inputs.arg = 2 n3 = pe.Node(niu.Function(input_names=['arg'], output_names=['n'], function=test_function3), - name='n3', base_dir=out_dir) + name='n3', base_dir=tmpdir.strpath) - wf = pe.Workflow(name="node_rem_test" + plugin, base_dir=out_dir) + wf = pe.Workflow(name="node_rem_test" + plugin, base_dir=tmpdir.strpath) wf.connect(n1, "out_file1", n2, "in_file") wf.run(plugin='Linear') @@ -273,7 +253,7 @@ def test_function3(arg): n2.name, 'file3.txt')) != remove_unnecessary_outputs - n4 = pe.Node(UtilsTestInterface(), name='n4', base_dir=out_dir) + n4 = pe.Node(UtilsTestInterface(), name='n4', base_dir=tmpdir.strpath) wf.connect(n2, "out_file1", n4, "in_file") def pick_first(l): @@ -329,13 +309,11 @@ def test_multi_disconnected_iterable(tmpdir): def test_provenance(tmpdir): - out_dir = tmpdir.strpath metawf = pe.Workflow(name='meta') - metawf.base_dir = out_dir + metawf.base_dir = tmpdir.strpath metawf.add_nodes([create_wf('wf%d' % i) for i in range(1)]) eg = metawf.run(plugin='Linear') - prov_base = os.path.join(out_dir, - 'workflow_provenance_test') + prov_base = tmpdir.join('workflow_provenance_test').strpath psg = write_workflow_prov(eg, prov_base, format='all') assert len(psg.bundles) == 2 assert len(psg.get_records()) == 7 diff --git a/nipype/pipeline/plugins/tests/test_debug.py b/nipype/pipeline/plugins/tests/test_debug.py index 273995724c..e7997ba7f0 100644 --- a/nipype/pipeline/plugins/tests/test_debug.py +++ b/nipype/pipeline/plugins/tests/test_debug.py @@ -34,7 +34,7 @@ def callme(node, graph): def test_debug(tmpdir): - os.chdir(tmpdir.strpath) + tmpdir.chdir() pipe = pe.Workflow(name='pipe') mod1 = pe.Node(DebugTestInterface(), name='mod1') diff --git a/nipype/pipeline/plugins/tests/test_linear.py b/nipype/pipeline/plugins/tests/test_linear.py index f021821912..afb916f6eb 100644 --- a/nipype/pipeline/plugins/tests/test_linear.py +++ b/nipype/pipeline/plugins/tests/test_linear.py @@ -29,7 +29,7 @@ def _list_outputs(self): def test_run_in_series(tmpdir): - os.chdir(tmpdir.strpath) + tmpdir.chdir() pipe = pe.Workflow(name='pipe') mod1 = pe.Node(interface=LinearTestInterface(), name='mod1') diff --git a/nipype/pipeline/plugins/tests/test_somaflow.py b/nipype/pipeline/plugins/tests/test_somaflow.py index feedd4ed18..7449d0d3ae 100644 --- a/nipype/pipeline/plugins/tests/test_somaflow.py +++ b/nipype/pipeline/plugins/tests/test_somaflow.py @@ -34,7 +34,7 @@ def _list_outputs(self): @pytest.mark.skipif(soma_not_loaded, reason="soma not loaded") def test_run_somaflow(tmpdir): - os.chdir(tmpdir.strpath) + tmpdir.chdir() pipe = pe.Workflow(name='pipe') mod1 = pe.Node(interface=SomaTestInterface(), name='mod1') diff --git a/nipype/testing/tests/test_utils.py b/nipype/testing/tests/test_utils.py index e2ca3a32de..557ac9c25c 100644 --- a/nipype/testing/tests/test_utils.py +++ b/nipype/testing/tests/test_utils.py @@ -18,7 +18,7 @@ def test_tempfatfs(): warnings.warn("Cannot mount FAT filesystems with FUSE") else: with fatfs as tmpdir: - assert os.path.exists(tmpdir) + assert tmpdir.check() @patch('subprocess.check_call', MagicMock( side_effect=subprocess.CalledProcessError('',''))) diff --git a/nipype/utils/tests/test_filemanip.py b/nipype/utils/tests/test_filemanip.py index 85826ac35f..d50bef355a 100644 --- a/nipype/utils/tests/test_filemanip.py +++ b/nipype/utils/tests/test_filemanip.py @@ -91,7 +91,7 @@ def _temp_analyze_files_prime(tmpdir): orig_hdr = tmpdir.join("orig_prime.hdr") orig_img.open('w+').close() orig_hdr.open('w+').close() - return str(orig_img), str(orig_hdr) + return orig_img.strpath, orig_hdr.strpath def test_copyfile(_temp_analyze_files): diff --git a/nipype/utils/tests/test_provenance.py b/nipype/utils/tests/test_provenance.py index 1cbdaf185a..ce35a95aac 100644 --- a/nipype/utils/tests/test_provenance.py +++ b/nipype/utils/tests/test_provenance.py @@ -30,8 +30,7 @@ def test_provenance_exists(tmpdir): CommandLine('echo hello').run() config.set('execution', 'write_provenance', provenance_state) config.set('execution', 'hash_method', hash_state) - provenance_exists = os.path.exists(tmpdir.join('provenance.provn').strpath) - assert provenance_exists + assert tmpdir.join('provenance.provn').check() def test_safe_encode(): a = '\xc3\xa9lg' diff --git a/nipype/workflows/dmri/fsl/tests/test_tbss.py b/nipype/workflows/dmri/fsl/tests/test_tbss.py index 20f7331fda..9cf2c9fe50 100644 --- a/nipype/workflows/dmri/fsl/tests/test_tbss.py +++ b/nipype/workflows/dmri/fsl/tests/test_tbss.py @@ -126,7 +126,7 @@ def _tbss_test_helper(estimate_skeleton): @pytest.mark.skipif(no_fsl(), reason="fsl is not installed") @pytest.mark.skipif(no_fsl_course_data(), reason="fsl data not available") -def disabled_tbss_est_skeleton(): +def test_disabled_tbss_est_skeleton(): _tbss_test_helper(True) # this test is disabled until we figure out what is wrong with TBSS in 5.0.9 @@ -134,5 +134,5 @@ def disabled_tbss_est_skeleton(): @pytest.mark.skipif(no_fsl(), reason="fsl is not installed") @pytest.mark.skipif(no_fsl_course_data(), reason="fsl data not available") -def disabled_tbss_est_skeleton_use_precomputed_skeleton(): +def test_disabled_tbss_est_skeleton_use_precomputed_skeleton(): _tbss_test_helper(False) diff --git a/nipype/workflows/rsfmri/fsl/tests/test_resting.py b/nipype/workflows/rsfmri/fsl/tests/test_resting.py index af90c002b2..68e62d7ee8 100644 --- a/nipype/workflows/rsfmri/fsl/tests/test_resting.py +++ b/nipype/workflows/rsfmri/fsl/tests/test_resting.py @@ -51,7 +51,7 @@ class TestResting(): @pytest.fixture(autouse=True) def setup_class(self, tmpdir): # setup temp folder - os.chdir(tmpdir.strpath) + tmpdir.chdir() self.in_filenames = {key: os.path.abspath(value) for key, value in self.in_filenames.items()} From 9f009f7046a27014ef62345fdf4e2f8169f8d7f8 Mon Sep 17 00:00:00 2001 From: Dorota Jarecka Date: Mon, 30 Oct 2017 23:58:52 -0400 Subject: [PATCH 11/16] small fix --- nipype/workflows/dmri/fsl/tests/test_epi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nipype/workflows/dmri/fsl/tests/test_epi.py b/nipype/workflows/dmri/fsl/tests/test_epi.py index c909ff5318..eeb36ee409 100644 --- a/nipype/workflows/dmri/fsl/tests/test_epi.py +++ b/nipype/workflows/dmri/fsl/tests/test_epi.py @@ -34,7 +34,7 @@ def test_create_eddy_correct_pipeline(tmpdir): test = pe.Node(util.AssertEqual(), name="eddy_corrected_dwi_test") pipeline = pe.Workflow(name="test_eddycorrect") - pipeline.base_dir = tmpdir.mkdir(prefix="nipype_test_eddycorrect_").strpath + pipeline.base_dir = tmpdir.mkdir("nipype_test_eddycorrect_").strpath pipeline.connect([(trim_dwi, original_eddycorrect, [("roi_file", "in_file")]), (trim_dwi, nipype_eddycorrect, [("roi_file", "inputnode.in_file")]), From f51b918ad5cf719f1d13f96d81846427a769b120 Mon Sep 17 00:00:00 2001 From: Dorota Jarecka Date: Tue, 31 Oct 2017 07:51:30 -0400 Subject: [PATCH 12/16] small fix --- nipype/testing/tests/test_utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nipype/testing/tests/test_utils.py b/nipype/testing/tests/test_utils.py index 557ac9c25c..838c3d167a 100644 --- a/nipype/testing/tests/test_utils.py +++ b/nipype/testing/tests/test_utils.py @@ -17,8 +17,8 @@ def test_tempfatfs(): except (IOError, OSError): warnings.warn("Cannot mount FAT filesystems with FUSE") else: - with fatfs as tmpdir: - assert tmpdir.check() + with fatfs as tmp_dir: + assert os.path.exists(tmp_dir) @patch('subprocess.check_call', MagicMock( side_effect=subprocess.CalledProcessError('',''))) From c44ab689e4c6450666c25a99575de8e90fdb95be Mon Sep 17 00:00:00 2001 From: Dorota Jarecka Date: Tue, 31 Oct 2017 18:19:48 -0400 Subject: [PATCH 13/16] changing 4 more tests to avoid errors on read-only --- nipype/interfaces/base.py | 2 ++ nipype/interfaces/cmtk/tests/test_nbs.py | 3 ++- nipype/interfaces/nitime/tests/test_nitime.py | 3 ++- nipype/pipeline/engine/tests/test_utils.py | 1 + 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/nipype/interfaces/base.py b/nipype/interfaces/base.py index b8430cb9dc..c645c23337 100644 --- a/nipype/interfaces/base.py +++ b/nipype/interfaces/base.py @@ -1225,6 +1225,8 @@ class SimpleInterface(BaseInterface): Examples -------- + >>> tmp = getfixture('tmpdir') + >>> old = tmp.chdir() # changing to a temporary directory >>> def double(x): ... return 2 * x ... diff --git a/nipype/interfaces/cmtk/tests/test_nbs.py b/nipype/interfaces/cmtk/tests/test_nbs.py index 799441dbbf..0516390b02 100644 --- a/nipype/interfaces/cmtk/tests/test_nbs.py +++ b/nipype/interfaces/cmtk/tests/test_nbs.py @@ -26,7 +26,8 @@ def creating_graphs(tmpdir): @pytest.mark.skipif(have_cv, reason="tests for import error, cviewer available") -def test_importerror(creating_graphs): +def test_importerror(creating_graphs, tmpdir): + tmpdir.chdir() graphlist = creating_graphs group1 = graphlist[:3] group2 = graphlist[3:] diff --git a/nipype/interfaces/nitime/tests/test_nitime.py b/nipype/interfaces/nitime/tests/test_nitime.py index fa6ace4014..d37fea4f4f 100644 --- a/nipype/interfaces/nitime/tests/test_nitime.py +++ b/nipype/interfaces/nitime/tests/test_nitime.py @@ -30,11 +30,12 @@ def test_read_csv(): @pytest.mark.skipif(no_nitime, reason="nitime is not installed") -def test_coherence_analysis(): +def test_coherence_analysis(tmpdir): """Test that the coherence analyzer works """ import nitime.analysis as nta import nitime.timeseries as ts + tmpdir.chdir() # This is the nipype interface analysis: CA = nitime.CoherenceAnalyzer() CA.inputs.TR = 1.89 diff --git a/nipype/pipeline/engine/tests/test_utils.py b/nipype/pipeline/engine/tests/test_utils.py index 15397acff1..a61957f442 100644 --- a/nipype/pipeline/engine/tests/test_utils.py +++ b/nipype/pipeline/engine/tests/test_utils.py @@ -364,6 +364,7 @@ def test_mapnode_crash2(tmpdir): reason="the famous segfault #1788") def test_mapnode_crash3(tmpdir): """Test mapnode crash when mapnode is embedded in a workflow""" + tmpdir.chdir() node = pe.MapNode(niu.Function(input_names=['WRONG'], output_names=['newstring'], function=dummy_func), From 01d6dd252c0b46c2402580c3cf73b60093e768f3 Mon Sep 17 00:00:00 2001 From: Dorota Jarecka Date: Wed, 1 Nov 2017 11:01:35 -0400 Subject: [PATCH 14/16] changing crashfile dir in one test to avoid read-only problems --- nipype/pipeline/engine/tests/test_utils.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nipype/pipeline/engine/tests/test_utils.py b/nipype/pipeline/engine/tests/test_utils.py index a61957f442..34ec45cfa8 100644 --- a/nipype/pipeline/engine/tests/test_utils.py +++ b/nipype/pipeline/engine/tests/test_utils.py @@ -374,5 +374,7 @@ def test_mapnode_crash3(tmpdir): wf = pe.Workflow('testmapnodecrash') wf.add_nodes([node]) wf.base_dir = tmpdir.strpath + #changing crashdump dir to cwl (to avoid problems with read-only systems) + wf.config["execution"]["crashdump_dir"] = os.getcwd() with pytest.raises(RuntimeError): wf.run(plugin='Linear') From 219a88a2bb386eb16fea94cc98c2bc7bb3252a45 Mon Sep 17 00:00:00 2001 From: Dorota Jarecka Date: Thu, 2 Nov 2017 00:13:27 -0400 Subject: [PATCH 15/16] fixing the DataSink test so it doesnt go to recursive loop (problem related to tmpdir that is the same in fixtures and test functions, DataSInk was trying copy dir to subdir etc.) --- nipype/interfaces/tests/test_io.py | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/nipype/interfaces/tests/test_io.py b/nipype/interfaces/tests/test_io.py index 1f8b404f54..ff56c9ec9d 100644 --- a/nipype/interfaces/tests/test_io.py +++ b/nipype/interfaces/tests/test_io.py @@ -338,8 +338,9 @@ def test_datasink_substitutions(tmpdir): @pytest.fixture() def _temp_analyze_files(tmpdir): """Generate temporary analyze file pair.""" - orig_img = tmpdir.join("orig.img") - orig_hdr = tmpdir.join("orig.hdr") + img_dir = tmpdir.mkdir("img") + orig_img = img_dir.join("orig.img") + orig_hdr = img_dir.join("orig.hdr") orig_img.open('w') orig_hdr.open('w') return orig_img.strpath, orig_hdr.strpath @@ -349,26 +350,22 @@ def test_datasink_copydir_1(_temp_analyze_files, tmpdir): orig_img, orig_hdr = _temp_analyze_files outdir = tmpdir pth, fname = os.path.split(orig_img) - ds = nio.DataSink(base_directory=outdir.strpath, parameterization=False) + ds = nio.DataSink(base_directory=outdir.mkdir("basedir").strpath, parameterization=False) setattr(ds.inputs, '@outdir', pth) ds.run() sep = os.path.sep - file_exists = lambda: tmpdir.join(pth.split(sep)[-1], fname).check() - assert file_exists() - + assert tmpdir.join('basedir', pth.split(sep)[-1], fname).check() def test_datasink_copydir_2(_temp_analyze_files, tmpdir): orig_img, orig_hdr = _temp_analyze_files pth, fname = os.path.split(orig_img) - ds = nio.DataSink(base_directory=tmpdir.strpath, parameterization=False) + ds = nio.DataSink(base_directory=tmpdir.mkdir("basedir").strpath, parameterization=False) ds.inputs.remove_dest_dir = True setattr(ds.inputs, 'outdir', pth) ds.run() sep = os.path.sep - file_exists = lambda: tmpdir.join(pth.split(sep)[-1], fname).check() - - assert not file_exists() - + assert not tmpdir.join('basedir', pth.split(sep)[-1], fname).check() + assert tmpdir.join('basedir', 'outdir', pth.split(sep)[-1], fname).check() def test_datafinder_depth(tmpdir): From f4d9afed83af60f7afd5d46ce227751e4b6153c5 Mon Sep 17 00:00:00 2001 From: Dorota Jarecka Date: Thu, 2 Nov 2017 15:05:59 -0400 Subject: [PATCH 16/16] adding testsetup directives to remove some parts from documentation --- nipype/interfaces/base.py | 11 +++++++++++ nipype/interfaces/dcm2nii.py | 9 +++++++++ nipype/interfaces/io.py | 9 +++++++++ nipype/interfaces/niftyreg/regutils.py | 9 +++++++++ 4 files changed, 38 insertions(+) diff --git a/nipype/interfaces/base.py b/nipype/interfaces/base.py index c645c23337..5c221a3ed1 100644 --- a/nipype/interfaces/base.py +++ b/nipype/interfaces/base.py @@ -1225,8 +1225,14 @@ class SimpleInterface(BaseInterface): Examples -------- + + .. testsetup:: + >>> tmp = getfixture('tmpdir') >>> old = tmp.chdir() # changing to a temporary directory + + .. doctest:: + >>> def double(x): ... return 2 * x ... @@ -1248,6 +1254,11 @@ class SimpleInterface(BaseInterface): >>> dbl.inputs.x = 2 >>> dbl.run().outputs.doubled 4.0 + + .. testsetup:: + + >>> os.chdir(old.strpath) + """ def __init__(self, from_file=None, resource_monitor=None, **inputs): super(SimpleInterface, self).__init__( diff --git a/nipype/interfaces/dcm2nii.py b/nipype/interfaces/dcm2nii.py index aaff5e2f88..22e9375609 100644 --- a/nipype/interfaces/dcm2nii.py +++ b/nipype/interfaces/dcm2nii.py @@ -70,8 +70,13 @@ class Dcm2nii(CommandLine): Examples ======== + .. testsetup:: + >>> tmp = getfixture('tmpdir') >>> old = tmp.chdir() # changing to a temporary directory + + .. doctest:: + >>> from nipype.interfaces.dcm2nii import Dcm2nii >>> converter = Dcm2nii() >>> converter.inputs.source_names = [os.path.join(datadir, 'functional_1.dcm'), os.path.join(datadir, 'functional_2.dcm')] @@ -79,7 +84,11 @@ class Dcm2nii(CommandLine): >>> converter.inputs.output_dir = '.' >>> converter.cmdline #doctest: +ELLIPSIS 'dcm2nii -a y -c y -b config.ini -v y -d y -e y -g y -i n -n y -o . -p y -x n -f n ...functional_1.dcm' + + .. testsetup:: + >>> os.chdir(old.strpath) + """ input_spec = Dcm2niiInputSpec diff --git a/nipype/interfaces/io.py b/nipype/interfaces/io.py index 9e5640f9eb..f02f655cf1 100644 --- a/nipype/interfaces/io.py +++ b/nipype/interfaces/io.py @@ -2476,8 +2476,14 @@ class JSONFileGrabber(IOBase): Example ------- + + .. testsetup:: + >>> tmp = getfixture('tmpdir') >>> old = tmp.chdir() # changing to a temporary directory + + .. doctest:: + >>> import pprint >>> from nipype.interfaces.io import JSONFileGrabber >>> jsonSource = JSONFileGrabber() @@ -2489,6 +2495,9 @@ class JSONFileGrabber(IOBase): >>> res = jsonSource.run() >>> pprint.pprint(res.outputs.get()) # doctest:, +ELLIPSIS {'param1': 'exampleStr', 'param2': 4, 'param3': 1.0} + + .. testsetup:: + >>> os.chdir(old.strpath) """ diff --git a/nipype/interfaces/niftyreg/regutils.py b/nipype/interfaces/niftyreg/regutils.py index 852c9430d0..214ccc9a45 100644 --- a/nipype/interfaces/niftyreg/regutils.py +++ b/nipype/interfaces/niftyreg/regutils.py @@ -391,8 +391,14 @@ class RegAverage(NiftyRegCommand): Examples -------- + + .. testsetup:: + >>> tmp = getfixture('tmpdir') >>> old = tmp.chdir() # changing to temporary file + + .. doctest:: + >>> from nipype.interfaces import niftyreg >>> node = niftyreg.RegAverage() >>> one_file = 'im1.nii' @@ -401,6 +407,9 @@ class RegAverage(NiftyRegCommand): >>> node.inputs.avg_files = [one_file, two_file, three_file] >>> node.cmdline # doctest: +ELLIPSIS 'reg_average --cmd_file .../reg_average_cmd' + + .. testsetup:: + >>> os.chdir(old.strpath) """