Hi @saulshanabrook, could you expand a bit on how that would work?
I am thinking of the following situation:
import typing
import numpy as np
Image = typing.NewType('Image', np.ndarray)
Mask = typing.NewType('Mask', np.ndarray)
array = np.random.random((50, 50))
image = Image(array)
mask_array = np.random.random((50, 50))
mask = Mask(mask_array)
def zero(image : Image, mask : Mask) -> Image:
if not image.shape == mask.shape:
raise ValueError("Image and mask shapes must match")
image[mask] = 0
return image
zero(image, mask)
# Fails mypy
zero(array, mask_array)