Tags: nipy/nibabel
Tags
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 (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 (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 (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 (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 (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 (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 (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 (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)
PreviousNext