diff --git a/.mailmap b/.mailmap index ea15651170..9eaa0d1434 100644 --- a/.mailmap +++ b/.mailmap @@ -14,6 +14,7 @@ Basile Pinsard bpinsard Basile Pinsard bpinsard Ben Cipollini Ben Cipollini Bertrand Thirion bthirion +Cameron Riddell <31414128+CRiddler@users.noreply.github.com> Christian Haselgrove Christian Haselgrove Christopher J. Markiewicz Chris Johnson Christopher J. Markiewicz Chris Markiewicz @@ -40,6 +41,8 @@ Kesshi Jordan kesshijordan Kevin S. Hahn Kevin S. Hahn Konstantinos Raktivan constracti Krish Subramaniam Krish Subramaniam +Krzysztof J. Gorgolewski +Krzysztof J. Gorgolewski Marc-Alexandre Côté Marc-Alexandre Cote Mathias Goncalves mathiasg Matthew Cieslak Matt Cieslak @@ -48,6 +51,7 @@ Michael Hanke Michiel Cottaar Michiel Cottaar Ly Nguyen lxn2 Oliver P. Hinds ohinds +Oscar Esteban Paul McCarthy Paul McCarthy Satrajit Ghosh Satrajit Ghosh Serge Koudoro skoudoro diff --git a/.zenodo.json b/.zenodo.json index 9b4621464f..123f5d1bcc 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -68,6 +68,10 @@ "name": "Lee, Gregory R.", "orcid": "0000-0001-8895-2740" }, + { + "name": "Wang, Hao-Ting", + "orcid": "0000-0003-4078-2038" + }, { "affiliation": "Harvard University - Psychology", "name": "Kastman, Erik", @@ -92,6 +96,11 @@ "name": "Goncalves, Mathias", "orcid": "0000-0002-7252-7771" }, + { + "affiliation": "Department of Psychology, University of California Davis, CA, USA", + "name": "Riddell, Cameron", + "orcid": "0000-0001-8950-0375" + }, { "name": "Burns, Christopher" }, @@ -119,9 +128,24 @@ { "name": "Vincent, Robert D." }, + { + "affiliation": "Center for Magnetic Resonance Research, University of Minnesota", + "name": "Braun, Henry", + "orcid": "0000-0001-7003-9822" + }, { "name": "Subramaniam, Krish" }, + { + "affiliation": "MIT", + "name": "Jarecka, Dorota", + "orcid": "0000-0003-1857-8129" + }, + { + "affiliation": "Google", + "name": "Gorgolewski, Krzysztof J.", + "orcid": "0000-0003-3321-7583" + }, { "affiliation": "Rotman Research Institute, Baycrest Health Sciences, Toronto, ON, Canada", "name": "Raamana, Pradeep Reddy", @@ -147,6 +171,11 @@ { "name": "Hymers, Mark" }, + { + "affiliation": "Department of Psychology, Stanford University, CA, USA", + "name": "Esteban, Oscar", + "orcid": "0000-0001-8435-6191" + }, { "name": "Koudoro, Serge" }, @@ -170,6 +199,10 @@ { "name": "St-Jean, Samuel" }, + { + "name": "Panfilov, Egor", + "orcid": "0000-0002-2500-6375" + }, { "name": "Garyfallidis, Eleftherios" }, @@ -197,9 +230,6 @@ { "name": "Fauber, Bennet" }, - { - "name": "Panfilov, Egor" - }, { "affiliation": "McGill University", "name": "Poline, Jean-Baptiste", @@ -244,11 +274,6 @@ "name": "P\u00e9rez-Garc\u00eda, Fernando", "orcid": "0000-0001-9090-3024" }, - { - "affiliation": "Center for Magnetic Resonance Research, University of Minnesota", - "name": "Braun, Henry", - "orcid": "0000-0001-7003-9822" - }, { "name": "Solovey, Igor" }, diff --git a/Changelog b/Changelog index fb004c93e3..f9f4f00df5 100644 --- a/Changelog +++ b/Changelog @@ -25,6 +25,59 @@ Eric Larson (EL), Demian Wassermann, and Stephan Gerhard. References like "pr/298" refer to github pull request numbers. +3.0.0 (To Be Determined) +======================== + +New features +------------ +* ArrayProxy method ``get_scaled()`` scales data with a dtype of a + specified precision, promoting as necessary to avoid overflow. This + is to used in ``img.get_fdata()`` to control memory usage. (pr/833) + (CM, reviewed by Ross Markello) +* GiftiImage method ``agg_data()`` to return usable data arrays (pr/793) + (Hao-Ting Wang, reviewed by CM) +* Accept ``os.PathLike`` objects in place of filenames (pr/610) (Cameron + Riddell, reviewed by MB, CM) +* Function to calculate obliquity of affines (pr/815) (Oscar Esteban, + reviewed by MB) + +Enhancements +------------ +* ``get_fdata(dtype=np.float32)`` will attempt to avoid casting data to + ``np.float64`` when scaling parameters would otherwise promote the data + type unnecessarily. (pr/833) (CM, reviewed by Ross Markello) +* ``ArraySequence`` now supports a large set of Python operators to combine + or update in-place. (pr/811) (MC, reviewed by Serge Koudoro, Philippe Poulin, + CM, MB) +* Warn, rather than fail, on DICOMs with unreadable Siemens CSA tags (pr/818) + (Henry Braun, reviewed by CM) +* Improve clarity of coordinate system tutorial (pr/823) (Egor Panfilov, + reviewed by MB) + +Bug fixes +--------- +* Sliced ``Tractogram``s no longer ``apply_affine`` to the original + ``Tractogram``'s streamlines. (pr/811) (MC, reviewed by Serge Koudoro, + Philippe Poulin, CM, MB) +* Re-import externals/netcdf.py from scipy to resolve numpy deprecation + (pr/821) (CM) + +Maintenance +----------- +* Support Python >=3.5.1, including Python 3.8.0 (pr/787) (CM) +* Manage versioning with slightly customized Versioneer (pr/786) (CM) +* Reference Nipy Community Code and Nibabel Developer Guidelines in + GitHub community documents (pr/778) (CM, reviewed by MB) + +API changes and deprecations +---------------------------- +* Deprecate ``ArraySequence.data`` in favor of ``ArraySequence.get_data()``, + which will return a copy. ``ArraySequence.data`` now returns a read-only + view. (pr/811) (MC, reviewed by Serge Koudoro, Philippe Poulin, CM, MB) +* Deprecate ``DataobjImage.get_data()`` API, to be removed in nibabel 5.0 + (pr/794, pr/809) (CM, reviewed by MB) + + 2.5.1 (Monday 23 September 2019) ================================ diff --git a/doc/source/index.rst b/doc/source/index.rst index 09f09d4883..8b469631dd 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -96,9 +96,14 @@ contributed code and discussion (in rough order of appearance): * Samir Reddigari * Konstantinos Raktivan * Matt Cieslak -* Egor Pafilov +* Egor Panfilov * Jath Palasubramaniam * Henry Braun +* Oscar Esteban +* Cameron Riddell +* Hao-Ting Wang +* Dorota Jarecka +* Chris Gorgolewski License reprise =============== diff --git a/nibabel/_version.py b/nibabel/_version.py index 08332076d9..60031b4d17 100644 --- a/nibabel/_version.py +++ b/nibabel/_version.py @@ -208,6 +208,11 @@ def git_versions_from_keywords(keywords, tag_prefix, verbose): # sorting will prefer e.g. "2.0" over "2.0rc1" if ref.startswith(tag_prefix): r = ref[len(tag_prefix):] + # CJM: Nibabel fix to filter out refs that exactly match prefix + # or that don't start with a number once the prefix is stripped + # (Mostly a concern when prefix is '') + if not re.match(r'\d', r): + continue if verbose: print("picking %s" % r) return {"version": r, diff --git a/nibabel/info.py b/nibabel/info.py index dbd877318c..dc1b903b78 100644 --- a/nibabel/info.py +++ b/nibabel/info.py @@ -13,7 +13,7 @@ _version_major = 3 _version_minor = 0 _version_micro = 0 -_version_extra = 'dev' +_version_extra = 'rc1' # _version_extra = '' # Format expected by setup.py and doc/source/conf.py: string of form "X.Y.Z" diff --git a/versioneer.py b/versioneer.py index 18682b93bd..7c8333493e 100644 --- a/versioneer.py +++ b/versioneer.py @@ -629,6 +629,11 @@ def git_versions_from_keywords(keywords, tag_prefix, verbose): # sorting will prefer e.g. "2.0" over "2.0rc1" if ref.startswith(tag_prefix): r = ref[len(tag_prefix):] + # CJM: Nibabel fix to filter out refs that exactly match prefix + # or that don't start with a number once the prefix is stripped + # (Mostly a concern when prefix is '') + if not re.match(r'\d', r): + continue if verbose: print("picking %%s" %% r) return {"version": r, @@ -1029,6 +1034,11 @@ def git_versions_from_keywords(keywords, tag_prefix, verbose): # sorting will prefer e.g. "2.0" over "2.0rc1" if ref.startswith(tag_prefix): r = ref[len(tag_prefix):] + # CJM: Nibabel fix to filter out refs that exactly match prefix + # or that don't start with a number once the prefix is stripped + # (Mostly a concern when prefix is '') + if not re.match(r'\d', r): + continue if verbose: print("picking %s" % r) return {"version": r,