Skip to content

Commit c4543dc

Browse files
authored
Merge pull request #2048 from effigies/fix/deprecate_set
Replace deprecated HasTraits.set with trait_set
2 parents acb37ce + 1fbdaf2 commit c4543dc

File tree

12 files changed

+43
-41
lines changed

12 files changed

+43
-41
lines changed

circle.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
machine:
2+
pre:
3+
- curl -sSL https://s3.amazonaws.com/circle-downloads/install-circleci-docker.sh | bash -s -- 1.10.0
24
environment:
35
OSF_NIPYPE_URL: "https://files.osf.io/v1/resources/nefdp/providers/osfstorage"
46
DATA_NIPYPE_TUTORIAL_URL: "${OSF_NIPYPE_URL}/57f4739cb83f6901ed94bf21"

nipype/algorithms/confounds.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ def _run_interface(self, runtime):
398398
if len(mask_images) == 0:
399399
img = nb.Nifti1Image(np.ones(imgseries.shape[:3], dtype=np.bool),
400400
affine=imgseries.affine,
401-
header=imgseries.get_header())
401+
header=imgseries.header)
402402
mask_images = [img]
403403

404404
mask_images = self._process_masks(mask_images, imgseries.get_data())
@@ -501,7 +501,7 @@ def _process_masks(self, mask_images, timeseries=None):
501501
mask_data = np.zeros_like(mask)
502502
mask_data[mask != 0] = tSTD >= threshold_std
503503
out_image = nb.Nifti1Image(mask_data, affine=img.affine,
504-
header=img.get_header())
504+
header=img.header)
505505

506506
# save mask
507507
mask_file = os.path.abspath('mask_{:03d}.nii.gz'.format(i))
@@ -561,7 +561,7 @@ def _run_interface(self, runtime):
561561
header = img.header.copy()
562562
vollist = [nb.load(filename, mmap=NUMPY_MMAP) for filename in self.inputs.in_file]
563563
data = np.concatenate([vol.get_data().reshape(
564-
vol.get_shape()[:3] + (-1,)) for vol in vollist], axis=3)
564+
vol.shape[:3] + (-1,)) for vol in vollist], axis=3)
565565
data = np.nan_to_num(data)
566566

567567
if data.dtype.kind == 'i':
@@ -570,18 +570,18 @@ def _run_interface(self, runtime):
570570

571571
if isdefined(self.inputs.regress_poly):
572572
data = regress_poly(self.inputs.regress_poly, data, remove_mean=False)
573-
img = nb.Nifti1Image(data, img.get_affine(), header)
573+
img = nb.Nifti1Image(data, img.affine, header)
574574
nb.save(img, op.abspath(self.inputs.detrended_file))
575575

576576
meanimg = np.mean(data, axis=3)
577577
stddevimg = np.std(data, axis=3)
578578
tsnr = np.zeros_like(meanimg)
579579
tsnr[stddevimg > 1.e-3] = meanimg[stddevimg > 1.e-3] / stddevimg[stddevimg > 1.e-3]
580-
img = nb.Nifti1Image(tsnr, img.get_affine(), header)
580+
img = nb.Nifti1Image(tsnr, img.affine, header)
581581
nb.save(img, op.abspath(self.inputs.tsnr_file))
582-
img = nb.Nifti1Image(meanimg, img.get_affine(), header)
582+
img = nb.Nifti1Image(meanimg, img.affine, header)
583583
nb.save(img, op.abspath(self.inputs.mean_file))
584-
img = nb.Nifti1Image(stddevimg, img.get_affine(), header)
584+
img = nb.Nifti1Image(stddevimg, img.affine, header)
585585
nb.save(img, op.abspath(self.inputs.stddev_file))
586586
return runtime
587587

@@ -872,7 +872,7 @@ def combine_mask_files(mask_files, mask_method=None, mask_index=None):
872872
if mask is None:
873873
mask = img.get_data() > 0
874874
np.logical_or(mask, img.get_data() > 0, mask)
875-
img = nb.Nifti1Image(mask, img.affine, header=img.get_header())
875+
img = nb.Nifti1Image(mask, img.affine, header=img.header)
876876
return [img]
877877

