Skip to content

Tags: nipy/nibabel

Tags

5.3.2

Toggle 5.3.2's commit message
5.3.2 (Wednesday 23 October 2024)

Bug-fix release in the 5.3.x series.

Bug fixes
---------
* Restore MRS extension type to Nifti1Extension to maintain backwards compatibility.
  (pr/1380) (CM)

5.3.1

Toggle 5.3.1's commit message
5.3.1 (Tuesday 15 October 2024)

Bug-fix release in the 5.3.x series.

Bug fixes
---------
* Restore access to private attribute ``Nifti1Extension._content`` to unbreak subclasses
  that did not use public accessor methods. (pr/1378) (CM, reviewed by Basile Pinsard)
* Remove test order dependency in ``test_api_validators`` (pr/1377) (CM)

5.3.0

Toggle 5.3.0's commit message
5.3.0 (Tuesday 8 October 2024)

This release primarily adds support for Python 3.13 and Numpy 2.0.

NiBabel 6.0 will drop support for Numpy 1.x.

New features
------------
* Update NIfTI extension protocol to include ``.content : bytes``, ``.text : str`` and ``.json : dict``
  properties for accessing extension contents. Exceptions will be raised on ``.text`` and ``.json`` if
  conversion fails. (pr/1336) (CM)

Enhancements
------------
* Ability to read data from many multiframe DICOM files that previously generated errors (pr/1340)
  (Brendan Moloney, reviewed by CM)
* ``nib-nifti-dx`` now supports NIfTI-2 files with a ``--nifti2`` flag (pr/1323) (CM)
* Update :mod:`nibabel.streamlines.tractogram` to support ragged arrays. (pr/1291)
  (Serge Koudoro, reviewed by CM)
* Filter numpy ``UserWarning`` on ``np.finfo(np.longdouble)``. This can occur on
  Windows systems, but it's done in the context of checking for the problem that
  is being warned against, so there's no need to be noisy. (pr/1310)
  (Joshua Newton, reviewed by CM)
* Improve error message for for dicomwrapper errors in shape calculation (pr/1302)
  (YOH, reviewed by CM)
* Support "flat" ASCII-encoded GIFTI DataArrays (pr/1298) (PM, reviewed by CM)

Bug fixes
---------
* Fix location initialization/update in OrthoSlicer3D for permuted axes (pr/1319, pr/1350)
  (Guillaume Becq, reviewed by CM)
* Fix DICOM scaling, making frame filtering explicit (pr/1342) (Brendan Moloney, reviewed by CM)
* Fixed multiframe DICOM issue where data could be flipped along slice dimension relative to the
  affine (pr/1340) (Brendan Moloney, reviewed by CM)
* Fixed multiframe DICOM issue where ``image_position`` and the translation component in the
  ``affine`` could be incorrect (pr/1340) (Brendan Moloney, reviewed by CM)

Maintenance
-----------
* Numpy 2.0 compatibility and addressing deprecations in numpy API
  (pr/1304, pr/1330, pr/1331, pr/1334, pr/1337) (Jon Haitz Legarreta Gorroño, CM)
* Python 3.13 compatibility (pr/1315) (Sandro from the Fedora Project, reviewed by CM)
* Testing on Python 3.13 with free-threading (pr/1339) (CM)
* Testing on ARM64 Mac OS runners (pr/1320) (CM)
* Proactively address deprecations in coming Python versions (pr/1329, pr/1332, pr/1333)
  (Jon Haitz Legarreta Gorroño, reviewed by CM)
* Replace nose-era ``setup()`` and ``teardown()`` functions with pytest equivalents
  (pr/1325) (Sandro from the Fedora Project, reviewed by Étienne Mollier and CM)
* Transitioned from blue/isort/flake8 to `ruff <https://docs.astral.sh/ruff/>`__. (pr/1289)
  (Dimitri Papadopoulos, reviewed by CM)
* Vetted and added various rules to the ruff configuration for auto-formatting and style
  guide enforcement. (pr/1321, pr/1351, pr/1352, pr/1353, pr/1354, pr/1355, pr/1357, pr/1358,
  pr/1359, pr/1360, pr/1361, pr/1362, pr/1363, pr/1364, pr/1368, pr/1369)
  (Dimitri Papadopoulos, reviewed by CM)
