Skip to content

changes in Interfaces base (closes #2320) #2387

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
Jan 22, 2018
8 changes: 4 additions & 4 deletions nipype/algorithms/confounds.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
from ..external.due import BibTeX
from ..interfaces.base import (traits, TraitedSpec, BaseInterface,
BaseInterfaceInputSpec, File, isdefined,
InputMultiPath, OutputMultiPath)
InputMultiObject, OutputMultiObject)
from ..utils import NUMPY_MMAP
from ..utils.misc import normalize_mc_params

Expand Down Expand Up @@ -360,7 +360,7 @@ def _list_outputs(self):
class CompCorInputSpec(BaseInterfaceInputSpec):
realigned_file = File(
exists=True, mandatory=True, desc='already realigned brain image (4D)')
mask_files = InputMultiPath(
mask_files = InputMultiObject(
File(exists=True),
desc=('One or more mask files that determines '
'ROI (3D). When more that one file is '
Expand Down Expand Up @@ -649,7 +649,7 @@ class TCompCorInputSpec(CompCorInputSpec):

class TCompCorOutputSpec(CompCorOutputSpec):
# and all the fields in CompCorOutputSpec
high_variance_masks = OutputMultiPath(
high_variance_masks = OutputMultiObject(
File(exists=True),
desc=(("voxels exceeding the variance"
" threshold")))
Expand Down Expand Up @@ -714,7 +714,7 @@ def _list_outputs(self):


class TSNRInputSpec(BaseInterfaceInputSpec):
in_file = InputMultiPath(
in_file = InputMultiObject(
File(exists=True),
mandatory=True,
desc='realigned 4D file or a list of 3D files')
Expand Down
6 changes: 3 additions & 3 deletions nipype/algorithms/metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
from ..utils.misc import package_check

from ..interfaces.base import (BaseInterface, traits, TraitedSpec, File,
InputMultiPath, BaseInterfaceInputSpec,
InputMultiObject, BaseInterfaceInputSpec,
isdefined)
from ..utils import NUMPY_MMAP

Expand Down Expand Up @@ -382,11 +382,11 @@ def _list_outputs(self):


class FuzzyOverlapInputSpec(BaseInterfaceInputSpec):
in_ref = InputMultiPath(
in_ref = InputMultiObject(
File(exists=True),
mandatory=True,
desc='Reference image. Requires the same dimensions as in_tst.')
in_tst = InputMultiPath(
in_tst = InputMultiObject(
File(exists=True),
mandatory=True,
desc='Test image. Requires the same dimensions as in_ref.')
Expand Down
32 changes: 16 additions & 16 deletions nipype/algorithms/misc.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
from .. import logging
from . import metrics as nam
from ..interfaces.base import (
BaseInterface, traits, TraitedSpec, File, InputMultiPath, OutputMultiPath,
BaseInterface, traits, TraitedSpec, File, InputMultiObject, OutputMultiObject,
BaseInterfaceInputSpec, isdefined, DynamicTraitedSpec, Undefined)
from ..utils.filemanip import fname_presuffix, split_filename, filename_to_list
from ..utils import NUMPY_MMAP
Expand Down Expand Up @@ -124,7 +124,7 @@ def _list_outputs(self):


class SimpleThresholdInputSpec(BaseInterfaceInputSpec):
volumes = InputMultiPath(
volumes = InputMultiObject(
File(exists=True), desc='volumes to be thresholded', mandatory=True)
threshold = traits.Float(
desc='volumes to be thresholdedeverything below this value will be set\
Expand All @@ -133,7 +133,7 @@ class SimpleThresholdInputSpec(BaseInterfaceInputSpec):


class SimpleThresholdOutputSpec(TraitedSpec):
thresholded_volumes = OutputMultiPath(
thresholded_volumes = OutputMultiObject(
File(exists=True), desc="thresholded volumes")


Expand Down Expand Up @@ -170,7 +170,7 @@ def _list_outputs(self):


class ModifyAffineInputSpec(BaseInterfaceInputSpec):
volumes = InputMultiPath(
volumes = InputMultiObject(
File(exists=True),
desc='volumes which affine matrices will be modified',
mandatory=True)
Expand All @@ -183,7 +183,7 @@ class ModifyAffineInputSpec(BaseInterfaceInputSpec):


class ModifyAffineOutputSpec(TraitedSpec):
transformed_volumes = OutputMultiPath(File(exist=True))
transformed_volumes = OutputMultiObject(File(exist=True))


class ModifyAffine(BaseInterface):
Expand Down Expand Up @@ -328,7 +328,7 @@ class Matlab2CSVInputSpec(TraitedSpec):


class Matlab2CSVOutputSpec(TraitedSpec):
csv_files = OutputMultiPath(
csv_files = OutputMultiObject(
File(desc='Output CSV files for each variable saved in the input .mat\
file'))

Expand Down Expand Up @@ -503,7 +503,7 @@ def makefmtlist(output_array, typelist, rowheadingsBool, shape,


class MergeCSVFilesInputSpec(TraitedSpec):
in_files = InputMultiPath(
in_files = InputMultiObject(
File(exists=True),
mandatory=True,
desc='Input comma-separated value (CSV) files')
Expand Down Expand Up @@ -1046,14 +1046,14 @@ def gen_noise(self,


class NormalizeProbabilityMapSetInputSpec(TraitedSpec):
in_files = InputMultiPath(
in_files = InputMultiObject(
File(exists=True, mandatory=True, desc='The tpms to be normalized'))
in_mask = File(
exists=True, desc='Masked voxels must sum up 1.0, 0.0 otherwise.')


class NormalizeProbabilityMapSetOutputSpec(TraitedSpec):
out_files = OutputMultiPath(File(exists=True), desc="normalized maps")
out_files = OutputMultiObject(File(exists=True), desc="normalized maps")


class NormalizeProbabilityMapSet(BaseInterface):
Expand Down Expand Up @@ -1099,10 +1099,10 @@ class SplitROIsInputSpec(TraitedSpec):


class SplitROIsOutputSpec(TraitedSpec):
out_files = OutputMultiPath(File(exists=True), desc='the resulting ROIs')
out_masks = OutputMultiPath(
out_files = OutputMultiObject(File(exists=True), desc='the resulting ROIs')
out_masks = OutputMultiObject(
File(exists=True), desc='a mask indicating valid values')
out_index = OutputMultiPath(
out_index = OutputMultiObject(
File(exists=True), desc='arrays keeping original locations')


Expand Down Expand Up @@ -1148,9 +1148,9 @@ def _list_outputs(self):


class MergeROIsInputSpec(TraitedSpec):
in_files = InputMultiPath(
in_files = InputMultiObject(
File(exists=True, mandatory=True, desc='files to be re-merged'))
in_index = InputMultiPath(
in_index = InputMultiObject(
File(exists=True, mandatory=True),
desc='array keeping original locations')
in_reference = File(exists=True, desc='reference file')
Expand Down Expand Up @@ -1421,7 +1421,7 @@ def merge_rois(in_files, in_idxs, in_ref, dtype=None, out_file=None):


class CalculateMedianInputSpec(BaseInterfaceInputSpec):
in_files = InputMultiPath(
in_files = InputMultiObject(
File(
exists=True,
mandatory=True,
Expand All @@ -1432,7 +1432,7 @@ class CalculateMedianInputSpec(BaseInterfaceInputSpec):


class CalculateMedianOutputSpec(TraitedSpec):
median_files = OutputMultiPath(
median_files = OutputMultiObject(
File(exists=True), desc="One or more median images")


Expand Down
12 changes: 6 additions & 6 deletions nipype/algorithms/modelgen.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
from scipy.special import gammaln

from ..utils import NUMPY_MMAP
from ..interfaces.base import (BaseInterface, TraitedSpec, InputMultiPath,
from ..interfaces.base import (BaseInterface, TraitedSpec, InputMultiObject,
traits, File, Bunch, BaseInterfaceInputSpec,
isdefined)
from ..utils.filemanip import filename_to_list
Expand Down Expand Up @@ -182,22 +182,22 @@ def gen_info(run_event_files):


class SpecifyModelInputSpec(BaseInterfaceInputSpec):
subject_info = InputMultiPath(
subject_info = InputMultiObject(
Bunch,
mandatory=True,
xor=['subject_info', 'event_files'],
desc='Bunch or List(Bunch) subject-specific '
'condition information. see '
':ref:`SpecifyModel` or '
'SpecifyModel.__doc__ for details')
event_files = InputMultiPath(
event_files = InputMultiObject(
traits.List(File(exists=True)),
mandatory=True,
xor=['subject_info', 'event_files'],
desc='List of event description files 1, 2 or 3 '
'column format corresponding to onsets, '
'durations and amplitudes')
realignment_parameters = InputMultiPath(
realignment_parameters = InputMultiObject(
File(exists=True),
desc='Realignment parameters returned '
'by motion correction algorithm',
Expand All @@ -210,12 +210,12 @@ class SpecifyModelInputSpec(BaseInterfaceInputSpec):
"NIPY",
usedefault=True,
desc="Source of motion parameters")
outlier_files = InputMultiPath(
outlier_files = InputMultiObject(
File(exists=True),
desc='Files containing scan outlier indices '
'that should be tossed',
copyfile=False)
functional_runs = InputMultiPath(
functional_runs = InputMultiObject(
traits.Either(traits.List(File(exists=True)), File(exists=True)),
mandatory=True,
desc='Data files for model. List of 4D '
Expand Down
28 changes: 14 additions & 14 deletions nipype/algorithms/rapidart.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@
import scipy.io as sio

from ..utils import NUMPY_MMAP
from ..interfaces.base import (BaseInterface, traits, InputMultiPath,
OutputMultiPath, TraitedSpec, File,
from ..interfaces.base import (BaseInterface, traits, InputMultiObject,
OutputMultiObject, TraitedSpec, File,
BaseInterfaceInputSpec, isdefined)
from ..utils.filemanip import filename_to_list, save_json, split_filename
from ..utils.misc import find_indices, normalize_mc_params
Expand Down Expand Up @@ -163,12 +163,12 @@ def _calc_norm_affine(affines, use_differences, brain_pts=None):


class ArtifactDetectInputSpec(BaseInterfaceInputSpec):
realigned_files = InputMultiPath(
realigned_files = InputMultiObject(
File(exists=True),
desc=("Names of realigned functional data "
"files"),
mandatory=True)
realignment_parameters = InputMultiPath(
realignment_parameters = InputMultiObject(
File(exists=True),
mandatory=True,
desc=("Names of realignment "
Expand Down Expand Up @@ -267,22 +267,22 @@ class ArtifactDetectInputSpec(BaseInterfaceInputSpec):


class ArtifactDetectOutputSpec(TraitedSpec):
outlier_files = OutputMultiPath(
outlier_files = OutputMultiObject(
File(exists=True),
desc=("One file for each functional run "
"containing a list of 0-based indices"
" corresponding to outlier volumes"))
intensity_files = OutputMultiPath(
intensity_files = OutputMultiObject(
File(exists=True),
desc=("One file for each functional run "
"containing the global intensity "
"values determined from the "
"brainmask"))
norm_files = OutputMultiPath(
norm_files = OutputMultiObject(
File,
desc=("One file for each functional run "
"containing the composite norm"))
statistic_files = OutputMultiPath(
statistic_files = OutputMultiObject(
File(exists=True),
desc=("One file for each functional run "
"containing information about the "
Expand All @@ -291,16 +291,16 @@ class ArtifactDetectOutputSpec(TraitedSpec):
"details of stimulus correlated "
"motion and a listing or artifacts "
"by event type."))
plot_files = OutputMultiPath(
plot_files = OutputMultiObject(
File,
desc=("One image file for each functional run "
"containing the detected outliers"))
mask_files = OutputMultiPath(
mask_files = OutputMultiObject(
File,
desc=("One image file for each functional run "
"containing the mask used for global "
"signal calculation"))
displacement_files = OutputMultiPath(
displacement_files = OutputMultiObject(
File,
desc=("One image file for each "
"functional run containing the "
Expand Down Expand Up @@ -631,13 +631,13 @@ def _run_interface(self, runtime):


class StimCorrInputSpec(BaseInterfaceInputSpec):
realignment_parameters = InputMultiPath(
realignment_parameters = InputMultiObject(
File(exists=True),
mandatory=True,
desc=("Names of realignment "
"parameters corresponding to "
"the functional data files"))
intensity_values = InputMultiPath(
intensity_values = InputMultiObject(
File(exists=True),
mandatory=True,
desc=("Name of file containing intensity "
Expand All @@ -653,7 +653,7 @@ class StimCorrInputSpec(BaseInterfaceInputSpec):


class StimCorrOutputSpec(TraitedSpec):
stimcorr_files = OutputMultiPath(
stimcorr_files = OutputMultiObject(
File(exists=True),
desc=("List of files containing "
"correlation values"))
Expand Down
12 changes: 6 additions & 6 deletions nipype/interfaces/afni/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@
import os

from ..base import (CommandLineInputSpec, CommandLine, Directory, TraitedSpec,
traits, isdefined, File, InputMultiPath, Undefined, Str)
traits, isdefined, File, InputMultiObject, Undefined, Str)
from ...external.due import BibTeX

from .base import (AFNICommandBase, AFNICommand, AFNICommandInputSpec,
AFNICommandOutputSpec)


class DeconvolveInputSpec(AFNICommandInputSpec):
in_files = InputMultiPath(
in_files = InputMultiObject(
File(exists=True),
desc='filenames of 3D+time input datasets. More than one filename can '
'be given and the datasets will be auto-catenated in time. '
Expand Down Expand Up @@ -306,7 +306,7 @@ def _list_outputs(self):

class RemlfitInputSpec(AFNICommandInputSpec):
# mandatory files
in_files = InputMultiPath(
in_files = InputMultiObject(
File(exists=True),
desc='Read time series dataset',
argstr='-input "%s"',
Expand Down Expand Up @@ -353,7 +353,7 @@ class RemlfitInputSpec(AFNICommandInputSpec):
'(only with \'mask\' or \'automask\' options).',
argstr='-STATmask %s',
exists=True)
addbase = InputMultiPath(
addbase = InputMultiObject(
File(
exists=True,
desc='file containing columns to add to regression matrix'),
Expand All @@ -364,7 +364,7 @@ class RemlfitInputSpec(AFNICommandInputSpec):
copyfile=False,
sep=" ",
argstr='-addbase %s')
slibase = InputMultiPath(
slibase = InputMultiObject(
File(
exists=True,
desc='file containing columns to add to regression matrix'),
Expand All @@ -381,7 +381,7 @@ class RemlfitInputSpec(AFNICommandInputSpec):
'will slow the program down, and make it use a lot more memory '
'(to hold all the matrix stuff).',
argstr='-slibase %s')
slibase_sm = InputMultiPath(
slibase_sm = InputMultiObject(
File(
exists=True,
desc='file containing columns to add to regression matrix'),
Expand Down
Loading