878878
if mask_method == 'intersect':
@@ -882,7 +882,7 @@ def combine_mask_files(mask_files, mask_method=None, mask_index=None):
882882
if mask is None:
883883
mask = img.get_data() > 0
884884
np.logical_and(mask, img.get_data() > 0, mask)
885-
img = nb.Nifti1Image(mask, img.affine, header=img.get_header())
885+
img = nb.Nifti1Image(mask, img.affine, header=img.header)
886886
return [img]
887887

888888

nipype/algorithms/tests/test_tsnr.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ def assert_default_outputs(self, outputs):
113113

114114
def assert_unchanged(self, expected_ranges):
115115
for key, (min_, max_) in expected_ranges.items():
116-
data = np.asarray(nb.load(self.out_filenames[key])._data)
116+
data = np.asarray(nb.load(self.out_filenames[key]).dataobj)
117117
npt.assert_almost_equal(np.amin(data), min_, decimal=1)
118118
npt.assert_almost_equal(np.amax(data), max_, decimal=1)
119119

nipype/caching/memory.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ def __call__(self, **kwargs):
7070
kwargs = modify_paths(kwargs, relative=False)
7171
interface = self.interface()
7272
# Set the inputs early to get some argument checking
73-
interface.inputs.set(**kwargs)
73+
interface.inputs.trait_set(**kwargs)
7474
# Make a name for our node
7575
inputs = interface.inputs.get_hashval()
7676
hasher = hashlib.new('md5')

nipype/interfaces/afni/utils.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,13 +171,10 @@ def aggregate_outputs(self, runtime=None, needed_outputs=None):
171171
m = re.search(pattern, line)
172172
if m:
173173
d = m.groupdict()
174-
for k in list(d.keys()):
175-
d[k] = int(d[k])
176-
outputs.set(**d)
174+
outputs.trait_set(**{k: int(d[k]) for k in d.keys()})
177175
return outputs
178176

179177

180-
181178
class BrickStatInputSpec(CommandLineInputSpec):
182179
in_file = File(
183180
desc='input file to 3dmaskave',

nipype/interfaces/base.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ def __init__(self, **kwargs):
367367
undefined_traits[trait] = Undefined
368368
self.trait_set(trait_change_notify=False, **undefined_traits)
369369
self._generate_handlers()
370-
self.set(**kwargs)
370+
self.trait_set(**kwargs)
371371

372372
def items(self):
373373
""" Name, trait generator for user modifiable traits
@@ -650,7 +650,7 @@ def __deepcopy__(self, memo):
650650
pass
651651
# clone twice
652652
dup = self.clone_traits(memo=memo)
653-
dup.set(**dup_dict)
653+
dup.trait_set(**dup_dict)
654654
return dup
655655

656656

@@ -1060,7 +1060,7 @@ def run(self, **inputs):
10601060
results : an InterfaceResult object containing a copy of the instance
10611061
that was executed, provenance information and, if successful, results
10621062
"""
1063-
self.inputs.set(**inputs)
1063+
self.inputs.trait_set(**inputs)
10641064
self._check_mandatory_inputs()
10651065
self._check_version_requirements(self.inputs)
10661066
interface = self.__class__

nipype/interfaces/dipy/reconstruction.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ def _run_interface(self, runtime):
7474
import gc
7575

7676
img = nb.load(self.inputs.in_file)
77-
hdr = img.get_header().copy()
78-
affine = img.get_affine()
77+
hdr = img.header.copy()
78+
affine = img.affine
7979
data = img.get_data()
8080
gtab = self._get_gradient_table()
8181

@@ -210,14 +210,14 @@ def _run_interface(self, runtime):
210210

211211
img = nb.load(self.inputs.in_file)
212212
imref = nb.four_to_three(img)[0]
213-
affine = img.get_affine()
213+
affine = img.affine
214214

215215
if isdefined(self.inputs.in_mask):
216216
msk = nb.load(self.inputs.in_mask).get_data()
217217
msk[msk > 0] = 1
218218
msk[msk < 0] = 0
219219
else:
220-
msk = np.ones(imref.get_shape())
220+
msk = np.ones(imref.shape)
221221

222222
data = img.get_data().astype(np.float32)
223223
gtab = self._get_gradient_table()
@@ -326,15 +326,15 @@ def _run_interface(self, runtime):
326326

327327
img = nb.load(self.inputs.in_file)
328328
imref = nb.four_to_three(img)[0]
329-
affine = img.get_affine()
329+
affine = img.affine
330330

331331
if isdefined(self.inputs.in_mask):
332332
msk = nb.load(self.inputs.in_mask).get_data()
333333
else:
334-
msk = np.ones(imref.get_shape())
334+
msk = np.ones(imref.shape)
335335

336336
data = img.get_data().astype(np.float32)
337-
hdr = imref.get_header().copy()
337+
hdr = imref.header.copy()
338338

339339
gtab = self._get_gradient_table()
340340
resp_file = np.loadtxt(self.inputs.response)
@@ -359,7 +359,7 @@ def _run_interface(self, runtime):
359359
if self.inputs.save_fods:
360360
sphere = get_sphere('symmetric724')
361361
fods = csd_fit.odf(sphere)
362-
nb.Nifti1Image(fods.astype(np.float32), img.get_affine(),
362+
nb.Nifti1Image(fods.astype(np.float32), img.affine,
363363
None).to_filename(self._gen_filename('fods'))
364364

365365
return runtime

nipype/interfaces/dipy/tensors.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ def _run_interface(self, runtime):
127127
# Load the 4D image files
128128
img = nb.load(self.inputs.in_file)
129129
data = img.get_data()
130-
affine = img.get_affine()
130+
affine = img.affine
131131

132132
# Load the gradient strengths and directions
133133
gtab = self._get_gradient_table()

nipype/interfaces/dipy/tracks.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,10 +177,10 @@ def _run_interface(self, runtime):
177177

178178
img = nb.load(self.inputs.in_file)
179179
imref = nb.four_to_three(img)[0]
180-
affine = img.get_affine()
180+
affine = img.affine
181181

182182
data = img.get_data().astype(np.float32)
183-
hdr = imref.get_header().copy()
183+
hdr = imref.header.copy()
184184
hdr.set_data_dtype(np.float32)
185185
hdr['data_type'] = 16
186186

@@ -222,7 +222,7 @@ def _run_interface(self, runtime):
222222
msk[msk > 0] = 1
223223
msk[msk < 0] = 0
224224
else:
225-
msk = np.ones(imref.get_shape())
225+
msk = np.ones(imref.shape)
226226

227227
gfa = peaks.gfa * msk
228228
seeds = self.inputs.num_seeds

nipype/interfaces/utility/base.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def __init__(self, fields=None, mandatory_inputs=True, **inputs):
7272
# Adding any traits wipes out all input values set in superclass initialization,
7373
# even it the trait is not in the add_traits argument. The work-around is to reset
7474
# the values after adding the traits.
75-
self.inputs.set(**inputs)
75+
self.inputs.trait_set(**inputs)
7676

7777
def _add_output_traits(self, base):
7878
return add_traits(base, self._fields)
@@ -319,7 +319,7 @@ class Split(IOBase):
319319
320320
>>> from nipype.interfaces.utility import Split
321321
>>> sp = Split()
322-
>>> _ = sp.inputs.set(inlist=[1, 2, 3], splits=[2, 1])
322+
>>> _ = sp.inputs.trait_set(inlist=[1, 2, 3], splits=[2, 1])
323323
>>> out = sp.run()
324324
>>> out.outputs.out1
325325
[1, 2]
@@ -373,12 +373,12 @@ class Select(IOBase):
373373
374374
>>> from nipype.interfaces.utility import Select
375375
>>> sl = Select()
376-
>>> _ = sl.inputs.set(inlist=[1, 2, 3, 4, 5], index=[3])
376+
>>> _ = sl.inputs.trait_set(inlist=[1, 2, 3, 4, 5], index=[3])
377377
>>> out = sl.run()
378378
>>> out.outputs.out
379379
4
380380
381-
>>> _ = sl.inputs.set(inlist=[1, 2, 3, 4, 5], index=[3, 4])
381+
>>> _ = sl.inputs.trait_set(inlist=[1, 2, 3, 4, 5], index=[3, 4])
382382
>>> out = sl.run()
383383
>>> out.outputs.out
384384
[4, 5]

nipype/pipeline/engine/nodes.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,7 @@ def _load_results(self, cwd):
561561
logger.debug('aggregating results')
562562
if attribute_error:
563563
old_inputs = loadpkl(op.join(cwd, '_inputs.pklz'))
564-
self.inputs.set(**old_inputs)
564+
self.inputs.trait_set(**old_inputs)
565565
if not isinstance(self, MapNode):
566566
self._copyfiles_to_wd(cwd, True, linksonly=True)
567567
aggouts = self._interface.aggregate_outputs(
@@ -1121,7 +1121,7 @@ def _make_nodes(self, cwd=None):
11211121
base_dir=op.join(cwd, 'mapflow'),
11221122
name=nodename)
11231123
node.plugin_args = self.plugin_args
1124-
node._interface.inputs.set(
1124+
node._interface.inputs.trait_set(
11251125
**deepcopy(self._interface.inputs.get()))
11261126
for field in self.iterfield:
11271127
if self.nested:
@@ -1246,7 +1246,7 @@ def _get_inputs(self):
12461246
old_inputs = self._inputs.get()
12471247
self._inputs = self._create_dynamic_traits(self._interface.inputs,
12481248
fields=self.iterfield)
1249-
self._inputs.set(**old_inputs)
1249+
self._inputs.trait_set(**old_inputs)
12501250
super(MapNode, self)._get_inputs()
12511251

12521252
def _check_iterfield(self):

nipype/workflows/dmri/fsl/epi.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -743,13 +743,15 @@ def _dilate_mask(in_file, iterations=4):
743743
import os
744744
from nipype.utils import NUMPY_MMAP
745745
img = nb.load(in_file, mmap=NUMPY_MMAP)
746-
img._data = ndimage.binary_dilation(img.get_data(), iterations=iterations)
746+
dilated_img = img.__class__(ndimage.binary_dilation(img.get_data(),
747+
iterations=iterations),
748+
img.affine, img.header)
747749

748750
name, fext = os.path.splitext(os.path.basename(in_file))
749751
if fext == '.gz':
750752
name, _ = os.path.splitext(name)
751753
out_file = os.path.abspath('./%s_dil.nii.gz' % name)
752-
nb.save(img, out_file)
754+
nb.save(dilated_img, out_file)
753755
return out_file
754756

755757

@@ -781,12 +783,13 @@ def _vsm_remove_mean(in_file, mask_file, in_unwarped):
781783
img_data[msk == 0] = 0
782784
vsmmag_masked = ma.masked_values(img_data.reshape(-1), 0.0)
783785
vsmmag_masked = vsmmag_masked - vsmmag_masked.mean()
784-
img._data = vsmmag_masked.reshape(img.shape)
786+
masked_img = img.__class__(vsmmag_masked.reshape(img.shape),
787+
img.affine, img.header)
785788
name, fext = os.path.splitext(os.path.basename(in_file))
786789
if fext == '.gz':
787790
name, _ = os.path.splitext(name)
788791
out_file = os.path.abspath('./%s_demeaned.nii.gz' % name)
789-
nb.save(img, out_file)
792+
nb.save(masked_img, out_file)
790793
return out_file
791794

792795

0 commit comments

Comments
 (0)