rasterio / affine

Affine transformation matrices
BSD 3-Clause "New" or "Revised" License
156 stars 28 forks source link

Type hints? #74

Open kylebarron opened 2 years ago

kylebarron commented 2 years ago

👋

I saw https://github.com/mapbox/mercantile/issues/140 and since @sgillies was receptive to the idea of adding type hints, I thought I'd also start a discussion here about adding type hints 🙂 .

Affine is a relatively small and self-contained library, so it could be a good library in the ecosystem to start with. I'd be happy to put up a PR if there's interest.

One possible hiccup that I found in the creation of external type stubs for affine is that mypy complained about violating the Liskov substitution principle. Specifically I wasn't able to type __mul__ to take an Affine object as input and output, because that's an incompatible override of the NamedTuple's __mul__ typing.

sgillies commented 2 years ago

Can the typing complaint not be ignored? I love how stable Affine is at the moment and would love to focus on other things and not make any new releases of it.

kylebarron commented 2 years ago

A couple notes: