==================================
New features
------------
* ArrayProxy ``__array__()`` now accepts a ``dtype`` parameter, allowing
``numpy.array(dataobj, dtype=...)`` calls, as well as casting directly
with a dtype (for example, ``numpy.float32(dataobj)``) to control the
output type. Scale factors (slope, intercept) are applied, but may be
cast to narrower types, to control memory usage. This is now the basis
of ``img.get_fdata()``, which will scale data in single precision if
the output type is ``float32``. (pr/844) (CM, reviewed by Alejandro
de la Vega, 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
------------
* Improve testing of data scaling in ArrayProxy API (pr/847) (CM, reviewed
by Alejandro de la Vega)
* Document ``SpatialImage.slicer`` interface (pr/846) (CM)
* ``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)
* Change strings with invalid escapes to raw strings (pr/827) (EL, reviewed
by CM)
* Re-import externals/netcdf.py from scipy to resolve numpy deprecation
(pr/821) (CM)
Maintenance
-----------
* Remove replicated metadata for packaged data from MANIFEST.in (pr/845) (CM)
* 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
----------------------------
* Fully remove deprecated ``checkwarns`` and ``minc`` modules. (pr/852) (CM)
* The ``keep_file_open`` argument to file load operations and ``ArrayProxy``\s
no longer accepts the value ``"auto"``, raising a ``ValueError``. (pr/852)
(CM)
* 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)