* Fixing typos when found. (pr/1313, pr/1370) (MB, Dimitri Papadopoulos)
* Applied Repo-Review suggestions (Dimitri Papadopoulos, reviewed by CM)

API changes and deprecations
----------------------------
* Raise :class:`~nibabel.spatialimages.HeaderDataError` from
  :func:`~nibabel.nifti1.Nifti1Header.set_qform` if the affine fails to decompose.
  This would previously result in :class:`numpy.linalg.LinAlgError`. (pr/1227) (CM)
* The :func:`nibabel.onetime.auto_attr` module can be replaced by :func:`functools.cached_property`
  in all supported versions of Python. This alias may be removed in future versions. (pr/1341) (CM)
* Removed the deprecated ``nisext`` (setuptools extensions) package. (pr/1290) (CM, reviewed by MB)

5.2.1

Toggle 5.2.1's commit message
5.2.1 (Monday 26 February 2024)

Bug-fix release in the 5.2.x series.

Enhancements
------------
* Support "flat" ASCII-encoded GIFTI DataArrays (pr/1298) (PM, reviewed by CM)

Bug fixes
---------
* Tolerate missing ``git`` when reporting version info (pr/1286) (CM, reviewed by
  Yuri Victorovich)
* Handle Siemens XA30 derived DWI DICOMs (pr/1296) (CM, reviewed by YOH and
  Mathias Goncalves)

Maintenance
-----------
* Add tool for generating GitHub-friendly release notes (pr/1284) (CM)
* Accommodate pytest 8 changes (pr/1297) (CM)

5.2.0

Toggle 5.2.0's commit message
5.2.0 (Monday 11 December 2023)

New feature release in the 5.2.x series.

This release requires a minimum Python of 3.8 and NumPy 1.20, and has been
tested up to Python 3.12 and NumPy 1.26.

New features
------------
* Add generic :class:`~nibabel.pointset.Pointset` and regularly spaced
  :class:`~nibabel.pointset.NDGrid` data structures in preparation for coordinate
  transformation and resampling (pr/1251) (CM, reviewed by Oscar Esteban)

Enhancements
------------
* Add :meth:`~nibabel.arrayproxy.ArrayProxy.copy` method to
  :class:`~nibabel.arrayproxy.ArrayProxy` (pr/1255) (CM, reviewed by Paul McCarthy)
* Permit :meth:`~nibabel.xmlutils.XmlSerializable.to_xml` to pass keyword
  arguments to :meth:`~xml.etree.ElementTree.ElementTree.tostring` (pr/1258)
  (CM)
* Allow user expansion (e.g., ``~/...``) in strings passed to functions that
  accept paths (pr/1260) (Reinder Vos de Wael, reviewed by CM)
* Expand CIFTI-2 brain structures to permit synonyms (pr/1256) (CM, reviewed
  by Mathias Goncalves)
* Annotate :class:`~nibabel.spatialimages.SpatialImage` as accepting
  ``affine=None`` argument (pr/1253) (Blake Dewey, reviewed by CM)
* Warn on invalid MINC2 spacing declarations, treat as missing (pr/1237)
  (Peter Suter, reviewed by CM)
* Refactor :func:`~nibabel.nicom.utils.find_private_element` for improved
  readability and maintainability (pr/1228) (MB, reviewed by CM)

Bug fixes
---------
* Resolve test failure related to randomly generated invalid case (pr/1221) (CM)

Documentation
-------------
* Remove references to NiPy data packages from documentation (pr/1275)
  (Dimitri Papadopoulos, reviewed by CM, MB)

Maintenance
-----------
* Quality of life improvements for CI, including color output and OIDC publishing
  (pr/1282) (CM)
* Patch for NumPy 2.0 pre-release compatibility (pr/1250) (Mathieu
  Scheltienne and EL, reviewed by CM)
* Add spellchecking to tox, CI and pre-commit (pr/1266) (CM)
* Add py312-dev-x64 environment to Tox to test NumPy 2.0 pre-release
  compatibility (pr/1267) (CM, reviewed by EL)
* Resurrect tox configuration to cover development workflows and CI checks
  (pr/1262) (CM)
* Updates for Python 3.12 support (pr/1247, pr/1261, pr/1273) (CM)
* Remove uses of deprecated ``numpy.compat.py3k`` module (pr/1243) (Eric
  Larson, reviewed by CM)
* Various fixes for typos and style issues detected by Codespell, pyupgrade and
  refurb (pr/1263, pr/1269, pr/1270, pr/1271, pr/1276) (Dimitri Papadopoulos,
  reviewed by CM)
* Use stable argsorts in PARREC tests to ensure consistent behavior on systems
  with AVX512 SIMD instructions and numpy 1.25 (pr/1234) (CM)
* Resolve CodeCov submission failures (pr/1224) (CM)
* Link to logo with full URL to avoid broken links in PyPI (pr/1218) (CM,
  reviewed by Zvi Baratz)

API changes and deprecations
----------------------------
* The :mod:`nibabel.pydicom_compat` module is deprecated and will be removed
  in NiBabel 7.0. (pr/1280)
* The :func:`~nibabel.casting.int_to_float` and :func:`~nibabel.casting.as_int`
  functions are no longer needed to work around NumPy deficiencies and have been
  deprecated (pr/1272) (CM, reviewed by EL)

5.1.0

Toggle 5.1.0's commit message
5.1.0 (Monday 3 April 2023)

New feature release in the 5.1.x series.

Enhancements
------------
* Make :mod:`nibabel.imagestats` available with ``import nibabel`` (pr/1208)
  (Fabian Perez, reviewed by CM)
* Use symmetric threshold for identifying unit quaternions on qform
  calculations (pr/1182) (CM, reviewed by MB)
* Type annotations for :mod:`~nibabel.loadsave` (pr/1213) and
  :class:`~nibabel.spatialimages.SpatialImage` APIs (pr/1179),
  :mod:`~nibabel.deprecated`, :mod:`~nibabel.deprecator`,
  :mod:`~nibabel.onetime` and :mod:`~nibabel.optpkg` modules (pr/1188),
  :mod:`~nibabel.volumeutils` (pr/1189), :mod:`~nibabel.filename_parser` and
  :mod:`~nibabel.openers` (pr/1197) (CM, reviewed by Zvi Baratz)

Bug fixes
---------
* Require explicit overrides to write GIFTI files that contain data arrays
  with data types not permitted by the GIFTI standard (pr/1199) (CM, reviewed
  by Alexis Thual)

Maintenance
-----------
* Move compression detection logic into a private ``nibabel._compression``
  module, resolving unexpected errors from pyzstd. (pr/1212) (CM)
* Improved consistency of docstring formatting (pr/1200) (Zvi Baratz, reviewed
  by CM)
* Modernized README text (pr/1195) (Zvi Baratz, reviewed by CM)
* Updated README badges to include package distributions (pr/1192) (Horea
  Christian, reviewed by CM)
* Removed all dependencies on distutils and setuptools (pr/1190) (CM,
  reviewed by Zvi Baratz)
* Add a ``_version.pyi`` stub to allow mypy_ to run without building nibabel
  (pr/1210) (CM)

5.0.1

Toggle 5.0.1's commit message
5.0.1 (Sunday 12 February 2023)

Bug-fix release in the 5.0.x series.

Bug fixes
---------
* Support ragged voxel arrays in
  :class:`~nibabel.cifti2.cifti2_axes.ParcelsAxis` (pr/1194) (Michiel Cottaar,
  reviewed by CM)
* Return to cwd on exception in :class:`~nibabel.tmpdirs.InTemporaryDirectory`
  (pr/1184) (CM)

Maintenance
-----------
* Add ``py.typed`` to module root to enable use of types in downstream
  projects (CM, reviewed by Fernando Pérez-Garcia)
* Cache git-archive separately from Python packages in GitHub Actions
  (pr/1186) (CM, reviewed by Zvi Baratz)

5.0.0

Toggle 5.0.0's commit message
5.0.0 (Monday 9 January 2023)

New feature release in the 5.0.x series.

New features
------------
* nibabel.filebasedimages.SerializableImage now has
  nibabel.filebasedimages.SerializableImage.to_stream() and
  nibabel.filebasedimages.SerializableImage.from_stream() methods to
  read/write streams implementing the io.IOBase interface. A
  nibabel.filebasedimages.SerializableImage.from_url() method
  enables loading images from URLs. (pr/1129) (CM, reviewed by MB)
* nibabel.streamlines.trk.TrkFile supports TRKv3, an
  undocumented but generally compatible variant of TRKv2. (pr/1125) (CM)

Enhancements
------------
* Support multiline header fields in nibabel.streamlines.tck.TCKFile
  (pr/1175) (CM, reviewed by Matt Cieslak)
* Make layout order an initialization parameter of
  nibabel.arrayproxy.ArrayProxy (pr/1131) (CM, reviewed by MB)
* Initial support for type annotations. (pr/1115, pr/1178) (CM, reviewed by
  Zvi Baratz)

Bug fixes
---------
* Handle extension/file-format mismatches implemented incompletely in pr/1013
  (pr/1138) (CM, reviewed by Thomas Phil)
* Improve handling of invalid TCK files, which could sometimes cause an
  infinite loop (pr/1140) (Anibal Solon, reviewed by CM)
* Clean up ECAT test case that left filehandle open and failed to use class
  variables (pr/1155) (Dimitri Papadopoulos, reviewed by CM)

Maintenance
-----------
* Simplify TCK reading code by assuming files are open in binary mode
  (pr/1142) (Anibal Solon, reviewed by MC, CM)
* Code support for tests covering deprecated functionality (pr/1159) (CM)
* Miscellaneous code cleanups (pr/1148, pr/1149, pr/1153, pr/1154, pr/1156)
  (Dimitri Papadopoulos, reviewed by CM)
* Update CI to build, test and deploy PyPI artifacts (pr/1134) (CM, reviewed
  by MB)
* Transition from `setup.cfg` to `pyproject.toml` package configuration
  (pr/1133) (CM, reviewed by MB)
* Addressed race conditions preventing running tests with pytest-xdist_.
  (pr/1157, pr/1158) (CM, reviewed by Christian Haselgrove)
* Apply blue_ and isort_ auto-formatters and provide pre-commit_ configuration
  to reduce human burden of style guidelines. (pr/1124, pr/1165, pr/1169)
  (CM and Zvi Baratz)
* Manage versioning with setuptools_scm_ (pr/1171) (CM, reviewed by Zvi Baratz)
* Reduce installed package size by excluding very large test file (pr/1176)
  (CM, reviewed by Zvi Baratz)

API changes and deprecations
----------------------------
* Passing an `int64` array to nibabel.nifti1.Nifti1Image without a
  header or dtype argument will raise a `ValueError`. (pr/1173) (CM)
* nibabel.tmpdirs.TemporaryDirectory is deprecated in favor of
  tempfile.TemporaryDirectory. (pr/1172) (CM, reviewed by Zvi
  Baratz)
* The `nisext` package is deprecated and will be removed in NiBabel 6.0.
  (pr/1170) (CM, reviewed by MB)
* Drop support for Python 3.7, Numpy < 1.19 (pr/1177) (CM)
* The following deprecated functions and methods will now raise
  `ExpiredDeprecationError`s

  * nibabel.loadsave.read_img_data
  * nibabel.dataobj_images.DataobjImage.get_data
  * nibabel.loadsave.guessed_image_type
  * nibabel.onetime.setattr_on_read
  * nibabel.orientations.flip_axis

* Modules, classes and functions that expired at 4.0 were fully removed.
  `ExpiredDeprecationError`s will now be `AttributeError`s.

4.0.2

Toggle 4.0.2's commit message
4.0.2 (Wednesday 31 August 2022)

Bug-fix release in the 4.0.x series.

Bug fixes
---------
* Make ``GiftiMetaData.data`` a list proxy, deprecate (pr/1127) (CM, reviewed
  by Hao-Ting Wang)

Maintenance
-----------
* Finalize deprecation of ``ArrayWriter.to_fileobj(nan2zero=...)`` argument
  (pr/1126) (CM)

4.0.1

Toggle 4.0.1's commit message
4.0.1 (Saturday 18 June 2022)

Bug-fix release in the 4.0.x series.

Bug fixes
---------
* Finalize 4.0 deprecations, converting tests expecting ``DeprecationWarning`` to
  expected ``ExpiredDeprecationError`` (pr/1117) (CM)

Maintenance
-----------
* Suppress new numpy warning on nan-to-int cast (pr/1118) (CM, reviewed by MB)