nibabel icon indicating copy to clipboard operation
nibabel copied to clipboard

type: Track type of SpatialImage.affine, test type inference

Open effigies opened this issue 10 months ago • 2 comments

This PR lays some groundwork for further type annotations. The main thing it does is make SpatialImage generic over its affine type, which can either be Affine (an alias for ndarray that might be refined in the future) or None.

This is a somewhat pedantic thing to track, as it is extremely rare not to provide an affine to an image, but there are cases where it is the correct thing to do. This allows for a forthcoming PR to annotate functions that require an affine or can accept an image with None in it.

It also introduces tests where we specifically test for what mypy says the types of variables are, which lets us verify not only that our types are internally valid, but that they expose what we expect to downstream users.

effigies avatar Feb 16 '25 03:02 effigies

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 95.35%. Comparing base (84294f4) to head (f1f6cfe).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1411      +/-   ##
==========================================
+ Coverage   95.34%   95.35%   +0.01%     
==========================================
  Files         208      209       +1     
  Lines       29772    29783      +11     
  Branches     3355     3353       -2     
==========================================
+ Hits        28385    28400      +15     
+ Misses        948      947       -1     
+ Partials      439      436       -3     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

codecov[bot] avatar Feb 16 '25 03:02 codecov[bot]

This is ready to go. Reviews welcome, or else will merge on Thursday, Feb 20.

effigies avatar Feb 16 '25 15:02 effigies