[Neuroimaging] ANN: Nibabel 3.0 Release Candidate (Please test!)

Christopher Markiewicz markiewicz at stanford.edu
Thu Dec 12 11:53:24 EST 2019


Hi all,

Just a quick note that I've made a second release candidate for nibabel 3.0. Another round of testing would be appreciated.

Best,
Chris
________________________________
From: Christopher Markiewicz
Sent: Saturday, November 16, 2019 12:39 PM
To: neuroimaging at python.org <neuroimaging at python.org>
Subject: ANN: Nibabel 3.0 Release Candidate (Please test!)

Hi all,

The first release candidate for Nibabel 3.0 is out. As a major release, there are API changes and a greater than usual opportunity for pain. Therefore, I'm setting a minimum 1 month window (as proposed in https://github.com/nipy/nibabel/issues/734) to help us find bugs, and allow downstream tools to make any necessary adjustments. The only pull requests that will be accepted during this period will be bug fixes or documentation and testing improvements. This window can be extended if needed, so please let me know if you need more time.

I would ask all downstream projects to add pre-release testing if they do not already. Pre-release testing requires specifically requesting pre-release packages from PyPI, so if you have not set up this up in continuous integration configuration, it is very likely that you will not install the correct package. To do this, use the `--pre` flag for pip when installing nibabel.

Please report any issues to https://github.com/nipy/nibabel/issues.

The most consequential changes in this release are the removal of Python 2 support and the deprecation of the img.get_data() accessor method to retrieve the image data block. The supported APIs for accessing data are img.get_fdata(), which always casts to float, and img.dataobj, which affords more control over the interpretation of the data object.

Additionally, GIFTI images have a new agg_data() method that simplifies the retrieval of DataArrays from GIFTI files into usable numpy arrays. Most, if not all, filenames can now be passed as pathlib.Path objects. And there are significant updates to the streamlines package. Exercising these functionalities will be a valuable contribution during this release candidate phase.

Many thanks to everbody who took the time to investigate and report bugs, propose fixes, review pull requests and review the documentation, including first-time contributors Cameron Riddell, Hao-Ting Wang, Oscar Esteban, Dorota Jarecka, and Chris Gorgolewski. And thanks in advance to your help in making this a smooth upgrade for users.

Full changelog follows.

----

Most work on NiBabel so far has been by Matthew Brett (MB), Chris Markiewicz (CM), Michael Hanke (MH), Marc-Alexandre Côté (MC), Ben Cipollini (BC), Paul McCarthy (PM), Chris Cheng (CC), Yaroslav Halchenko (YOH), Satra Ghosh (SG), Eric Larson (EL), Demian Wassermann, and Stephan Gerhard.

References like "pr/298" refer to github pull request numbers.

# 3.0.0rc1 (Saturday 16 November 2019)

Release candidate for NiBabel 3.0, initiating a minimum one-month testing window.

Downstream projects are requested to test against the release candidate by installing with ``pip install --pre nibabel``.

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)


--

Chris Markiewicz

Center for Reproducible Neuroscience

Stanford University
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/neuroimaging/attachments/20191212/44cfb665/attachment.html>


More information about the Neuroimaging mailing list