Skip to content

Commit 47de76e

Browse files
committed
Merge branch 'rel/1.5.0'
2 parents 6d160c3 + b17a21b commit 47de76e

File tree

12 files changed

+116
-57
lines changed

12 files changed

+116
-57
lines changed

Diff for: .travis.yml

-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ dist: xenial
44
language: python
55
# our build matrix
66
python:
7-
- 3.5
87
- 3.6
98
- 3.7
109

Diff for: .zenodo.json

+42-32
Original file line numberDiff line numberDiff line change
@@ -157,11 +157,6 @@
157157
"name": "De La Vega, Alejandro",
158158
"orcid": "0000-0001-9062-3778"
159159
},
160-
{
161-
"affiliation": "Charite Universitatsmedizin Berlin, Germany",
162-
"name": "Waller, Lea",
163-
"orcid": "0000-0002-3239-6957"
164-
},
165160
{
166161
"affiliation": "MIT",
167162
"name": "Kaczmarzyk, Jakub",
@@ -183,6 +178,11 @@
183178
{
184179
"name": "Erickson, Drew"
185180
},
181+
{
182+
"affiliation": "Neuroscience Program, University of Iowa",
183+
"name": "Kent, James D.",
184+
"orcid": "0000-0002-4892-2659"
185+
},
186186
{
187187
"affiliation": "Otto-von-Guericke-University Magdeburg, Germany",
188188
"name": "Hanke, Michael",
@@ -195,11 +195,6 @@
195195
{
196196
"name": "Moloney, Brendan"
197197
},
198-
{
199-
"affiliation": "Neuroscience Program, University of Iowa",
200-
"name": "Kent, James D.",
201-
"orcid": "0000-0002-4892-2659"
202-
},
203198
{
204199
"affiliation": "SRI International",
205200
"name": "Nichols, B. Nolan",
@@ -246,6 +241,11 @@
246241
{
247242
"name": "Mordom, David"
248243
},
244+
{
245+
"affiliation": "University College London",
246+
"name": "Mancini, Matteo",
247+
"orcid": "0000-0001-7194-4568"
248+
},
249249
{
250250
"affiliation": "ARAMIS LAB, Brain and Spine Institute (ICM), Paris, France.",
251251
"name": "Guillon, Je\u0301re\u0301my",
@@ -291,16 +291,16 @@
291291
{
292292
"name": "Salvatore, John"
293293
},
294-
{
295-
"affiliation": "University College London",
296-
"name": "Mancini, Matteo",
297-
"orcid": "0000-0001-7194-4568"
298-
},
299294
{
300295
"affiliation": "CNRS LTCI, Telecom ParisTech, Universit\u00e9 Paris-Saclay",
301296
"name": "Gramfort, Alexandre",
302297
"orcid": "0000-0001-9791-4404"
303298
},
299+
{
300+
"affiliation": "Department of Psychology, University of Bielefeld, Bielefeld, Germany.",
301+
"name": "Doll, Anna",
302+
"orcid": "0000-0002-0799-0831"
303+
},
304304
{
305305
"name": "Buchanan, Colin"
306306
},
@@ -393,9 +393,14 @@
393393
"orcid": "0000-0003-2766-8425"
394394
},
395395
{
396-
"affiliation": "Department of Psychology, University of Bielefeld, Bielefeld, Germany.",
397-
"name": "Doll, Anna",
398-
"orcid": "0000-0002-0799-0831"
396+
"affiliation": "NIMH, Scientific and Statistical Computing Core",
397+
"name": "Glen, Daniel",
398+
"orcid": "0000-0001-8456-5647"
399+
},
400+
{
401+
"affiliation": "Technische Universit\u00e4t Dresden, Faculty of Medicine, Department of Child and Adolescent Psychiatry",
402+
"name": "Geisler, Daniel",
403+
"orcid": "0000-0003-2076-5329"
399404
},
400405
{
401406
"affiliation": "University of Iowa",
@@ -406,6 +411,11 @@
406411
"name": "Triplett, William",
407412
"orcid": "0000-0002-9546-1306"
408413
},
414+
{
415+
"affiliation": "The University of Iowa",
416+
"name": "Ghayoor, Ali",
417+
"orcid": "0000-0002-8858-1254"
418+
},
409419
{
410420
"affiliation": "Child Mind Institute",
411421
"name": "Craddock, R. Cameron",
@@ -450,12 +460,12 @@
450460
"name": "Rothmei, Simon"
451461
},
452462
{
453-
"name": "Weinstein, Alejandro"
463+
"affiliation": "Korea Advanced Institute of Science and Technology",
464+
"name": "Kim, Sin",
465+
"orcid": "0000-0003-4652-3758"
454466
},
455467
{
456-
"affiliation": "The University of Iowa",
457-
"name": "Ghayoor, Ali",
458-
"orcid": "0000-0002-8858-1254"
468+
"name": "Weinstein, Alejandro"
459469
},
460470
{
461471
"affiliation": "University of Pennsylvania",
@@ -508,6 +518,11 @@
508518
"name": "Linkersd\u00f6rfer, Janosch",
509519
"orcid": "0000-0002-1577-1233"
510520
},
521+
{
522+
"affiliation": "Charite Universitatsmedizin Berlin, Germany",
523+
"name": "Waller, Lea",
524+
"orcid": "0000-0002-3239-6957"
525+
},
511526
{
512527
"name": "Renfro, Mandy"
513528
},
@@ -521,11 +536,6 @@
521536
{
522537
"name": "K\u00fcttner, Ren\u00e9"
523538
},
524-
{
525-
"affiliation": "Korea Advanced Institute of Science and Technology",
526-
"name": "Kim, Sin",
527-
"orcid": "0000-0003-4652-3758"
528-
},
529539
{
530540
"affiliation": "California Institute of Technology",
531541
"name": "Pauli, Wolfgang M.",
@@ -536,6 +546,11 @@
536546
"name": "Glen, Daniel",
537547
"orcid": "0000-0001-8456-5647"
538548
},
549+
{
550+
"affiliation": "Florida International University",
551+
"name": "Kimbler, Adam",
552+
"orcid": "0000-0001-5885-9596"
553+
},
539554
{
540555
"affiliation": "University of Pittsburgh",
541556
"name": "Meyers, Benjamin",
@@ -544,11 +559,6 @@
544559
{
545560
"name": "Tarbert, Claire"
546561
},
547-
{
548-
"affiliation": "Technische Universit\u00e4t Dresden, Faculty of Medicine, Department of Child and Adolescent Psychiatry",
549-
"name": "Geisler, Daniel",
550-
"orcid": "0000-0003-2076-5329"
551-
},
552562
{
553563
"name": "Ginsburg, Daniel"
554564
},

Diff for: doc/changelog/1.X.X-changelog.rst

+26
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,29 @@
1+
1.5.0 (To be determined)
2+
=========================
3+
4+
New feature release in the 1.5.x series.
5+
6+
In this release, the example scripts have been split out into their own package:
7+
`niflow-nipype1-examples <https://github.com/niflows/nipype1-examples>`__.
8+
9+
(`Full changelog <https://github.com/nipy/nipype/milestone/1.5.0?closed=1>`__)
10+
11+
* FIX: Partial rollback of N4BiasFieldCorrection (https://github.com/nipy/nipype/pull/3188)
12+
* FIX: ANTs' tools maintenance overhaul (https://github.com/nipy/nipype/pull/3180)
13+
* FIX: load_resultfile crashes if open resultsfile from crashed job (https://github.com/nipy/nipype/pull/3182)
14+
* FIX: FSL model.py make multiple F-tests (https://github.com/nipy/nipype/pull/3166)
15+
* ENH: Improve workflow connect performance (https://github.com/nipy/nipype/pull/3184)
16+
* ENH: Add ``ConstrainedSphericalDeconvolution`` interface to replace ``EstimateFOD`` for MRtrix3's ``dwi2fod`` (https://github.com/nipy/nipype/pull/3176)
17+
* ENH: Detect values for EulerNumber interface (https://github.com/nipy/nipype/pull/3173)
18+
* ENH: Remove examples from repository (https://github.com/nipy/nipype/pull/3172)
19+
* REF: Prefer math.gcd to hand-rolled Euclid's algorithm (https://github.com/nipy/nipype/pull/3177)
20+
* REF: Removed all uses of numpy_mmap (https://github.com/nipy/nipype/pull/3121)
21+
* DOC: Update links, typos in contributing guide (https://github.com/nipy/nipype/pull/3160)
22+
* DOC: Update SelectFiles docstring to match actual behavior (https://github.com/nipy/nipype/pull/3041)
23+
* DOC: Updated .zenodo.json file (https://github.com/nipy/nipype/pull/3167)
24+
* DOC: Update .zenodo.json (https://github.com/nipy/nipype/pull/3165)
25+
* MNT: Update Zenodo ordering based on commit count (https://github.com/nipy/nipype/pull/3169)
26+
127
1.4.2 (February 14, 2020)
228
=========================
329
(`Full changelog <https://github.com/nipy/nipype/milestone/1.4.2?closed=1>`__)

Diff for: nipype/info.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
# nipype version information
77
# Remove -dev for release
8-
__version__ = "1.5.0-dev"
8+
__version__ = "1.5.0-rc1.post-dev"
99

1010

1111
def get_nipype_gitversion():
@@ -54,12 +54,11 @@ def get_nipype_gitversion():
5454
"License :: OSI Approved :: Apache Software License",
5555
"Operating System :: MacOS :: MacOS X",
5656
"Operating System :: POSIX :: Linux",
57-
"Programming Language :: Python :: 3.5",
5857
"Programming Language :: Python :: 3.6",
5958
"Programming Language :: Python :: 3.7",
6059
"Topic :: Scientific/Engineering",
6160
]
62-
PYTHON_REQUIRES = ">= 3.5"
61+
PYTHON_REQUIRES = ">= 3.6"
6362

6463
description = "Neuroimaging in Python: Pipelines and Interfaces"
6564

@@ -100,7 +99,7 @@ def get_nipype_gitversion():
10099
# versions
101100
NIBABEL_MIN_VERSION = "2.1.0"
102101
NETWORKX_MIN_VERSION = "1.9"
103-
NUMPY_MIN_VERSION = "1.12"
102+
NUMPY_MIN_VERSION = "1.13"
104103
# Numpy bug in python 3.7:
105104
# https://www.opensourceanswers.com/blog/you-shouldnt-use-python-37-for-data-science-right-now.html
106105
NUMPY_MIN_VERSION_37 = "1.15.3"

Diff for: nipype/interfaces/base/traits_extension.py

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import traits.api as traits
2727
from traits.api import TraitType, Unicode
2828
from traits.trait_base import _Undefined
29+
2930
try:
3031
# Moved in traits 6.0
3132
from traits.trait_type import NoDefaultSpecified

Diff for: nipype/interfaces/freesurfer/utils.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -2592,8 +2592,10 @@ class EulerNumberInputSpec(FSTraitedSpec):
25922592

25932593

25942594
class EulerNumberOutputSpec(TraitedSpec):
2595-
euler = traits.Int(desc="Euler number of cortical surface. A value of 2 signals a "
2596-
"topologically correct surface model with no holes")
2595+
euler = traits.Int(
2596+
desc="Euler number of cortical surface. A value of 2 signals a "
2597+
"topologically correct surface model with no holes"
2598+
)
25972599
defects = traits.Int(desc="Number of defects")
25982600

25992601

@@ -2621,7 +2623,7 @@ def _run_interface(self, runtime):
26212623

26222624
def _parse_output(self, stdout, stderr):
26232625
"""Parse stdout / stderr and extract defects"""
2624-
m = re.search(r'(?<=total defect index = )\d+', stdout or stderr)
2626+
m = re.search(r"(?<=total defect index = )\d+", stdout or stderr)
26252627
if m is None:
26262628
raise RuntimeError("Could not fetch defect index")
26272629
self._defects = int(m.group())

Diff for: nipype/interfaces/fsl/tests/test_model.py

+22-7
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,25 @@
77
import nipype.interfaces.fsl.model as fsl
88
from nipype.interfaces.fsl import no_fsl
99
from pathlib import Path
10-
from ....pipeline import engine as pe
10+
from ....pipeline import engine as pe
1111

1212

1313
@pytest.mark.skipif(no_fsl(), reason="fsl is not installed")
1414
def test_MultipleRegressDesign(tmpdir):
15-
designer = pe.Node(fsl.MultipleRegressDesign(), name='designer', base_dir=str(tmpdir))
15+
designer = pe.Node(
16+
fsl.MultipleRegressDesign(), name="designer", base_dir=str(tmpdir)
17+
)
1618
designer.inputs.regressors = dict(
1719
voice_stenght=[1, 1, 1], age=[0.2, 0.4, 0.5], BMI=[1, -1, 2]
1820
)
1921
con1 = ["voice_and_age", "T", ["age", "voice_stenght"], [0.5, 0.5]]
2022
con2 = ["just_BMI", "T", ["BMI"], [1]]
21-
designer.inputs.contrasts = [con1, con2, ["con3", "F", [con1, con2]], ["con4", "F", [con2]]]
23+
designer.inputs.contrasts = [
24+
con1,
25+
con2,
26+
["con3", "F", [con1, con2]],
27+
["con4", "F", [con2]],
28+
]
2229
res = designer.run()
2330
outputs = res.outputs.get_traitsfree()
2431

@@ -27,7 +34,9 @@ def test_MultipleRegressDesign(tmpdir):
2734

2835
expected_content = {}
2936

30-
expected_content["design_mat"] = """/NumWaves 3
37+
expected_content[
38+
"design_mat"
39+
] = """/NumWaves 3
3140
/NumPoints 3
3241
/PPheights 3.000000e+00 5.000000e-01 1.000000e+00
3342
@@ -37,7 +46,9 @@ def test_MultipleRegressDesign(tmpdir):
3746
2.000000e+00 5.000000e-01 1.000000e+00
3847
"""
3948

40-
expected_content["design_con"] = """/ContrastName1 voice_and_age
49+
expected_content[
50+
"design_con"
51+
] = """/ContrastName1 voice_and_age
4152
/ContrastName2 just_BMI
4253
/NumWaves 3
4354
/NumContrasts 2
@@ -49,15 +60,19 @@ def test_MultipleRegressDesign(tmpdir):
4960
1.000000e+00 0.000000e+00 0.000000e+00
5061
"""
5162

52-
expected_content["design_fts"] = """/NumWaves 2
63+
expected_content[
64+
"design_fts"
65+
] = """/NumWaves 2
5366
/NumContrasts 2
5467
5568
/Matrix
5669
1 1
5770
0 1
5871
"""
5972

60-
expected_content["design_grp"] = """/NumWaves 1
73+
expected_content[
74+
"design_grp"
75+
] = """/NumWaves 1
6176
/NumPoints 3
6277
6378
/Matrix

Diff for: nipype/interfaces/io.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,7 @@ def _check_s3_base_dir(self):
450450

451451
s3_flag = base_directory.lower().startswith(s3_str)
452452
if s3_flag:
453-
bucket_name = base_directory[len(s3_str):].partition('/')[0]
453+
bucket_name = base_directory[len(s3_str) :].partition("/")[0]
454454

455455
return s3_flag, bucket_name
456456

@@ -610,7 +610,7 @@ def _upload_to_s3(self, bucket, src, dst):
610610

611611
# Explicitly lower-case the "s3"
612612
if dst.lower().startswith(s3_str):
613-
dst = s3_str + dst[len(s3_str):]
613+
dst = s3_str + dst[len(s3_str) :]
614614

615615
# If src is a directory, collect files (this assumes dst is a dir too)
616616
if os.path.isdir(src):
@@ -3005,7 +3005,9 @@ class ExportFileInputSpec(BaseInterfaceInputSpec):
30053005
in_file = File(exists=True, mandatory=True, desc="Input file name")
30063006
out_file = File(mandatory=True, desc="Output file name")
30073007
check_extension = traits.Bool(
3008-
True, desc="Ensure that the input and output file extensions match"
3008+
True,
3009+
usedefault=True,
3010+
desc="Ensure that the input and output file extensions match",
30093011
)
30103012
clobber = traits.Bool(desc="Permit overwriting existing files")
30113013

Diff for: nipype/interfaces/tests/test_auto_ExportFile.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
def test_ExportFile_inputs():
66
input_map = dict(
7-
check_extension=dict(),
7+
check_extension=dict(usedefault=True,),
88
clobber=dict(),
99
in_file=dict(extensions=None, mandatory=True,),
1010
out_file=dict(extensions=None, mandatory=True,),

Diff for: nipype/pipeline/engine/workflows.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -803,7 +803,8 @@ def _check_is_already_connected(workflow, node, attrname):
803803
if subtype == "in":
804804
hierattrname = ".".join(hierarchy + [nodename, attrname])
805805
if not _check_is_already_connected(
806-
targetworkflow, workflow, hierattrname):
806+
targetworkflow, workflow, hierattrname
807+
):
807808
return False
808809
targetworkflow = workflow
809810

@@ -828,8 +829,7 @@ def _check_is_already_connected(workflow, node, attrname):
828829
# Verify input does not already have an incoming connection
829830
# in the target workflow
830831
if subtype == "in":
831-
if not _check_is_already_connected(
832-
targetworkflow, targetnode, attrname):
832+
if not _check_is_already_connected(targetworkflow, targetnode, attrname):
833833
return False
834834

835835
return True

0 commit comments

Comments
 (0)