type: Track type of SpatialImage.affine, test type inference
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.
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.
This is ready to go. Reviews welcome, or else will merge on Thursday, Feb 20.