github nipy/nibabel 5.5.0

59 minutes ago

Release notes

New feature release in the 5.5.x series.

This release requires a minimum Python of 3.11 and NumPy 2.0, and has been tested up to Python 3.15 and NumPy 2.5.

New features

  • The FilterMultiOrient frame filter allows extracting a volume of consistent orientation from a DICOM containing mixed orienations (#1485) (Michael Krause, reviewed by Basile Pinsard and CM)

Enhancements

  • get_fdata now returns complex128 arrays by default for complex images. Note that passing float64 explicitly still results in float64 arrays. (#1592) (Bhaskar Gurram, reviewed by CM)
  • Cifti2 *Axis classes now accept any Integral indices, allowing them to be indexed by NumPy integers (#1581) (Don Yin, reviewed by CM)
  • Update Nifti1Image.as_reoriented to reorient sform and qform independently and preserve (q/s)form codes (#1546) (Cedric Conday, reviewed by CM)
  • Validate SpatialHeader zooms are positive in spatial dimensions, non-negative in other dimensions (Siddhardha Nanda, reviewed by CM) (#1596)
  • Improved errors for malformed PAR/REC headers (#1573, #1574) (Erfan Mohamadboland, reviewed by CM)
  • Support for empty BrainModelAxis (#1555) (Nathan Suttie, reviewed by CM)
  • Support for rescaling N-to-N affines in rescale_affine (#1553) (Siddhardha Nanda, reviewed by CM)
  • Improved documentation of iter_structures (#1550) (Nagizaaz Shaik, reviewed by CM)
  • Documentation has been modernized with a new theme and improved navigation (#1484) (Leonardo Ayala, reviewed by CM)

Bug fixes

  • Preserve array shape for single-vertex labels in read_label (#1582) (Jeffrey Cooney, reviewed by CM)
  • Validate common shapes when calling append with cache_build=True (#1583) (Jeffrey Cooney, reviewed by CM)
  • Fix slicing of SeriesAxis to match slicing its underlying NumPy array (#1580) (Don Yin, reviewed by CM)
  • Avoid overflow when passing integer affines to voxel_sizes (#1586) (Gabriel Lafis, reviewed by CM)
  • Fix handling of negative slices and steps in slicer (#1534) (Duy Dong Nguyen, reviewed by Arthur031221 and CM)
  • Handle data arrays with complex infinities correctly during write (#1588) (Gabriel Lafis, reviewed by CM)
  • Calculate orientation from float64-cast affine to avoid SVD issues on 32-bit systems (#1601) (CM, reviewed by Andreas Tille)
  • Reject undersized NIfTI extensions before reading payloads (#1568) (Jeffrey Cooney, reviewed by CM)
  • Validate affine shape in set_sform, matching set_qform (#1562) (Siddhardha Nanda, reviewed by CM)
  • Fix docstrings that mismatched function signatures (#1552) (Venish Paneliya, reviewed by CM)
  • Fix rendering of docstrings of deprecated functions/classes (#1545) (CM, reviewed by Mathias Goncalves)
  • Correct dtype of ECAT patient_birth_date field (int32) (#1522) (Cedric Conday, reviewed by CM)
  • Set the gzip compression level to the default for the current Python version, which changed from 9 to 6 in Python 3.15 (#1509) (Karolina Surma, reviewed by CM)
  • Outdated references to Travis CI were removed from our developer docs (#1506) (Dimitri Papadopoulos, reviewed by CM)
  • Typos in documentation (#1499) (Dimitri Papadopoulos, reviewed by CM) and (#1500) (Kabilar Gunalan, reviewied by CM)

Maintenance

  • Additional pre-commit hooks and linting rules (#1598, #1599, #1600, #1602, #1603, #1604, #1605, #1607, #1609) (Dimitri Papadopoulos, reviewed by CM)
  • Set minimum tested indexed-gzip version to 1.9.1 (#1554) (CM)
  • Testing on ARM64 Linux runners (#1496) (Leonardo Ayala, reviewed by CM)
  • Transitioned from .zenodo.json to CITATION.cff (#1494) (CM, at least discussed with Rémi Gau)
  • Remove deprecated use of __package__ constant (#1487) (Dimitri Papadopoulos, reviewed by CM)
  • Publish docs automatically on tags or triggers (#1482) (CM)
  • Mark thread-unsafe tests as such, and run a weekly multithreaded test job (#1455) (Rémi Gau, reviewed by CM)

API changes and deprecations

  • Drop support for Python 3.10, Numpy < 2.0 (#1570) (CM)

New Contributors

Full Changelog: 5.4.2...5.5.0

Don't miss a new nibabel release

NewReleases is sending notifications on new releases.